나를 찾고, 내 옆에 있는 애를 찾고, 내 형제를 찾고, 여러가지를 찾는 선택자!!
진짜 세상 헷갈리는 css를 정리해보자!!
우선 참고하기 좋을 자료부터!
선택자 연습: https://flukeout.github.io/
강의 : https://youtu.be/fXIoeZ-h43c
전체 선택자 : * {}
태그 선택자 : 태그명 {}
클래스 선택자: .클래스명{}
아이디 선택자: #아이디명{}
<style>
.one {
color: aqua;
}
</style>
</head>
<body>
<h1>hello world</h1>
<h1>hello world</h1>
<h1 class="one">hello world</h1>
<h1>hello world</h1>
<h1>hello world</h1>
</body>
📍주의사항
📌 어떤 선택자 밑에 있는 선택자를 선택할 때 사용
선택자(공백)선택자 {}
section ul { text-shadow: none; }
📌 자기 바로 아래 있는 하위(자식) 선택자를 선택
선택자>하위선택자 {}
li > p { color: blue; }
📌 가장 가까이 있는 형제 선택자를 선택
선택자 + 선택자 {}
h1 + ul { color: red; }
📌 앞 요소이후에 뒷요소가 가지는 모든 형제 선택자를 선택
선택자 ~ 선택자 {}
h1 ~ ul { color: red; }
📍주의사항
style>
/* 1번 */
.one .two {
color: red;
}
/* 2번 */
.one.two {
color: blue;
}
</style>
</head>
<body>
<div class="one"></div>
<div class="one two"></div>
<div class="one">
<div class="two"></div>
</div>
1번은 one이라는 클래스의 하위의 있는 two를 선택한것!!
2번은 one과 two클래스를 모두 선택한것!!
📍해당 이름의 속성을 가진 태그를 선택
태그 [속성이름]
a[href] { font-size: 32px; }
📍태그내에 속성과 변수값이 일치하는 태그를 선택
태그[속성이름="변수"]
a[href="http://paullab.co.kr"] { font-size: 48px; }
📍태그내에 속성이 변수값을 포함하는 태그 선택
태그[속성이름~="변수"]
a[href~="paullab"] { color: black; }
📍태그내에 속성이 변수값을 포함하는 태그 선택
태그 [속성이름*="변수"]
a[href*="paul"] { color: black; }
여기서!!!!!!
그럼3-3이랑 3-4랑 같은 내용이 아닌가????
👩🎓
1. 태그[속성이름=값] : 태그 이면서 해당 속성의 값이 같은 것
1은 공백을 포함하지 않기 때문에 정확하게 일치해야 한다.
2.태그[속성이름~="값"]
2는 공백을 포함하기 때문에 two 클래스를 가진 요소는 해당 태그는 모두 선택됩니다. 예를 들어 one two, one two three는 선택되지만 onetwo, one-two와 같은 것은 선택되지 않습니다.
3.태그[속성이름*="값"]
3은 one이라고 문자열중간에 있어도 다 포함합니다.
twoonethee이런 식으로요
a[href="http://paullab.co.kr"] {
font-size: 48px;
}
a[href~="paullab"] {
font-weight: normal;
}
a[href*="paullab"] {
font-weight: bold;
}
</style>
</head>
<body>
<a href="#">클릭해!</a>
<a href="http://paullab.co.kr">클릭해!</a>
<a>클릭해!</a>
</body>
</html>
요 경우라면 첫번째 클릭해!는 아무도 선택하지 않은 것이고,
두번째 클릭해는 첫번째와 세번째에서 선택해서 48p과 bold가 적용됐겠죠?
💡결과
📍태그내에 속성의 속성값이 변수로 시작하는 태그 선택
태그[속성이름^="변수"]
a[href^="http"] { color: black; }
📍태그내에 속성의 속성값이 변수로 끝나는 태그 선택
태그[속성이름$="변수"]
a[href$="kr"]{ color: black; }
📍태그내에 속성값이 변수와 같거나, 변수로 시작하는 태그 선택
태그[속성이름|="변수"]
a[href|="http"]{ color: black; }
특정한 조건에 의해서 선택이 된다.
실제로 존재하지 않는 클래싀만 클래스를 놓은것처럼 작동
:link - 방문한 적이 없는 링크
:visited - 방문한 적이 있는 링크
:hover - 마우스를 롤오버 했을 때
:active - 마우스를 클릭했을 때
:focus - 포커스 되었을 때 (input 태그 등)
:first - 첫번째 요소
:last - 마지막 요소
:first-child - 첫번째 자식
:last-child - 마지막 자식
:nth-child(n) - n번째 자식
:enabled – 모든 활성 된 것
📌가장 많이 사용되는 것들은
:hover - 마우스를 롤오버 했을 때
:active - 마우스를 클릭했을 때
:focus - 포커스 되었을 때 (input 태그 등)
:first-child - 첫번째 자식
:last-child - 마지막 자식
:nth-child(n) - n 번째 자식
우선은 요정도만 기억하고 하면서 점점 익혀 갑시다!!
최근에 생긴 부정 가상 선택자
태그 not (클래스){조건} : 조건이 아닌 것들을 선택한다.
li:not(.클래스명){ color: red;}
가상 요소 선택자는 마크업 없는 요소를 삽입하는 용도로 사용
::before 바로 앞에 다른 요소를 삽입합니다.
::after 바로 뒤에 다른 요소를 삽입합니다.
::first-letter 각 요소의 첫 글자를 선택합니다.
::first-line 각 요소의 첫 번째 줄을 선택합니다.
::marker marker 목록 항목의 마커를 선택합니다.
::selection 해당 요소에서 사용자가 선택한 요소 부분을 선택합니다.
::placeholder Input 필드 안 힌트 텍스트에 스타일을 적용합니다.
📌 가장 많이 사용되는 가상 요소 선택자
:before 바로 앞에 다른 요소를 삽입합니다.
::after 바로 뒤에 다른 요소를 삽입합니다.
📍중요한 내용보다는 앞뒤로 꾸미는 용도로 많이 사용한다.
선택자는 꾸준히 살펴보고, 새로운 예시들을 계속 업로드하며 공부해야겠다🤣