찾다
웹 프론트엔드CSS 튜토리얼CSS 의사 클래스 선택기 사용에 대한 심층적인 이해(코드 예제)

이 기사는 의사 클래스 선택기(코드 예제)의 사용법에 대한 심층적인 이해를 제공합니다. 이는 특정 참고 가치가 있으므로 도움이 될 수 있습니다.

머리말

예전에는 :link, ::after, content 등의 의사 클래스와 의사 요소 선택자를 간헐적으로 이해하고 사용해왔는데, 최근 책을 읽다가 이 부분에서 부족한 점을 발견했습니다. 그래서 좀 더 심도 있게 배워보기로 했습니다. 다음은 수업 파트의 가짜 배열입니다.

Pseudo-class

의사 클래스 선택기를 사용하면 기본적으로 디자이너는 요소의 특정 상태에 따라 다양한 시각적 효과를 설정할 수 있습니다. 구체적으로는 link, :visited, :hover, :active, :focus, :focus-within, :target, :root 및 :checked입니다.

HTMLAnchorElement의 네 가지 고전 의사 클래스 HTMLAnchorElement的4大经典伪类

:link,用于设置链接初始状态时的样式;

:visited,用于设置链接被点击过后的样式;

:hover,用于设置鼠标悬停在链接上方时,链接的样式;

:active,用于设置鼠标按键按下,但未释放时,链接的样式。

想必各位都和我一样,最初接触到的就是上述4个伪类了吧?!而且还死机硬背它们的设置顺序(LVAH)吧,哈哈。

设置当前目标元素样式

 还记得URL中的井号吗?从井号(#)开始到URL的末尾称为URL的hash或fragment,用于定位页面内某项资源。假设现在页面存在

Target

的元素,那么只要地址栏输入#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

:link, 초기 상태에서 링크 스타일을 설정하는 데 사용됨

:visited, 이후 링크 스타일을 설정하는 데 사용됨

: hover, 링크 위로 마우스를 가져갈 때 링크 스타일을 설정하는 데 사용됩니다.

:active, 마우스 버튼을 눌렀지만 놓지 않았을 때 링크 스타일을 설정하는 데 사용됩니다.

여러분이 가장 먼저 접한 것은 위의 네 가지 유사 카테고리였죠? ! 그리고 설정순서(LVAH)도 외워야겠네요, 하하.

현재 대상 요소 스타일 설정

URL의 파운드 기호를 기억하시나요? 파운드 기호(#)부터 시작하여 URL 끝까지는 URL의 해시 또는 조각이라고 하며 페이지 내에서 특정 리소스를 찾는 데 사용됩니다. 이제 페이지에

Target

요소가 주소 표시줄에 입력되어 있는 한 브라우저는 계속 스크롤할 것입니다(스크롤이 반드시 그렇지 않을 수도 있습니다). 트위닝 효과 있음) h3#title 요소가 뷰포트의 특정 위치에 위치할 때까지. (참고: UI 라우팅과 혼동하지 마세요.)

위에서 언급한 위치 페이지 리소스를 대상 요소 또는 현재 활성 요소라고 합니다! 스타일은 :target을 통해 설정할 수 있습니다.

호환성: IE9에서 지원됩니다.
🎜예: 🎜
.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]
🎜요소에 포커스가 있을 때 스타일 설정🎜🎜:focus는 요소에 포커스가 있을 때 스타일을 설정하는 데 사용됩니다. 🎜호환성: IE8이 지원되기 시작합니다. 🎜그럼 어떤 요소가 포커스 상태를 지원하나요? 그런 다음 먼저 집중을 달성하기 위해 어떤 작업을 사용할 수 있는지 파악해야 합니다. 🎜그들은: 🎜🎜마우스 클릭; 🎜🎜Tab 키; 🎜🎜JavaScript의 HTMLElement.prototype.focus() 메소드를 통해. 🎜🎜그러면 전통적으로 포커스 상태를 지원하는 요소는 버튼, 입력, 선택 및 텍스트 영역이어야 합니다. 🎜HTML5에서는 요소가 contenteditable 또는 tabindex 속성으로 설정되면 요소가 포커스 상태를 지원합니다. 🎜즉, 다음 선택자와 일치하는 요소는 포커스 상태를 지원합니다. 🎜rrreee🎜참고: tabindex 속성 값이 0보다 작으면 Tab 키를 통해 포커스를 얻을 수 없습니다. 그러나 요소는 마우스 클릭이나 스크립트를 통해 포커스를 얻을 수 있습니다. 🎜

JS는 현재 포커스된 요소를 가져옵니다.

rrreee🎜잘못된 속성도 있습니다🎜rrreee🎜하위 요소가 포커스를 받을 때 요소의 스타일을 설정하세요🎜🎜:focus-within , 하위 요소에 포커스가 있을 때 요소의 스타일을 설정하는 데 사용됩니다. 🎜호환성: Chrome63이 지원되기 시작합니다. 🎜🎜예: 두 번째로 비밀번호를 확인하면 비밀번호 상자가 강조 표시됩니다.🎜rrreee🎜Others🎜🎜🎜:root는 요소의 스타일을 설정하는 데 사용되며 IE9부터 지원됩니다. 🎜🎜:선택됨, 선택한 라디오 스타일을 설정하고 컨트롤을 확인하는 데 사용되며 IE9부터 지원됩니다. 의사 요소 ::before와 콘텐츠 속성을 결합하면 유연하고 효율적인 맞춤형 무선 및 검사 제어를 실현할 수 있습니다. 🎜🎜: 비어 있으며, 하위 노드가 없는 요소의 스타일을 지정하는 데 사용됩니다. p{}는 TEXT_NODE 하위 노드가 있는 요소이고, p{}는 하위 노드가 없는 요소입니다. 🎜🎜:not, 부정의 의미를 표현하는 술어입니다. 🎜🎜:placeholder-shown, 요소 자리 표시자가 표시될 때 스타일을 설정하는 데 사용됩니다. 🎜🎜

위 내용은 CSS 의사 클래스 선택기 사용에 대한 심층적인 이해(코드 예제)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Google 글꼴을 태그하고 Goofonts.com을 작성한 방법Google 글꼴을 태그하고 Goofonts.com을 작성한 방법Apr 12, 2025 pm 12:02 PM

Goofonts는 개발자 부인과 디자이너 남편이 서명 한 사이드 프로젝트로, 둘 다 타이포그래피의 큰 팬입니다. 우리는 Google에 태그를 지정했습니다

시대를 초월한 웹 개발 기사시대를 초월한 웹 개발 기사Apr 12, 2025 am 11:44 AM

Pavithra Kodmad

섹션 요소와의 거래섹션 요소와의 거래Apr 12, 2025 am 11:39 AM

두 기사가 정확히 같은 날에 출판되었습니다.

JavaScript API 상태로 GraphQL 쿼리를 연습하십시오JavaScript API 상태로 GraphQL 쿼리를 연습하십시오Apr 12, 2025 am 11:33 AM

GraphQL API를 구축하는 방법을 배우는 것은 매우 어려울 수 있습니다. 그러나 10 분 안에 GraphQL API를 사용하는 방법을 배울 수 있습니다! 그리고 그것은 완벽하게 얻었습니다

구성 요소 수준 CMS구성 요소 수준 CMSApr 12, 2025 am 11:09 AM

구성 요소가 데이터를 쿼리하는 환경에 거주하면 근처에 사는 경우 시각적 구성 요소와

오프셋 경로로 원에 유형을 설정하십시오오프셋 경로로 원에 유형을 설정하십시오Apr 12, 2025 am 11:00 AM

여기 Yuanchuan의 합법적 인 CSS 속임수입니다. 이 CSS 속성 오프셋 경로가 있습니다. 옛날 옛적에, 그것은 모션 경로라고 불렸다가 이름이 바뀌 었습니다. 나

CSS에서 '리버 트'는 무엇을합니까?CSS에서 '리버 트'는 무엇을합니까?Apr 12, 2025 am 10:59 AM

Miriam Suzanne 은이 주제에 대한 Mozilla 개발자 비디오에서 설명합니다.

현대 애호가현대 애호가Apr 12, 2025 am 10:58 AM

나는 이런 것들을 좋아한다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경