기본 소스와 결과
소스
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 36 37 38 39 40 | <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> div{ width: 100px; height: 100px; } div:nth-child(1){ background-color: lightpink; } div:nth-child(2){ background-color: lightgreen; } div:nth-child(3){ background-color: lightgray; } div:nth-child(4){ background-color: lightyellow; } div:nth-child(5){ background-color: lightblue; } </style> </head> <body> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </body> </html> | cs |
결과
1. 숨김기능
소스
* display: none; 공간도 제거되며 숨겨주는 기능
* visibility: hidden; 공간은 존재하며 숨겨주는 기능
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 36 37 38 39 40 41 42 | <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> div{ width: 100px; height: 100px; } div:nth-child(1){ background-color: lightpink; } div:nth-child(2){ background-color: lightgreen; display: none; /*존재가 사라짐. 공간도 제거*/ } div:nth-child(3){ background-color: lightgray; } div:nth-child(4){ background-color: lightyellow; visibility: hidden; /*숨김. 공간은 남음*/ } div:nth-child(5){ background-color: lightblue; } </style> </head> <body> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </body> </html> | cs |
2번의 공간이 제거됨을 볼수있다.
4번은 공간은 존재하지만 숫자4와 배경색이 보이지않는다.
결과
2. 선택지시자 (+와 ~의 차이)
소스1
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 36 37 38 39 40 | <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> div{ width: 100px; height: 100px; } div:nth-child(1){ background-color: lightpink; } div:nth-child(2){ background-color: lightgreen; } div:nth-child(3){ background-color: lightgray; } div:nth-child(4){ background-color: lightyellow; } div:nth-child(5){ background-color: lightblue; } div:nth-child(2)+div{ background-color: lightgreen; } /*div:nth-child(1)+div~div{ background-color: lightgray; }*/ </style> </head> <body> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </body> </html> | cs |
nth-child(2) 는 2번의 위치를 말하는것이고
+div 는 다음 div 를 말하는것으로 결과적으로는 3번의 위치를 말한다.
div:nth-child(2)+div{
background-color: lightgreen;
}
결과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 34 35 36 37 38 39 40 | <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> div{ width: 100px; height: 100px; } div:nth-child(1){ background-color: lightpink; } div:nth-child(2){ background-color: lightgreen; } div:nth-child(3){ background-color: lightgray; } div:nth-child(4){ background-color: lightyellow; } div:nth-child(5){ background-color: lightblue; } div:nth-child(2)+div{ background-color: lightgreen; } div:nth-child(1)+div~div{ background-color: lightgray; } </style> </head> <body> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> </body> </html> | cs |
nth-child(1) 는 1번의 위치를 말하는것이고
+div 는 다음 div 를 말하는것으로 2번의 위치이다. ~div란 뜻은 2번의 위치(해당위치)의 모든 자식을 뜻해서 결과적으로는 3,4,5번까지 모두 해당된다.
div:nth-child(1)+div~div{
background-color: lightgray;
}
결과2
위의 기능을 덮어써 오버라이드 되었다.