이 글은 CSS 가상 클래스 선택자(코드 예제)에 대한 심층적인 이해를 제공합니다. 필요한 친구들이 참고할 수 있기를 바랍니다.
머리말
과거에는 :link
, ::after
및 content와 같은 의사 클래스 및 의사 요소 선택자를 간헐적으로 이해하고 사용했습니다.
, 최근 책을 읽다가 이 부분에 부족한 부분을 발견해서 좀 더 심도 있게 공부해 보기로 했습니다. 다음은 pseudo-class 부분을 요약한 것입니다. :link
、::after
和content
等伪类、伪元素选择器,最近看书时发现这方面有所欠缺,于是决定稍微深入学习一下,以下为伪类部分的整理。
伪类
伪类选择器实质上是让设计师可以根据元素特定的状态,设置不同的视觉效果。具体有:link
、:visited
、:hover
、:active
、:focus
、:focus-within
、:target
、:root
和:checked
。
HTMLAnchorElement
的4大经典伪类
:link
,用于设置链接初始状态时的样式;:visited
,用于设置链接被点击过后的样式;:hover
,用于设置鼠标悬停在链接上方时,链接的样式;:active
,用于设置鼠标按键按下,但未释放时,链接的样式。
想必各位都和我一样,最初接触到的就是上述4个伪类了吧?!而且还死机硬背它们的设置顺序(LVAH
)吧,哈哈。
设置当前目标元素样式
还记得URL中的井号吗?从井号(#
)开始到URL的末尾称为URL的hash或fragment,用于定位页面内某项资源。假设现在页面存在<h3 id="Target">Target</h3>
的元素,那么只要地址栏输入#title
浏览器就会不断滚动(滚动不一定存在补间动效)直到元素h3#title
位于可视区的特定位置。(注意:请不要和UI Routing混为一谈)
而上述这个被定位的页面资源,被称为目标元素或当前活动元素!可通过:target
设置其样式。
兼容性:IE9开始支持。
示例:
// 当前URL为http://foo.com#1 :target { color: red; } .title{ color: blue; &:target{ border: solid 1px red; } } .title{I'm not target element.} .title#1{Yes, I'm.}
设置元素获得焦点时的样式
:focus
用于设置元素处于focus状态下的样式。
兼容性:IE8开始支持。
那么哪些元素支持focus状态呢?那要先弄清楚通过哪些操作可能实现focus。
它们分别是:
鼠标点击;
Tab键;
通过JavaScript的
HTMLElement.prototype.focus()
方法。
那么传统上支持focus状态的元素必定是a
、button
、input
、select
和textareas
.
而HTML5中增加当元素设置了contenteditable
或tabindex
属性时,该元素支持focus状态。
也就是符合以下选择器的元素均支持focus状态。
a,button,input,select,textarea,[contenteditable],[tabindex]
注意:若tabindex
属性值小于0,则无法通过Tab键获得焦点。但可以通过鼠标点击 或 脚本时元素获得焦点。
JS获取当前得到焦点的元素
/* * 加载完成时默认返回body * 若某元素获得焦点时,则返回该元素 */ document.activeElement :: HTMLElement
另外还有一个让人误会的属性
// 用于检测文档是否得到焦点,即用户是否正在与页面交互 // 页面仅仅位于屏幕可视区域,而用户没有与之交互时返回false。 document.hasFocus :: Void -> Boolean
设置子元素获得焦点时,该元素的样式
:focus-within
,用于设置当子元素处于focus状态时,该元素的样式。
兼容性:Chrome63开始支持。
示例:二次确认密码时,密码框高亮
.form-control{ &:focus-within > input{ &:focus { border: solid 1px skyblue; } &:not(:focus){ border: solid 1px orange; } } } .form-control>input.pwd[type=password]+input.confirm-pwd[type=password]
其他
:root
,用于设置元素的样式,从IE9开始支持。
:checked
,用于设置单选和复选控件被选中的样式,从IE9开始支持。结合伪元素::before
和content
属性可以实现灵活高效的自定义单选和复选控件。:empty
,用于设置没有子节点的元素的样式。p{ }
为存在TEXT_NODE子节点的元素,而p{}
则为没有子节点的元素。:not
,作为谓语表达取反的语义。-
Pseudo-class:placeholder-shown
:link
, :visited
, :hover
, :active
, :focus
>, :focus-within
, :target
, :root
및 :checked
.
HTMLAnchorElement
의 4가지 고전 의사 클래스
-
:link
, 사용됨 초기 상태의 링크 스타일을 설정합니다. -
:active
, 마우스가 링크 위에 있을 때 링크 스타일을 설정하는 데 사용됩니다. 버튼을 눌렀지만 놓지 않았습니다. 🎜🎜🎜🎜 여러분이 가장 먼저 접한 것은 위의 네 가지 유사 카테고리였죠? ! 그리고 설정순서(LVAH
)도 외워야겠네요, 하하. 🎜현재 대상 요소의 스타일 설정
🎜 URL에 파운드 기호를 기억하시나요? 파운드 기호(#
)부터 시작하여 URL 끝까지를 해시 또는 URL 조각이라고 하며 페이지에서 특정 리소스를 찾는 데 사용됩니다.#title
이 입력되어 있는 한 현재 페이지에<h3 id="Target">Target</h3>
요소가 있다고 가정합니다. 주소 표시줄에서h3#title
요소가 시각적 영역의 특정 위치에 위치할 때까지 브라우저는 계속 스크롤합니다(스크롤에 트윈 애니메이션이 반드시 필요한 것은 아님). (참고: UI 라우팅과 혼동하지 마세요.) 🎜 위에서 언급한 위치 지정 페이지 리소스를 대상 요소 또는 현재 활성 요소라고 합니다! 스타일은:target
을 통해 설정할 수 있습니다. 🎜호환성: IE9에서 지원됩니다. 🎜🎜예: 🎜rrreee요소에 포커스가 있을 때 스타일 설정
🎜:focus
는 요소에 포커스가 있을 때 스타일을 설정하는 데 사용됩니다. 🎜호환성: IE8이 지원되기 시작합니다. 🎜그럼 어떤 요소가 포커스 상태를 지원하나요? 그런 다음 먼저 집중을 달성하기 위해 어떤 작업을 사용할 수 있는지 파악해야 합니다. 🎜그 내용은 다음과 같습니다: 🎜- 🎜마우스 클릭;🎜🎜
- 🎜Tab 키;🎜🎜
- 🎜JavaScript의
HTMLElement.prototype을 통해( )
메소드. 🎜🎜🎜🎜그러면 전통적으로 포커스 상태를 지원하는 요소는a
,button
,input
,select
여야 합니다. 및textareas
.🎜HTML5에서 요소가contenteditable
또는tabindex
속성으로 설정된 경우 요소는 포커스 상태를 지원합니다. 🎜즉, 다음 선택자와 일치하는 요소는 포커스 상태를 지원합니다. 🎜rrreee🎜참고:tabindex
속성 값이 0보다 작은 경우 Tab 키를 통해 포커스를 얻을 수 없습니다. 그러나 요소는 마우스 클릭이나 스크립트를 통해 포커스를 얻을 수 있습니다. 🎜JS는 현재 포커스된 요소를 가져옵니다.
rrreee🎜오해의 소지가 있는 속성도 있습니다🎜rrreee하위 요소가 포커스를 받을 때 요소의 스타일을 설정하세요
🎜:focus- 내에서
, 하위 요소에 포커스가 있을 때 요소의 스타일을 설정하는 데 사용됩니다. 🎜호환성: Chrome63이 지원되기 시작합니다. 🎜🎜예: 두 번째로 비밀번호를 확인할 때 비밀번호 상자가 강조 표시됩니다.🎜rrreeeOther
- 🎜
:root, <code>
요소의 스타일을 설정하는 데 사용되며 IE9부터 지원됩니다. 🎜🎜 - 🎜
:checked
, 선택한 라디오 스타일을 설정하고 컨트롤을 확인하는 데 사용되며 IE9부터 지원됩니다. 의사 요소::before
및content
속성을 결합하면 유연하고 효율적인 맞춤형 라디오 및 검사 제어를 실현할 수 있습니다. 🎜🎜 - 🎜
:empty
, 하위 노드가 없는 요소의 스타일을 지정하는 데 사용됩니다.p{ }
는 TEXT_NODE 하위 노드가 있는 요소이고,p{}
는 하위 노드가 없는 요소입니다. 🎜🎜 - 🎜
:not
, 부정의 의미를 표현하는 술어. 🎜🎜 - 🎜
:placeholder-shown
, 요소 자리 표시자가 표시될 때 스타일을 설정하는 데 사용됩니다. 🎜🎜🎜🎜관련 권장 사항: 🎜🎜🎜CSS 의사 클래스 선택기🎜🎜🎜🎜🎜CSS 의사 클래스 선택기 정보_html/css_WEB-ITnose🎜🎜
- 🎜
위 내용은 CSS 의사 클래스 선택기에 대한 심층적인 이해(코드 예제)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

앵커 포지셔닝이 HTML 소스 순서를 철회한다는 사실은 컨텐츠와 프리젠 테이션 사이의 또 다른 문제가있는 또 다른 분리 때문에 CSS-Y이기 때문입니다.

기사는 CSS 마진 속성, 특히 "마진 : 40px 100px 120px 80px", 응용 프로그램 및 웹 페이지 레이아웃에 미치는 영향에 대해 설명합니다.

이 기사에서는 CSS 국경 속성에 대해 설명하고 사용자 정의, 모범 사례 및 응답성에 중점을 둡니다. 주요 인수 : Border-Radius는 반응 형 디자인에 가장 효과적입니다.

이 기사에서는 CSS 배경 속성, 웹 사이트 디자인 향상에 대한 사용 및 피하는 일반적인 실수에 대해 설명합니다. 주요 초점은 배경 크기를 사용한 반응 형 디자인에 중점을 둡니다.

기사는 CSS HSL 색상, 웹 디자인에서의 사용 및 RGB의 장점에 대해 설명합니다. 주요 초점은 직관적 인 색상 조작을 통해 설계 및 접근성을 향상시키는 데 있습니다.

이 기사는 CSS의 주석 사용에 대해 논의하고 단일 라인 및 멀티 라인 주석 구문을 자세히 설명합니다. 의견은 코드 가독성, 유지 관리 및 협업을 향상 시키지만 제대로 관리하지 않으면 웹 사이트 성능에 영향을 줄 수 있다고 주장합니다.

이 기사는 CSS 선택기, 유형 및 HTML 요소 스타일링을위한 사용법에 대해 설명합니다. ID와 클래스 선택기를 비교하고 복잡한 선택기의 성능 문제를 해결합니다.

이 기사는 CSS 우선 순위에 대해 논의하며, 가장 높은 특이성을 가진 인라인 스타일에 중점을 둡니다. CSS 충돌 관리를위한 특이성 수준, 재정의 방법 및 디버깅 도구를 설명합니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

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

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
