CSS 선택기 정리
많은 사람들이 CSS
을 매우 간단하다고 생각하지만, 실제로 CSS
를 잘 작성하는 것은 쉽지 않습니다. CSS
의 각 항목에는 실제로 많은 내용이 들어 있습니다. 🎜> 선택자는 아마도 다섯 가지 범주로 나눌 수 있습니다: CSS
- 요소 선택기
- 관계 선택기
- 속성 선택자
- 의사 클래스 선택자
- 의사 객체 선택자
选择器 | 名称 | 描述 |
---|---|---|
* |
通配选择器 | 选择所有的元素 |
E |
元素选择器 | 选择指定的元素 |
#idName |
id选择器 | 选择id属性等于idName的元素 |
.className |
class选择器 | 选择class属性包含className的元素 |
라고 적으면 자주 사용됩니다. 이 섹션의 내용은 매우 간단하며 특별히 말할 것은 없습니다. CSS
选择器 | 名称 | 描述 |
---|---|---|
E F |
包含选择器 | 选择所有包含在E元素里面的F元素 |
E>F |
子选择器 | 选择所有作为E元素的子元素F |
E+F |
相邻选择器 | 选择紧贴在E元素之后的F元素 |
E~F |
兄弟选择器 | 选择E元素所有兄弟元素F |
- 하위 선택기는 단어 요소만 선택할 수 있으며 손자 요소는 선택할 수 없습니다. 포함 선택자는 아들, 손자, 손자의 손자를 포함하여 자격을 갖춘 모든 자손을 선택합니다...
- 인접 선택자는 형제 선택자가 선택할 조건을 충족하는 인접한 항목만 선택합니다. 조건을 충족하는 모든 형제 요소(반드시 인접한 요소는 아님)
- Android Browser4.2.* 이하에서는 pseudo-class 선택자
를 형제 선택자와 함께 사용하면 버그가 발생할 수 있으니 자세한 내용을 확인하세요.
:checked
의사 클래스 선택기
选择器 | 描述 |
---|---|
E:link |
设置超链接a在未被访问前的样式 |
E:visited |
设置超链接a在其链接地址已被访问过时的样式 |
E:hover |
设置元素鼠标在其悬停时的样式 |
E:active |
设置元素在被用户激活(在鼠标点击与释放之间发生的事件)时的样式 |
E:focus |
设置元素在成为输入焦点(该元素的onfocus事件发生)时的样式。(一般应用于表单元素) |
E:checked |
匹配用户界面上处于选中状态的元素E。(用于input type为radio与checkbox时) |
E:enabled |
匹配用户界面上处于可用状态的元素E。(一般应用于表单元素) |
E:disabled |
匹配用户界面上处于禁用状态的元素E。(一般应用于表单元素) |
E:empty |
匹配没有任何子元素(包括text节点)的元素E |
E:root |
匹配E元素在文档的根元素。在HTML中,根元素永远是HTML |
E:not(s) |
匹配不含有s选择符的元素E |
E:first-child |
匹配父元素的第一个子元素E |
E:last-child |
匹配父元素的最后一个子元素E |
E:only-child |
匹配父元素仅有的一个子元素E |
E:nth-child(n) |
匹配父元素的第n个子元素E |
E:nth-last-child(n) |
匹配父元素的倒数第n个子元素E |
E:first-of-type |
匹配同类型中的第一个同级兄弟元素E |
E:last-of-type |
匹配同类型中的最后一个同级兄弟元素E |
E:only-of-type |
匹配同类型中的唯一的一个同级兄弟元素E |
E:nth-of-type(n) |
匹配同类型中的第n个同级兄弟元素E |
E:nth-last-of-type(n) |
匹配同类型中的倒数第n个同级兄弟元素E |
注意事项:
超链接的4种状态(访问前,鼠标悬停,当前被点击,已访问),需要有特定的书写顺序才能生效;a:hover 必须位于 a:link 和 a:visited 之后,a:active 必须位于 a:hover 之后。
E:first-child
选择符,E必须是它的兄弟元素中的第一个元素,换言之,E必须是父元素的第一个子元素。与之类似的伪类还有E:last-child
,只不过情况正好相反,需要它是最后一个子元素。
关于:not()
的用法
假定有个列表,每个列表项都有一条底边线,但是最后一项不需要底边线。
li:not(:last-child) { border-bottom: 1px solid #ddd; }
上述代码的意思是:给该列表中除最后一项外的所有列表项加一条底边线。是不是很方便。
关于:nth-child()
的用法
要使E:nth-child(n)
生效,E元素必须是某个元素的子元素,E的父元素最高是body,即E可以是body的子元素。:first-child
、:last-child
、:only-child
、:nth-last-child(n)
也是一样。nth-child(n)
括号里的n可以是一个数字,一个关键字,或者一个公式。
:nth-child(length) /*参数是具体数字 length为整数*/ :nth-child(n) /*参数是n,n从0开始计算*/ :nth-child(n*length) /*n的倍数选择,n从0开始算*/ :nth-child(n+length) /*选择大于等于length后面的元素*/ :nth-child(-n+length) /*选择小于等于length前面的元素*/ :nth-child(n*length+1) /*表示隔几选一*/ :nth-child(2n) / :nth-child(even) /*表示偶数*/ :nth-child(2n+1) / :nth-child(odd) /*表示奇数*/
关于:...-child
和:...-of-type
的差异
这两个系列的属性确实很相似,对于不熟悉的人可能很难区分。
E:first-of-type
总是能命中父元素的第1个为E的子元素,不论父元素第1个子元素是否为E;而E:first-child
里的E元素必须是它的兄弟元素中的第一个元素,否则匹配失效。E:last-of-type
与E:last-child
也是同理。E:nth-of-type(n)
总是能命中父元素的第n个为E的子元素,不论父元素第n个子元素是否为E;而E:nth-child(n)
会选择父元素的第n个子元素E,如果第n个子元素不是E,则是无效选择符,但n会递增。
关于:nth-child()
与:nth-of-type()
的区别可以看这篇文章
用:empty
区分空元素
选择不包含子元素的p元素:
p:empty
选择包含子元素的p元素:
p:not(:empty)
伪对象选择器
选择器 | 描述 |
---|---|
E:before /E::before
|
在目标元素E的前面插入的内容。用来和content属性一起使用 |
E:after /E::after
|
在目标元素E的后面插入的内容。用来和content属性一起使用 |
E:first-letter /E::first-letter
|
设置元素内的第一个字符的样式 |
E:first-line /E::first-line
|
设置元素内的第一行的样式 |
E::placeholder |
设置元素文字占位符的样式。(一般用于input输入框) |
E::selection |
设置元素被选择时的字体颜色和背景颜色 |
注意事项:
::placeholder
在使用时需要加上各个浏览器的前缀;除了Firefox是::[prefix]placeholder
,其他浏览器都是使用::[prefix]input-placeholder
。
总结
选择器用得好其实可以让我们少些很多代码。其实还有一些东西没有展开来讲,比如:before
和:after
,后面专门写一篇文章来说。
많은 사람들이 CSS
을 매우 간단하다고 생각하지만, 실제로 CSS
를 잘 작성하는 것은 쉽지 않습니다. CSS
의 각 항목에는 실제로 많은 내용이 들어 있습니다. 🎜> 선택자는 아마도 다섯 가지 범주로 나눌 수 있습니다: CSS
- 요소 선택기
- 관계 선택기
- 속성 선택자
- 의사 클래스 선택자
- 의사 객체 선택자
选择器 | 名称 | 描述 |
---|---|---|
* |
通配选择器 | 选择所有的元素 |
E |
元素选择器 | 选择指定的元素 |
#idName |
id选择器 | 选择id属性等于idName的元素 |
.className |
class选择器 | 选择class属性包含className的元素 |
라고 적으면 자주 사용됩니다. 이 섹션의 내용은 매우 간단하며 특별히 말할 것은 없습니다. CSS
选择器 | 名称 | 描述 |
---|---|---|
E F |
包含选择器 | 选择所有包含在E元素里面的F元素 |
E>F |
子选择器 | 选择所有作为E元素的子元素F |
E+F |
相邻选择器 | 选择紧贴在E元素之后的F元素 |
E~F |
兄弟选择器 | 选择E元素所有兄弟元素F |
- 하위 선택기는 단어 요소만 선택할 수 있으며 손자 요소는 선택할 수 없습니다. 포함 선택자는 아들, 손자, 손자의 손자를 포함하여 자격을 갖춘 모든 자손을 선택합니다...
- 인접 선택자는 형제 선택자가 선택할 조건을 충족하는 인접한 항목만 선택합니다. 조건을 충족하는 모든 형제 요소(반드시 인접한 요소는 아님)
- Android Browser4.2.* 이하에서는 pseudo-class 선택자
를 형제 선택자와 함께 사용하면 버그가 발생할 수 있으니 자세한 내용을 확인하세요.
:checked
의사 클래스 선택기
选择器 | 描述 |
---|---|
E:link |
设置超链接a在未被访问前的样式 |
E:visited |
设置超链接a在其链接地址已被访问过时的样式 |
E:hover |
设置元素鼠标在其悬停时的样式 |
E:active |
设置元素在被用户激活(在鼠标点击与释放之间发生的事件)时的样式 |
E:focus |
设置元素在成为输入焦点(该元素的onfocus事件发生)时的样式。(一般应用于表单元素) |
E:checked |
匹配用户界面上处于选中状态的元素E。(用于input type为radio与checkbox时) |
E:enabled |
匹配用户界面上处于可用状态的元素E。(一般应用于表单元素) |
E:disabled |
匹配用户界面上处于禁用状态的元素E。(一般应用于表单元素) |
E:empty |
匹配没有任何子元素(包括text节点)的元素E |
E:root |
匹配E元素在文档的根元素。在HTML中,根元素永远是HTML |
E:not(s) |
匹配不含有s选择符的元素E |
E:first-child |
匹配父元素的第一个子元素E |
E:last-child |
匹配父元素的最后一个子元素E |
E:only-child |
匹配父元素仅有的一个子元素E |
E:nth-child(n) |
匹配父元素的第n个子元素E |
E:nth-last-child(n) |
匹配父元素的倒数第n个子元素E |
E:first-of-type |
匹配同类型中的第一个同级兄弟元素E |
E:last-of-type |
匹配同类型中的最后一个同级兄弟元素E |
E:only-of-type |
匹配同类型中的唯一的一个同级兄弟元素E |
E:nth-of-type(n) |
匹配同类型中的第n个同级兄弟元素E |
E:nth-last-of-type(n) |
匹配同类型中的倒数第n个同级兄弟元素E |
참고:
하이퍼링크의 4가지 상태(액세스 전, 마우스 오버, 현재 클릭, 방문)를 적용하려면 특정 쓰기 순서가 필요합니다. a:link 및 a:visited 뒤에 위치해야 하며, a:active는 a:hover 뒤에 위치해야 합니다.
선택기인 E는 형제 요소 중 첫 번째 요소여야 합니다. 즉, E는 상위 요소의 첫 번째 하위 요소여야 합니다. 유사한 의사 클래스는
E:first-child
이지만 상황은 정반대이므로 마지막 하위 요소여야 합니다.E:last-child
:not()
목록이 있다고 가정하면 각 목록 항목에는 수익이 있지만 마지막 항목에는 수익이 필요하지 않습니다.
li:not(:last-child) { border-bottom: 1px solid #ddd; }
:nth-child()
의 사용법에 대해 E:nth-child(n)
이 적용되려면 E 요소가 특정 요소의 하위 요소여야 하며, E의 최상위 상위 요소는 body이며, 즉, E는 본문 하위 요소일 수 있습니다. :first-child
, :last-child
, :only-child
, :nth-last-child(n)
도 마찬가지다. nth-child(n)
괄호 안의 n은 숫자, 키워드 또는 수식일 수 있습니다.
:nth-child(length) /*参数是具体数字 length为整数*/ :nth-child(n) /*参数是n,n从0开始计算*/ :nth-child(n*length) /*n的倍数选择,n从0开始算*/ :nth-child(n+length) /*选择大于等于length后面的元素*/ :nth-child(-n+length) /*选择小于等于length前面的元素*/ :nth-child(n*length+1) /*表示隔几选一*/ :nth-child(2n) / :nth-child(even) /*表示偶数*/ :nth-child(2n+1) / :nth-child(odd) /*表示奇数*/
:...-child
와 :...-of-type
의 차이점에 대해 이 두 시리즈의 속성은 사실 매우 유사하여 익숙하지 않은 분들은 구별하기 어려울 수 있습니다. 그들을.
E:first-of-type
은 상위 요소의 첫 번째 하위 요소가 E이고 E:first-child
의 E 요소가 필수인지 여부에 관계없이 항상 상위 요소의 첫 번째 하위 요소인 E를 적중할 수 있습니다. 형제 요소 중 첫 번째 요소입니다. 그렇지 않으면 일치가 실패합니다. E:last-of-type
, E:last-child
도 마찬가지다. E:nth-of-type(n)
은 상위 요소의 n번째 하위 요소가 E인지 여부에 관계없이 항상 상위 요소의 n번째 하위 요소인 E를 적중할 수 있으며 E:nth-child(n)
는 n번째 하위 요소를 선택합니다. 상위 요소의 하위 요소 E, n번째 하위 요소가 E가 아닌 경우 유효하지 않은 선택자이지만 n은 증가됩니다. :nth-child()
과 :nth-of-type()
의 차이점은 이 기사를 참조하세요
:empty
를 사용하여 빈 요소 구분
포함하지 않는 p 요소 선택 하위 요소:
p:empty
하위 요소가 포함된 p 요소 선택:
p:not(:empty)
의사 객체 선택기
选择器 | 描述 |
---|---|
E:before /E::before
|
在目标元素E的前面插入的内容。用来和content属性一起使用 |
E:after /E::after
|
在目标元素E的后面插入的内容。用来和content属性一起使用 |
E:first-letter /E::first-letter
|
设置元素内的第一个字符的样式 |
E:first-line /E::first-line
|
设置元素内的第一行的样式 |
E::placeholder |
设置元素文字占位符的样式。(一般用于input输入框) |
E::selection |
设置元素被选择时的字体颜色和背景颜色 |
참고:
::placeholder
사용 시 각 브라우저의 접두사를 추가해야 합니다. Firefox를 제외하고::[prefix]placeholder
, 다른 브라우저는::[prefix]input-placeholder
을 사용합니다.
요약
선택기를 잘 사용하면 실제로 많은 코드를 절약할 수 있습니다. 사실 :before
, :after
등 아직 구체적으로 다루지 못한 내용도 있는데, 이에 대해서는 추후 별도의 글에서 다루겠습니다.
CSS 선택자 구성과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











HTML 텍스트 상자의 크기를 설정하는 것은 프런트 엔드 개발에서 매우 일반적인 작업입니다. 이 문서에서는 텍스트 상자의 크기를 설정하는 방법을 설명하고 구체적인 코드 예제를 제공합니다. HTML에서는 CSS를 사용하여 텍스트 상자의 크기를 설정할 수 있습니다. 구체적인 코드는 다음과 같습니다: input[type="text"

잘못 정렬된 표시를 방지하기 위해 WordPress 테마를 조정하려면 특정 코드 예제가 필요합니다. 강력한 CMS 시스템인 WordPress는 많은 웹사이트 개발자와 웹마스터에게 사랑을 받고 있습니다. 그러나 WordPress를 사용하여 웹 사이트를 만들 때 사용자 경험과 페이지 아름다움에 영향을 미치는 테마 정렬 문제가 자주 발생합니다. 따라서 잘못 정렬된 표시를 방지하려면 WordPress 테마를 적절하게 조정하는 것이 매우 중요합니다. 이번 글에서는 구체적인 코드 예시를 통해 테마를 조정하는 방법을 소개하겠습니다.

:not() 선택자는 특정 조건에서 요소를 제외하는 데 사용할 수 있으며 구문은 :not(selector) {스타일 규칙}입니다. 예: :not(p)는 단락이 아닌 모든 요소를 제외하고, li:not(.active)는 비활성 목록 항목을 제외하고, :not(table)은 테이블이 아닌 요소를 제외하고, div:not([data-role="primary"] ) 기본 역할이 아닌 div 요소를 제외합니다.

CSS 선택기 우선순위는 다음 순서로 결정됩니다. 구체성(ID > 클래스 > 유형 > 와일드카드) 소스 순서(인라인 > 내부 스타일 시트 > 외부 스타일 시트 > 사용자 에이전트 스타일 시트) 선언 순서(최신 선언이 우선 적용됨) 중요도(!important) 강제로 우선순위를 높인다)

CSS 선택자의 고급 선택자에는 하위 항목 선택자, 하위 요소 선택자, 인접 형제 선택자, 범용 형제 선택자, 속성 선택자, 클래스 선택자, ID 선택자, 의사 클래스 선택자 및 의사 요소 선택자 대기가 포함됩니다. 자세한 소개: 1. 하위 요소 선택자는 공백으로 구분된 선택자를 사용하여 요소의 하위 요소를 선택합니다. 2. 하위 요소 선택자는 요소의 직접 하위 요소를 선택하기 위해 보다 큼 기호로 구분된 선택자를 사용합니다. 인접한 형제 선택자는 더하기 기호로 구분된 선택자를 사용하여 요소 바로 다음의 첫 번째 형제 요소를 선택하는 식입니다.

CSS 선택기 와일드카드의 가중치와 우선순위에 대한 심층적인 이해 CSS 스타일 시트에서 선택기는 스타일이 적용되는 HTML 요소를 지정하는 데 사용되는 중요한 도구입니다. 선택기의 우선순위와 가중치는 여러 규칙이 HTML 요소에 동시에 적용될 때 적용되는 스타일을 결정합니다. 와일드카드 선택자는 CSS의 일반적인 선택자입니다. "*" 기호로 표시됩니다. 이는 모든 HTML 요소와 일치함을 의미합니다. 와일드카드 선택기는 간단하지만 특정 상황에서는 매우 유용할 수 있습니다. 그러나 와일드카드 선택자의 가중치와 우선순위도

H5 Page 프로덕션은 HTML5, CSS3 및 JavaScript와 같은 기술을 사용하여 크로스 플랫폼 호환 웹 페이지의 생성을 말합니다. 핵심은 브라우저의 구문 분석 코드, 렌더링 구조, 스타일 및 대화식 기능에 있습니다. 일반적인 기술에는 애니메이션 효과, 반응 형 디자인 및 데이터 상호 작용이 포함됩니다. 오류를 피하려면 개발자를 디버깅해야합니다. 성능 최적화 및 모범 사례에는 이미지 형식 최적화, 요청 감소 및 코드 사양 등이 포함됩니다. 로딩 속도 및 코드 품질을 향상시킵니다.

기본 CSS 선택기 구문을 익히려면 특정 코드 예제가 필요합니다. CSS 선택기는 HTML 문서의 다양한 요소를 선택하고 수정하는 데 사용할 수 있습니다. 효율적인 스타일시트를 작성하려면 기본 CSS 선택기 구문을 익히는 것이 중요합니다. 이 문서에서는 몇 가지 일반적인 CSS 선택기와 해당 코드 예제를 소개합니다. 요소 선택기 요소 선택기는 태그 이름으로 해당 요소를 선택할 수 있는 가장 기본적인 선택기입니다. 예를 들어, 모든 단락(p 요소)을 선택하려면 다음을 사용할 수 있습니다.
