📚HTML, CSS/이론 정리

CSS 속성, 선택자 , 특정 요소 선택하기

하얀성 2023. 1. 24. 12:34

CSS는 속성을 적용할 대상인 선택자와, 선택자에 적용할 선언부로 구성된 문법 형태를 가짐.

 

내부 스타일 시트 - <style>css코드</style>

 

(주로 사용) 외부 스타일 시트 - 외부에 css코드를 작성하여 html문서와 연결 <link rel="sytlesheet" href="css 파일 경로">

 

인라인 스타일 - 태그에 직접 css코드 작성

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

<선택자>

 

1.전체 선택자 : * {}

2.태그 선택자 : 태그명{}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
<style>
  p {
    color: green;
  }
  section{
  border: 1px solid black;
  }
  
</style>
</head>
<body>
  <h1 id="title">예약 안내 & 방법</h1>
  <section id="guide" style="border: 1px solid black; ">
    <p>빨리빨리 신청하자</p>
    <p>아직 신청 안했으면</p> 
  </section>
  <br>
  <section>
    <p>방 1개당 100000원</p>
  </section>
  <br>
  <section>
    <p>조식 없음</p>
  </section>
</body>
</html>
cs
태그 선택자 이용한 전체 색깔 변경

3.아이디 선택자 : #id값{}  (id값은 중복되서는 안된다.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
<style>
  p {
    color: green;
  }
  section{
  border: 1px solid black;
  }
 #guide > p{ // 자식 태그
    color: red;
  }
</style>
</head>
<body>
  <h1 id="title">예약 안내 & 방법</h1>
  <section id="guide" style="border: 1px solid black; ">
    <p>빨리빨리 신청하자</p>
    <p>아직 신청 안했으면</p> 
  </section>
  <br>
  <section>
    <p>방 1개당 100000원</p>
  </section>
  <br>
  <section>
    <p>조식 없음</p>
  </section>
</body>
</html>
 
 
 
cs
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

아이디 선택자, 자식 선택자로 값 부여.


4.클래스 선택자: .class속성값{} (class 값은 중복 가능하다.)

 

 


<기본 속성 선택자>(html요소를 속성값으로 선택)

 

[class]{} 이런식으로 클래스가 있다는 속성을 가진, 태그들을 지정해서 css코드 적용가능

[class=""]{} 이렇게 정확히 클래스값으로 구분도 가능. (클래스 선택자(.class속성값)은 class의 " "의 값만 가져오기에 서로 다른 것이다.) 

 


조합 선택자

 

그룹 선택자

h1, #title, .red{} 이런식으로 ,를 적용해주면 그룹화 시킬 수 있음.

 

자식 선택자

부모 선택자 > 자식 선택자 {}

.box > p{} 

ㅡ> box클래스 속성값을 가진 태그의 하위 p태그에만 css코드를 적용하라.

위에서 활용한 자식 선택자로 값 부여결과

하위 선택자

div p{}

div아래의 p 태그만 css 코드 적용

 

인접 형제 선택자

h1 + h2{}  

h1 이후에 나오는 인접한 h2 단 한개(같은 h2가 바로 뒤에 있더라도 적용x)에만 css코드를 적용하라

 

일반 형제 선택자

h1 ~ h2{} 

h1 이후에 나오는 모든 h2에 css코드 적용


<가상 요소 선택자>

 

기준 선택자 :: 가상 요소 선택자{}

::before

::after

 

<예시>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<style>
  p::before{
    content:'<before>';
    color: blue;
  }
  p::after{
    content:'<after>';
    color: green;
  }
</style>
</head>
<body>
  <dt>CSS</dt>
  <p style="color: red;">CSS는 ㅎㅎㅎ</p>
</body>
cs

 

 

코드 결과


<링크, 동적 가상 클래스 선택자>

 

: link 링크 방문전  적용 css  (색 변경)

:visited 링크 방문 후 적용 css (색 변경)

 

:hover 요소에 마우스를 올리면 해당 태그가 선택자로 지정됨

:active 요소에 마우스로 클릭하면 해당 태그가 선택자로 지정


 

<입력요소 가상 클래스 선택자>

 

:focus : 입력 요소 커서 (input 등)에 적히는 텍스트의 색깔 변경

1
2
3
input:focus{
    color: blue;
  }
cs

 

:checked : 체크박스가 표시되면 그 뒤에 형제 요소에 스타일 적용

1
2
3
input:checked + label{
    color: rebeccapurple;
  }
cs
<input type="checkbox" checked> <label>체크</label>

 

:enabled 와 :disabled 가상 클래스 선택자 

해당 요소가 사용할 수 있는 상태일 때 스타일을 지정하려면 :enabled 선택자를 사용하고, 

사용할 수 없는 상태일 때 스타일을 지정하려면 :disabled 선택자를 이용한다. 

 


특정 위치의 자식 요소 선택하기 

:only-child  

부모 안에 자식 요소가 하나뿐일 때 자식 요소를 선택한다. 

A:only-type-of

부모 안에 A 요소가 하나뿐일 때 선택한다. 

:first-child

부모 안에 있는 모든 요소 중에서 첫 번째 자식 요소를 선택한다. 

:last-child

부모 안에 있는 모든 요소 중에서 마지막 자식 요소를 선택한다. 

A:first-of-type

부모 안에 있는 A 요소 중에서 첫번째 요소를 선택한다.

A:last-of-type

부모 안에 있는 A 요소 중에서 마지막 요소를 선택한다. 

:nth-child(n)

부모 안에 있는 모든 요소 중에서 n 번째 자식 요소를 선택한다. 

:nth-last-child(n)

부모 안에 있는 모든 요소 중에서 끝번째 자식 요소를 선택한다. 

A:nth-of-type(n)

부모 안에 있는 A 요소 중에서 n 번째 요소를 선택한다. 

A:nth-last-of-type(n)

보모 안에 있는 A 요소 중에서 끝에서 n 번째 요소를 선택한다. 

 

 

부모의 아래있는 모든 요소의 순서  contents :nth-child(n)

부모의 아래에 있는 요소 중, p들 만의 순서 contents p:nth-of-type(n)

 

':' 기호 앞의 태그 안에서 효과를 발휘.

CSS로 A부터 B까지 선택하기

p:nth-child(n+8):nth-child(-n+15)
CSS

이렇게 p태그를 8번부터 ~ 15번 까지를 선택할 수 있습니다.

 

이것도 보통 자바스크립트에서 처리했을건데 CSS로 처리시 속도가 매우 향상됩니다.