CSS3 には、 多くの強力なセレクターが追加されました
これにより、記述量が減ります jsイベントスクリプト
まず各バージョンのセレクターを見てみましょう
注:
ele は要素 element を表します
attr は要素を表します属性属性、valは値を表します属性値
:xxxはすべて擬似クラスセレクターに属します、::xxxはすべて擬似要素セレクターに属します
セレクターを可能な限り名前で細分化しました
Selector | Type | Example | Description |
---|---|---|---|
.class | Class selector | .demo | デモを含むすべてのクラスを選択 | の要素
#id | IDセレクター | #unique | IDが一意であるすべての要素を選択 |
ele | 要素セレクター | p | すべてのp要素を選択 |
ele,ele | 並列セレクター | h1、h2 | すべての h1 要素と h2 要素を選択します |
ele ele | 子孫セレクター | p p | p 要素内のすべての p 要素を選択します |
:link | 疑似クラスセレクター | a:link | 未訪問のリンクを選択 |
:visited | 疑似クラスセレクター | a:visited | 訪問済みのリンクを選択 |
:active | 疑似クラスセレクター | a :active | アクティブなリンクを選択 |
:hover | 疑似クラスセレクター | a:hover | マウスホバーリンクを選択 |
: :first-letter | 最初の文字セレクター | p:first-letter | 各 p 要素の最初の文字を選択します |
::first-line | 最初の行セレクター | p :first-line | 各 p 要素の最初の行を選択します |
CSS1 バージョンには、最も一般的に使用される古典的なセレクターが含まれています
::first-letter と ::first-line はほとんど使用されないようです
CSS2 では、それらは段落、ハイパーリンクなどのブロックレベルの要素にのみ適用できます
などのインライン要素は使用できません
CSS2.1では、:first-letterはすべての要素に適用できます
しかし、使用できる属性はまだ限られています
a:link {color: blue;} /*静态伪类:未访问链接时蓝色*/a:visited {color: purple;} /*静态伪类:访问过的链接变为紫色*/a:hover {color: red;} /*动态伪类:鼠标悬浮在链接上变为红色*/a:active {color: orange;} /*动态伪类:鼠标按下链接时变为橘黄色*/
セレクター | タイプ | 例 | 説明 |
---|---|---|---|
* | ワイルドカードセレクター | * | すべての要素を選択 |
ele&g t; ele | directサブ要素選択セレクター | p>p | は、p要素を親とするp要素を選択します |
ele+ele | 隣接する兄弟要素セレクター | p+p | はpを選択しますp 要素の直後 要素 |
[attr] | Attribute selector | [target] | 対象の属性を持つ要素を選択 |
[attr=val] | Attribute selector | [target= _空白] | ターゲット属性があり、属性値が _blank である要素を選択します |
[attr~=val] | 属性セレクター | [title~=demo] | title 属性があり、単語「」を含む要素を選択します要素 |
[attr|=lang | uage]属性セレクター | [lang|=en] | lang属性の開始値がENである要素を選択 |
: focus | フォーカス セレクター | input: focus | はフォーカスのある入力要素を選択します |
: first-child | first-child セレクター | p: first-child | は親となる p 要素を選択します最初の子要素 |
::before | 疑似要素セレクター | p::before | p 要素の前にコンテンツを挿入します |
::after | 疑似要素セレクター | p ::after | p 要素の後にコンテンツを挿入します |
:lang | (言語)疑似クラスセレクター | p:lang(it) | lang 属性を選択するための開始値は p 要素ですそれの |
这里需要注意的有p+p相邻兄弟元素选择器
选择的是紧挨着p元素后的一个p元素,
发现一些网站和书上写的都是所有p元素,但我验证了一下发现好像不对
title~demo是说title属性包含demo这个词,属性值之间用空格分隔的单词
像这样<img title="demo demo1 demo2"></img>
是可以选中的
但是<img title="demo1 demo2"></img>
就不能够选中
语言的选择器不常用过就不说了
::before和::after伪元素选择器要想添加内容,需要使用content属性
p::before { content: "123";}
我们用after的时候很多时候是为了清除浮动
p::after { content: ""; display: block; clear: both;}
至于为什么就不是今天讨论的范畴了( ̄_, ̄ )
伪元素选择器写成伪类单冒号的形式没什么问题
但是伪类选择器使用双冒号就不能选择元素了
这里说一下伪类和伪元素的区别
伪类我的理解是元素达到一种状态
状态存在,改变样式;状态消失,样式消失
伪元素应该说是操作元素的特定内容
实在分不清都写成单冒号的形式就好了
敲这么多终于到关键地方了
CSS3增加了很多强大的选择器,以伪劣选择器为主
CSS1和CSS2版本的选择器加起来都没它多
我们一起来看一下
セレクター | カテゴリ | 例 | 説明 |
---|---|---|---|
ele~ele | 兄弟要素セレクター | p~p | p要素の後のすべてのp要素を選択します |
[ attr^=val] | 属性セレクター | a[src^=https] | src属性値がhttpsで始まる要素を選択 |
[attr$=val] | 属性セレクター | a[ src$= .pdf] | src 属性値が .pdf で終わる要素を選択 |
[attr*=val] | 属性セレクター | a[src*=demo] | Child を含める src 属性の値を選択デモの 文字列 要素 |
: first-of-type | 疑似クラスセレクター | p: first-of-type | は、親 p 要素の最初である各 p 要素を選択します |
:last-of-type | 疑似クラスセレクター | p:last-of-type | は、各 p 要素がその親である最後の p 要素を選択します |
: Only-of-type | 疑似クラスセレクター | p:only-of-type | 各 p 要素が親である唯一の p 要素を選択します |
:only-child | only 子要素セレクター | p:only-child | その親の唯一の子要素である各 p 要素を選択します |
:nth-child(n) | 擬似クラスセレクター | p:nth-child(2) | すべての p 要素を選択します親の 2 番目の子要素 |
:nth-last-child(n) | 疑似クラスセレクター | p:nth-last-child(2) | Select each A p 要素は最後から 2 番目の子要素です親の |
:nth-of-type(n) | 擬似クラスセレクター | p:nth-of-type(2) | がそれぞれを選択します p 要素は親の 2 番目の p 要素です |
:nth-last-of-type(n) | pseudo-class selector | p:nth-last-of-type(2) | select 各 p 要素は、その親 |
:last-child | 疑似クラスセレクター | p:last-child | 親要素と子要素の最後にある各 p 要素を選択します |
:root | root 要素セレクター | :root | ドキュメントのルート要素を選択します |
:empty | emptyタグセレクター | p:empty | 要素(テキストノードを含む)の子p要素を選択しません |
:target | ターゲット要素セレクター | new:target | 現在アクティブな#new要素(クリックしたアンカー名を含むURL)を選択します |
:無効 | 疑似クラスセレクター | input:checked | 選択された入力要素を選択します |
:not(selector) | Negative selector | :not(p) | |
::selection | ハイライトテキストセレクター | ::selection | |
:out-of-range | 擬似クラス選択セレクター | : out-of-range | |
: in-range | 擬似クラスセレクター | ||
は指定された範囲内の値を選択します | 内の入力要素:read-write | 読み取り/書き込み要素セレクター | |
は読み取り専用および書き込み可能な要素を選択します | :read-only | 読み取り専用要素セレクター | |
読み取り専用を選択しますreadonly 属性が設定された要素 | : オプション | :required | |
:required | required 属性が設定された要素を選択:valid | ||
:valid | select 入力値は正当です 要素: 無効な | ||
: 無効な | 不正な入力値を持つ要素を選択します