css_02 | CSS – CSS 선택기 상세 정보
PC ~
“ | ” , , !
css_02
1. ?
2. ?
3. css , ?( )
❌ header .p id header p 。
✅ header > .p header class p 。
✅ #header.p id header class p 。
✅ #header, p id header p 。
선언: 이 행의 순서는 첫 번째 부분에서 HTML 문서 트리 구조를 소개하는 것입니다.이'나무 구조'를 완전히 이해하는 토대에서 글 아래에 이어지는 두 개의 큰 선택기(조합 선택기와 위조 선택기)를 잘 파악할 수 있다.이'구조 트리'가 있어야만 우리가 본 편에서 토론한'선택기'가 작용할 수 있기 때문이다.또한 크고 잡다하며 기초적이고 중요한 지식점이므로 반드시 파악해야 할 항목에 속한다.
1 HTML 문서 트리 구조
이전에 HTML 관련 지식에 대한 학습을 통해 우리는 HTML 문서는 각 요소 간의 차원 구조를 바탕으로 구축된 것이고 모든 합법적인 문서는 구조 트리를 생성한다(이하 예).
이 차원 구조에서 모든 원소는 자신의 위치를 가지고 모든 원소는 이 구조의 다른 원소에 비해 서로 또는'부자관계', 또는'조손-후손관계', 또는'직접인접관계', 또는'일반인접관계'등이 있다.
(다음 예제의 HTML 문서와 해당 구조 트리)
<html>
<head>
<meta charset="utf-8">
<title>Oli title>
head>
<body>
<h1>《<em>Oli em>》 :xxxh1>
<p><em> :2 ……em>p>
<p><strong><em> :em>strong>Oli ……p>
<h2> 、 xxxh2>
<p> <em>“ ”em> p>
<h2> 、 xxxh2>
<ul>
<li>
<ol>
<li>what
<ul>
<li>wli>
<li>wli>
<li>hli>
ul>
li>
<li>whyli>
<li><em>howem>li>
ol>
li>
<li> li>
<li> li>
ul>
<h2> 、 xxxh2>
<ol>
<li>whatli>
<li>whyli>
<li><em>howem>li>
ol>
body>
html>
(문서 구조:)
1.1 모/자 관계 요소
문서 계층 구조의 다른 요소 위에 요소가 나타나면 전자는 후자의 부모 요소이고 후자는 전자의 하위 요소라고 합니다.
1.2 조손-후손관계원소
원소가 다른 원소의 직접 상층에 있다면 그들은'부자관계'이고 원소가 다른 원소로 가는 경로가 두 층 또는 여러 층을 지나야 한다면 이런 원소는'조손-후손관계'이다.
1.3개 요소
바디 요소는 브라우저가 기본적으로 표시하는 모든 요소의 조상이고 html 요소는 전체 문서의 조상이다(따라서 html 요소는'뿌리 요소'라고도 부른다).
2 조합 선택기
2.1 다중 요소 선택기
h1,h2 {
background:yellow;
}
⚠️여러 선택기 사이에
,
이 문자가 있어야 한다는 것을 주의하십시오.2.2 후대 선택기
ul em {
text-decoration: line-through;
background:yellow;
}
⚠️선택기 사이를 '빈칸' 이라는 '결합자' 로 구분하는 것을 주의하십시오.
2.3 하위 요소 선택기
p>em {
text-decoration: line-through;
background:yellow;
}
⚠️선택기 사이의 사용에 주의하시오
>
이 결합부호는 분리된다.2.4 직접 인접 요소 선택기
h2+p {
text-decoration: line-through;
background:yellow;
}
⚠️선택기 사용 주의
+
이 결합부호는 분리된다.2.5 일반 인접 요소 선택기
h2~h2 {
text-decoration: line-through;
background:yellow;
}
⚠️선택기 사용 주의
~
이 결합부호는 분리된다.3 위류
3.1 왜'위류'가 필요한가?
먼저 ② HTML 요소, 속성 상해에서'하이퍼링크 a 요소'에 대한 지식을 다시 복습한다.
'링크'는 실제 페이지에 나타나는 빈도가 매우 높다. 사람들은'방문하지 않은 페이지'와'이미 방문한 페이지'를 스타일로 구분하고 싶어 한다. 직관적인 방법은 HTML 문서에서 a 요소를class 속성으로 추가하고 이 a 요소를 클래스로 추가하는 것이다.
<a href="http://…" class="visited"> a>
그런 다음 클래스 선택기를 통해 유형을 추가합니다.
a.visited {
color=red;
}
그러나 이러한 방식은 실제 작업에 부합되지 않는다. 왜냐하면 새로운 페이지에 방문할 때마다 링크의 '클래스' 를 수정할 수 없기 때문이다.
따라서 CSS는 HTML 문서에 입력하지 않고 스타일을 직접 추가할 수 있는 [하이퍼링크]에만 사용되는 [정적 위조]를 정의합니다.각각:
:link
⚠️양식상의'사칭'을 주의해서 쓰세요. 이 사칭
:
은'위류'와'위원소'의 명함입니다.콜론과 상태link
사이에는 공백이 있을 수 없습니다.:visited
3.2 왜'동적 위조'가 필요합니까?
위에서 알 수 있듯이 CSS는 수요에 적응하기 위해 가장 먼저 두 개의'정적 위조류'를 정의했지만
:link
와:visited
는 문서 양식의 변화에 한계가 있어 일반적으로 처음 표시한 후에 다시 작용하지 않는다.사람들의 수요는 더욱 많다.'초점 포커스'를 연결할 때, 링크에'hover를 멈출 때','활동 active'상태를 연결할 때 스타일의 구분이 필요하다.따라서 CSS는 세 개의'동적 위조 클래스'를 정의했는데 이것은 사용자의 행동에 따라 문서의 외관을 바꿀 수 있다.이러한 [위조 클래스] 또는 모든 [위조 클래스]를 HTML 문서에 입력하지 않고 스타일을 직접 추가할 수 있습니다.각각:
:focus
:hover
:active
⚠️참고:
:link
:visited
:focus
:hover
:active
4 위조 선택기
4.1'정적, 동적 위조 선택기'사용 실례
먼저 다시 복습: ③ HTML 폼 상해를 복습하고 폼 요소를 파악한다.그리고 다음과 같은 예를 조작한다.
?소스 및 효과 표시 → (다음 HTML 문서에 따라)
<html>
<head>
<meta charset="utf-8">
<title>HTML title>
head>
<body>
<a href="https://zhuanlan.zhihu.com/Oli-Zhao" title="Oli "> a>
<div class="login">
<form action="/getinfo" method="get">
<div class="username">
<label for="username"> label>
<input id="username" type="text" name="username" value="Oliver">
div>
<div class="password">
<label for="password" > label>
<input id="password" type="password" name="password" placeholder=" ">
div>
<div class="sex">
<label> label>
<input type="radio" name="sex" value=" " checked>
<input type="radio" name="sex" value=" ">
div>
form>
div>
body>
html>
→ (CSS 스타일 추가:)
a:link {
color: blue;
}
a:visited {
color: red;
}
input:focus {
background: yellow;
font-weight: bold;
}
a:hover {
font-size: 30px;
}
a:active {
color: silver;
}
⚠️주의: 다음 글은 링크가 사용자의 조작 상태에 따라 바뀔 때 그 양식이 어떤 순서로 표시되는지 상세하게 설명할 것입니다.
4.2 사용자 인터페이스 요소 클래스 선택기(UI 요소 클래스 선택기)
:checked
::selection
:enabled
:disabled
:read-write
:read-only
⚠️선택기의 형식에 주의하십시오!
코드 인스턴스:?원본 및 효과 전시
→(다음 HTML 문서에 따라)
<html>
<head>
<meta charset="utf-8">
<title>HTML title>
head>
<body>
<a href="https://zhuanlan.zhihu.com/Oli-Zhao" title="Oli "> a>
<div class="login">
<form action="/getinfo" method="get">
<div class="username">
<label for="username"> label>
<input id="username" type="text" name="username" value="Oliver">
div>
<div class="password">
<label for="password" > label>
<input id="password" type="password" name="password" placeholder=" ">
div>
<div class="sex">
<label> label>
<input type="radio" name="sex" value=" ">
<input type="radio" name="sex" value=" ">
div>
<div>
<label for="enabled"> :label>
<input type="text" name="enabled">
div>
<div>
<label for="disabled"> :label>
<input type="text" name="disabled" disabled="disabled">
div>
<div>
<label for="enabled"> :label>
<input type="text" name="status">
div>
<div>
<label for="disabled"> :label>
<input type="text" name="status" readonly="readonly">
div>
form>
div>
<p>Oli “ ”, !p>
body>
html>
→ (CSS 스타일 추가:)
a:link {
color: blue;
}
a:visited {
color: red;
}
input:focus {
background: yellow;
font-weight: bold;
}
a:hover {
font-size: 30px;
}
a:active {
color: silver;
}
:checked {
font-size: 50px;
}
p::selection {
background-color: orange;
color: white;
}
input:enabled {
outline: 1px dotted black;
}
input:disabled {
background-color: green;
}
input:read-write {
outline: 1px dotted black;
}
input:read-only {
background-color: gray;
}
4.3 구조 위조 선택기
⚠️이런 종류의 선택기는 실례를 들어 설명해야 하며 편폭이 비교적 길기 때문에 후속으로 또 다른 문장을 설명해야 한다.이 편은 단지 관련 지식으로 열거할 뿐이다.(아래 E는 요소 요소)
4.3.1 제1류
1. 。
E:first-child
2. 。
E:last-child
3. n ,n : /odd/even。
E:nth-child(n)
4. ———— 。
E:only-child
4.3.2 제2류
1. 。
E:first-of-type
2. 。
E:last-of-type
3. n ,n : /odd/even。
E:nth-of-type(n)
4. ———— 。
E:only-of-type
4.3.3 제3류
1. “ ”--html 。
:root
2. 。
E:not(selector)
3. , “ ” 。
E:empty
4. target 。
E:target
후기: 드디어 이 편을 완성했습니다. 지식이 많습니다. 만약에 단순히 한 번만 보면 수확이 적습니다. 코드의 학습은 우리가 손을 써서 끊임없이 두드리고 끊임없이 시험해야 합니다.기계와 접촉하는 장점은 일반적으로 너를 속이지 않는다는 것이다. 옳으면 옳고 그르면 그르다.어쨌든 이 시대에 감사합니다!
파이팅!
전재 대상:https://juejin.im/post/5cb1cdcb6fb9a068973ecf15
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.