CSS 기초 문법은 선택자와 삽입 위치 공부로 해결!

CSS 기초 문법은 선택자에 대한 이해와 어느 위치에 삽입되는가에 초점을 맞추면 됩니다. 선택자를 지정하는 이유는 태그를 좀 더 세분화하여 선택해서 디자인 효과를 주기 위함입니다.

CSS 기초 구조

CSS는 크게 선택자영역과 속성 영역으로 분류됩니다. 문장이 끝나면 세미콜론 ;을 입력해줍니다.

선택자{속성명:속성값;}

선택자 영역

디자인할 HTML 태그 영역을 불러오는 행위를 선택자 지정이라고 말합니다. 예를 들어 <p> 태그를 선택자로 불러온다는 뜻은 <p> 태그에 디자인 효과를 삽입하기 위해서 따로 추출한다는 의미입니다.

속성 영역

선택자로 HTML 태그의 요소들을 불러오면, 중괄호 { }로 새로운 영역을 생성합니다. 이 영역에서 적용한 디자인 효과는 불러온 HTML 태그 요소에 적용됩니다.

문법의 의미는 <p> 태그를 선택자로 불러와서 color(글자색)를 red(빨강)로 만든다는 뜻입니다. color는 속성명이고 red는 속성값입니다.

p{color:red;}
<p>형을 잘 따르는 동생을 형광펜이라 부릅니다.</p>

줄바꿈

선택자 영역에는 여러 속성을 삽입할 수 있습니다.

<p> 태그의

글자색(color)을 파란색(blue),

배경색(background-color)을 검은색(black)

글 간격(padding)을 20px,

글자 크기(font-size)를 30px

로 늘리고 싶은 경우 어떻게 해야 할까요?

p{color:blue;background-color:black;padding:20px;font-size:30px;}

예시와 같이 길게 작성되어 가독성이 떨어집니다.

그럴 경우 아래 처럼 하나의 속성명과 속성값 및 세미콜론 ;으로 끝나는 문장을 한 줄씩 적으면 해결됩니다.

p{
  color:blue;
  background-color:black;
  padding:20px;
  font-size:30px;
}

CSS 삽입 위치

삽입 위치 구조

CSS의 삽입 위치는 태그 뒤에 직접 삽입하거나 외부 링크로 삽입하는 방법 등이 있습니다. 하지만 CSS 기초 문법에서 가장 핵심은 CSS는 <head> 태그의 <style> 태그 사이에 삽입된다는 것을 이해하는 것입니다.

<head>
  <style>
    p{
      color:red;
    }
  </style>
</head>

<body> 태그 내부의 <p> 태그 사이에 데이터가 존재합니다. CSS는 <head> 태그 사이에서 삽입됩니다.

<style> 태그 사이에 변경을 원하는 <body> 태그 내에 위치하는 선택자를 불러옵니다. 예시의 경우 <p> 태그를 선택자로 불러왔습니다.

<!DOCTYPE html>
<html>
  <head>
    <style>
      p{
        color:red;
      }
    </style>
  </head>
  <body>
    <p>아기공룡 둘리가 졸업한 고등학교의 이름은 빙하타고입니다.</p>
  </body>
</html>

삽입 위치 예시

위에서 봤던 두 가지 예제도 CSS 코드가 HTML 문서에서 실제로 삽입된 위치는 <head> 태그 사이의 <style> 태그 사이에 위치합니다.

<!DOCTYPE html>
<html>
  <head>
    <style>
      p{
        color:red;
      }
    </style>
  </head>
  <body>
    <p>형을 잘 따르는 동생을 형광펜이라 부릅니다.</p>
  </body>
</html>

<!DOCTYPE html>
<html>
  <head>
    <style>
      p{
        color:blue;
        background-color:black;
        padding:20px;
        font-size:30px;
      }
    </style>
  </head>
  <body>
    <p>반만 통통한 사람이 모여사는 지역은 반포동입니다.</p>
  </body>
</html>

CSS 선택자 예시

CSS에서는 <p> 태그와 같은 HTML 태그 이외에도 클래스, 아이디 등도 선택자로 지정할 수 있습니다. CSS의 탄생목적은 웹문서의 정보와 디자인의 분리에 있습니다.

따라서 정보에서 디자인 요소를 구분하기 위해서는 선택자의 종류도 다양할 수 밖에 없습니다. 몇 가지 선택자의 종류를 간단히 살펴보겠습니다.

태그 선택자

태그 선택자, 요소 선택자 또는 타입 선택자로 불립니다.

아래 예시에서는 <h1>태그 영역과 <pre> 태그 영역을 각각 선택자로 지정하여 배경색 또는 글자색을 변경했습니다.

h1{
   color:white;
   background-color:black;
}
pre{
    color:purple;
}
<!DOCTYPE html>
<html>
  <head>
  <style>
    h1{
      color:white;
      background-color:black;
    }
    pre{
      color:crimson;
      font-size:20px;
    }
    </style>
  </head>
  <body>
    <h1>석유가 유통되는 기간은?</h1>
      <pre>오일입니다.</pre>
  </body>
</html>

클래스 선택자

클래스 선택자는 클래스를 선택자로 지정합니다.

아래 예시에서는 <strong> 태그가 세 번 나옵니다. 하지만 하나의 strong 태그에만 CSS 선택자를 지정하고 싶다면 어떻게 해야 할까요?

<strong> 태그에 클래스를 지정하면 됩니다.

<strong class="fire1">"송구하옵니다."</strong>

지정된 클래스를 호출할 경우 마침표 . 를 클래스명 앞에 붙이면 됩니다.

클래스명이 fire1이므로 선택자는 .fire1로 정의됩니다.

.fire1{
       color:crimson;
       font-size:20px;
}
<!DOCTYPE html>
<html>
  <head>
    <style>
      .fire1{
        color:crimson;
        font-size:20px;
      }
    </style>
  </head>
  <body>
    <p><strong>투수</strong>가 <strong>사과</strong>를 할 때 하는 말은 <strong class="fire1">"송구하옵니다."</strong>입니다.</p>
  </body>
</html>

ID 선택자

id 선택자도 클래스 선택자와 마찬가지로 선택자로 지정할 수 있습니다. 차이점은 선택자로 지정시 샵 # 기호를 id값 앞에 붙입니다.

아래 예시에서는 id명이 babo이므로 선택자 지정시 #babo가 됩니다.

#babo{
      color:green;
      font-size:30px;
}
<!DOCTYPE html>
<html>
  <head>
    <style>
      #babo{
        color:green;
        font-size:30px;
      }
    </style>
  </head>
  <body>
    <h1>대학생이 봄에 강한 이유는?</h1>
      <p><u id="babo">개강</u>하기 때문입니다.</p>
  </body>
</html>

CSS 선택자의 종류에는 그 밖에 그룹 선택자, 전체 선택자, 자식 선택자, 자손 선택자, 형제 자매 선택자 등이 있습니다.

 

문제해결이 정확히 되지 않으신 경우 웹디자인, 웹퍼블리싱 등의 강좌를 들어보시는 것도 좀 더 근본적인 문제 해결에 도움이 될 수 있습니다.

 

웹디자인 강의 추천 5가지

1.디자인나스

http://www.designnas.com/

디자인나스는 웹디자인 학원중에서 가장 유명한 양성소중의 한 곳입니다.  HTML 및 CSS, JavaScript, 포토샵 등을 배우시는 목적이 웹디자인쪽이신 경우 적합한 강좌입니다.

웹디자인 강의 1

UI, UX 디자인, 대기업 공채 특성화반의 웹디자인 중심 강의가 주력이며 HTML, CSS, JavaScript, jQuery 등의 웹퍼블리싱 강좌도 있습니다.

5 ~ 6명 이하의 소수로 강좌가 이루어져서 1:1 개인 마크에 의한 포트폴리오 관리에 유용하고 그만큼 수강료가 가격이 있는 편입니다.

 

2.홍시디자인학원

http://www.hongsidesign.com/

홍시디자인 학원은 2005년에 설립된 디자인학원에서 유명한 아카데미입니다.

웹디자인 강의 2

웹과 모바일 디자인, UI/UX 디자인 관련 커리큘럼이 있고 포토샵이나 일러스트레이터 같은 순수 디자인 툴도 강좌로 준비하며 실업자 등의 국비지원 정부 지원 과정도 보유하고 있습니다.

웹디자인 쪽을 강화로 하고 계시다면 적합한 강좌입니다.

 

3.그린컴퓨터아카데미

https://greenart.co.kr/

그린컴퓨터아카데미는 대형 컴퓨터 전문 학원입니다. 전국에 지점이 많아 오프라인에서 본인의 소속 지역에서 쉽게 강의를 들을 수 있다는 것이 장점입니다.

웹디자인 강의 3

순수 웹디자인 이외에도 웹퍼블리싱이나 기타 컴퓨터 프로그래밍 강좌도 단과 형식으로 커리큘럼이 다양하다는 것이 특징입니다.

 

4.더조은컴퓨터아카데미

http://tjoeun.co.kr/

더조은컴퓨터아카데미는 2016년 메가스터디 그룹에 인수된 컴퓨터 교육 전문 아카데미입니다.

웹디자인 강의 4

웹디자인 강좌부터, 웹퍼블리싱이나 프론트앤드 개발자 등의 연계 강좌로도 다양한 단과 강좌가 있습니다.

좀 더 디자인 강의에 집중하고 싶다면 CG, VFX나 모션그래픽, 에프터이팩트, 게임 그래픽(유니티, 마야) 등의 강좌 연계도 가능합니다.

 

5.메가스터디 컴퓨터아카데미

메가스터디 컴퓨터아카데미는 웹디자인 정규과정과 단과과정으로 나눠서 커리큘럼을 운영하고 있습니다.

웹디자인 강좌 5

정구 교육과정에서는 실무 취업을 목표로 12명 이하의 소수정예로 강좌가 구성되며 웹디자인 이외에 그래픽 편집디자인, 모션 그래픽(2D, 3D), 3D 에니메이션, 인테리어디자인, 웹툰 디자인, 게임 원화가, 게임 그래픽 디자인, 순수 제품 디자인 등의 다양한 디자인 강좌 프로그램을 갖추고 있습니다.

 

웹퍼블리싱 강의 추천 9가지

1.생활코딩

https://opentutorials.org/

생활코딩은 비영리 무료 코딩 교육 강좌입니다. 유튜브를 중심으로 무료 강좌가 있습니다.

웹퍼블리싱 강의 001

HTML, CSS, JavaScript의 기초 웹퍼블리싱 강좌가 코딩을 전혀 몰라도 학습할 수 있도록 학습난이도가 낮고, 한 강좌가 짧아서 듣기에 부담이 적습니다.

그 밖에 파이썬, 자바, MySQL, PHP, 머신러닝 기초 등 백앤드 프로그래밍 강좌도 무료로 제공된다는 것이 장점입니다.

 

2.인프런

https://www.inflearn.com/

인프런은 프로그래밍 유료 강좌 종합 플랫폼입니다. 웹퍼블리싱을 위한 반응형 웹사이트 만들기, CSS 그리드 레이아웃, 자바스크립트 연계 등 웹퍼블리싱 강좌가 단과형식으로 배치되어 있습니다.

웹퍼블리싱 강의 002

또한 종합 프로그래밍 강좌 사이트이기 때문에 프론트앤드 개발, 백앤드 개발, 리액트, 노드 JS 등 원하는 방향으로의 강좌도 연계해서 볼 수 있다는 장점이 있습니다.

 

3.노마드코더

https://nomadcoders.co/courses

노마드 코더는 콜롬비아 출신 개발자 니콜라스가 운영하는 코딩 교육 아카데미입니다.

웹퍼블리싱 3

클론 코딩(HTML, CSS), 바닐라 자바스크립트, CSS 레이아웃, FLEXBOX, SCSS, 그리드 등의 웹퍼블리싱 강좌를 실제 서비스를 클론 코딩으로 따라서 만들어보는 방식으로 구현되는 강좌입니다.

그 밖에 리액트, 암호화폐만들기, 인스타그램 클론 코딩하기, 유튜브 클론 코딩하기, 우버와 에어비앤디 클론코딩하기, 파이썬으로 웹 스크리퍼 만들기 등 확장되는 언어 학습도 실생활의 서비스와 연계된다는 점에서 재미있게 배울 수 있다는 것이 특징입니다.

약간의 HTML, CSS, JS 기초 지식을 알고 계시고, 실전 서비스의 벤치마킹을 통해서 좀 더 동기부여를 학습에 투여하고 싶으신분에게 적합한 웹퍼블리싱 강좌입니다.

 

6.W3Schools

https://www.w3schools.com/Html/

W3Schools는 노르웨이 Refsnes Date 소프트웨어 회사에서 1998년에 만든 온라인 코딩 교육 사이트입니다.

웹퍼블리싱 강좌 006

HTML, CSS부터 JavaScript의 웹퍼블리싱 등의 방대한 메뉴얼이 있고, 각 페이지마다 별다른 코드 에디터필요없이 홈페이지에서 바로 예제를 풀어볼 수 있다는 것이 특징입니다.

CSS 그라디언트, 색상, 모서리, 3D , 툴팁, 버튼 등 다양한 예제를 보유하고 있습니다.

 

7.Dev ED

https://www.youtube.com/channel/UClb90NQQcskPUGDIXsQEz5Q

Dev ED는 무료 유튜브 강좌 및 유료 홈페이지 강좌를 판매하고 있는 웹퍼블리싱 강좌 서비스입니다.

유튜브에서는 움직이는 CSS 및 자바스크립트 강좌 등이 예제와 함께 공개되어 있어 따라하기에 편리합니다. 특히나 JS와 CSS를 이용한 움직이는 에니메이션 효과를 잘 가르칩니다.

해당 개발자의 홈페이지에서는 HTML, CSS 강좌 등도 유료로 판매하고 있습니다.

https://developedbyed.com/p/the-creative-html5-css3-course

 

8.The Net Ninja

https://www.youtube.com/c/TheNetNinja/playlists

Net Ninja는 웹퍼블리싱을 비롯한 프론트앤드 개발자용 유튜브 강좌입니다.

웹퍼블리싱 강좌 007

CSS FLEX, 그리드, 반능형웹디자인, CSS 포지션, SASS 등의 웹퍼블리싱 집중 강좌부터 자바스크립트, 앵귤러, 노드 JS, 리액트, 부트스트랩, VUE, 타입스크립트 등 프론트앤드용 강좌도 분류가 잘되어 배치되어 있습니다.

 

9.CODER CODER

https://www.youtube.com/c/TheCoderCoder/featured

CODER CODER는 생활코딩, 노마드코더와 말투와 강의 방식이 정말 비슷한 코더용 강좌입니다.

웹퍼블리싱 인강 12

강좌수는 많지 않지만 CSS 등의 웹퍼블리싱 작업을 할 때 헷갈리기 쉬운 반응형 웹, 포지션, 레이아웃, Z-index, 미디어쿼리, 칼럼 나누기, 백그라운드 이미지 투명하게, 에니메이션 메뉴 만들기, 모바일 반능형, 그리드, SASS, Gulp, Flexbox 등을 예제와 함께 볼 수 있습니다.

영어의 경우 영어 자막을 켜고 배속을 0.75배 ~ 0.5배로 낮추면 좀 더 편하게 들어보실 수 있습니다.