아무것도 모르고 시작하는 코딩

CSS란? 선택자(selector)란? 클래스(class)란? | 아무것도 모르고 시작하는 코딩

ZNOS 2020. 8. 1. 07:07
반응형

CSS란?

CSS(Cascading Style Sheet)는 스타일이 적용되는 방식이 단계적으로(Cascading) 적용된다고 해서 붙여진 이름이고, 여기서 스타일이란 html 문서의 글꼴이나 색상 등을 의미한다. 단계적으로의 의미는 내가 <div> 태그에 스타일을 적용하였는데 그 안에 <p>태그가 있는 경우, <p>역시 스타일이 적용된다는 것을 의미한다.
(Sheet가 붙은 이유는 Style을 관리하기 쉽게 모아놨기 때문이다)

선택자(selector)란?

스타일을 적용하기 위해선 대상을 '선택'하는것 부터 시작해야 한다. 선택은 html 페이지 내 모든 태그를 선택할 수도 있고, 특정 태그를 선택할 수도 있고, 클래스를 선택할 수도 있다. 

클래스(class)란?

'이름표'라고 생각하면 된다.

 

CSS 적용

<!DOCTYPE html>
<html lang="ko">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>아무것도 모르고 시작하는 코딩 | 지노스</title>
    <style>       
        .red-font {
            color: red;
        }
    </style>
</head>

<body>
    <h1 class="red-font">로그인 페이지</h1>
    <div class="red-font"> 
        <p>
            ID: <input type="text" />
        </p>
        <p>
            PW: <input type="password" />
        </p>
    </div>
    <button>로그인하기</button>
</body>

</html>

 

<body>에 <h1>을 보면, <h1 class="red-font">로그인 페이지</h1>라고 되어있는 것을 볼 수 있다.
즉, <h1>태그에 "red-font"라는 이름의 이름표(class)를 달아준 것이다.

CSS는 <head> ~ </head> 안에 <style> ~ </style> 로 공간을 만들어 작성한다. 
위의 식에서 .red-font { color: red; }라고 적혀있는 것을 볼 수 있다. 이는 red-font라는 이름표(클래스)를 가진 녀석에게 color: red;를 적용하라는 뜻이다.

(이름 앞에 . 을 빼먹지 말자! red뒤에 ;를 빼먹지 말자!)

실행하면 이렇게 된다

red-font라는 클래스는 <h1> 태그와 <div> 태그에 달려있다. 그리고 앞서 설명했듯 CSS는 단계적으로 적용이 되기 때문에 <div> 태그 안에 있는 <p>태그에도 적용이 되어 'ID'와 'PW'도 빨간색으로 적용이 되었다. 

 

다양한 선택자들

CSS가 선택하는 선택자들을 살펴보자

1. 전체 선택자(HTML 페이지 내부의 모든 태그를 선택 : * 사용) 

* { 
   margin: 0;
   text-decoration: none;
}

2. 태그 선택자 (여기선 p tag 선택)

p { 
  background: yellowgreen;
  color: darkgreen;
}

3. 클래스 선택자(class1 선택)

.class1 { 
  background: yellowgreen; 
  color: darkgreen; 
}

4. 클래스 선택자(div태그안에 있는 class2만 선택)

div.class2 {
  background: darkgreen;
  color: yellowgreen;
}

 

5. 클래스 선택자(class3 중에 h1만 선택)

<head>
<style>
.class3 > h1 {
	color: red;
}
</style>
</head>

<body>
<div class="class3">
<h1>이건 빨강이지</h1>
<h2>이건 검정이지</h2>
</div>
</body>

 

class는 중첩도 가능하다.(이름표를 여러개 가지는건 가능하지)

<p class="class1 class2">이렇게 적으면 클래스1,클래스2 둘 다 적용된다</p>

 

이 이외에도 여러가지 선택자들이 있으니, 필요한 경우 구글에서 찾아서 적용하면 된다.

<참조 : 자주쓰는 css 속성들>

배경관련 background-color background-image background-size

사이즈 width height

폰트 font-size font-weight font-famliy color

간격 margin padding

 

공감 부탁 드려요 :)

 

반응형