目次
1. *
2. #X
3. 独自の要素にスタイルを設定します。
子孫セレクター、子孫内のすべての Y 要素を選択します
タグセレクター(タイプセレクター)、HTMLタグ(タグ)を選択するために使用されます。
IE7+対応
8. レイヤー X 内の Y 要素。たとえば、次の HTML 構造では、#container > ul は、li 内にネストされている ul 要素を除き、 div#container 内に直接表示される ul 要素を選択します:
これは近接セレクターでもあり、前の項目 7 X + Y は X の直後に現れる最初の要素を選択しますが、X ~ Y は X 要素の後に現れるすべての兄弟要素を選択します。上記のコードは、ul + p のように表示される最初の p 要素を選択するのではなく、ul 要素の後に表示されるすべての兄弟 p 要素を選択します。
IE7+と互換性あり
13. スタイルを設定します。
15. メソッド:
と互換性がありますIE7+
 16. X[foo~="bar"]
 17. X:checked
 18. X:after
 19. X:hover
 20. X:not(selector)
 21. X::pseudoElement
  选取段落的第一个字母
  选取段落的第一行
 22. X:nth-child(n)
 23. X:nth-last-child(n)
 24. X:nth-of-type(n)
 25. X:nth-last-of-type(n)
 26. X:first-child
 27. X:last-child
 28. X:only-child
 29. X:only-of-type
 30. X:first-of-type
  方法一
  方法二
  方法三
 31. 伪类选择器叠用
ホームページ ウェブフロントエンド htmlチュートリアル あなたは知っていますか? 31 CSS Selectors の応用_html/css_WEB-ITnose

あなたは知っていますか? 31 CSS Selectors の応用_html/css_WEB-ITnose

Jun 24, 2016 pm 12:06 PM

セレクターは CSS において非常に重要な概念であり、HTML 言語のすべてのタグはさまざまな CSS セレクターを通じて制御されます。ユーザーは、セレクターを通じてさまざまな HTML タグを制御し、さまざまなスタイル宣言を割り当てるだけで、さまざまな効果を実現できます。

1. *

* { margin: 0; padding: 0; }
ログイン後にコピー

スターセレクターは、ページ上のすべての要素を選択するために使用され、すべての要素のマージンとパディングをすばやくクリアするために使用できますが、テスト中にのみ使用し、使用しないことをお勧めします。 CSS ファイルで正式に使用する必要があります。そうしないと、ブラウザの負担が大幅に増加します。さらに、アスタリスク セレクターは、親レイヤーのすべての子要素のスタイルを設定することもできます。繰り返しますが、このメソッドはできるだけ使用しません:

#container * { border: 1px solid black; }
ログイン後にコピー

IE6+ と互換性があります

2. #X

#container { width: 960px; margin: auto; }
ログイン後にコピー

最も一般的な id セレクター。セレクターの用途の 1 つであり、再利用することはできません。

IE6+と互換性があります

3. 独自の要素にスタイルを設定します。

IE6+と互換性があります

4. X Y

.error { color: red; }
ログイン後にコピー

子孫セレクター、子孫内のすべての Y 要素を選択します

IE6+と互換性あり

5. X

li a { text-decoration: none; }
ログイン後にコピー

タグセレクター(タイプセレクター)、HTMLタグ(タグ)を選択するために使用されます。

IE6+対応

6. X:visited とリンク先。

IE6+対応

7.要素、つまりp要素です。

互換性 IE6+

8. レイヤー X 内の Y 要素。たとえば、次の HTML 構造では、#container > ul は、li 内にネストされている ul 要素を除き、 div#container 内に直接表示される ul 要素を選択します:

a { color: red; } ul { margin-left: 0; }
ログイン後にコピー

IE6+ と互換性があります

9. X ~ Y

a:link { color: red; } a:visted { color: purple; }
ログイン後にコピー

これは近接セレクターでもあり、前の項目 7 X + Y は X の直後に現れる最初の要素を選択しますが、X ~ Y は X 要素の後に現れるすべての兄弟要素を選択します。上記のコードは、ul + p のように表示される最初の p 要素を選択するのではなく、ul 要素の後に表示されるすべての兄弟 p 要素を選択します。

IE7+対応

10. title="タイトルコンテンツ"]{color:green} でさらに選択範囲が狭まります。

IE7+と互換性あり

11. 影響を受けません。

ただ、この方法は非常に厳密であり、1 文字ずつ変えることはできません。より柔軟な使用法を以下で 1 つずつ紹介します。

IE7+対応

12. .tutsplus.com、またはtutsplus.comとその他のリンク。

IE7+対応

13. スタイルを設定します。

IE7+対応

14. リンク。

IE7+と互換性あり

15. メソッド:

ul + p { color: red; }
ログイン後にコピー

または、まず data- 属性 (注: HTML5 カスタム データ属性) を画像リンクに追加します

div#container > ul { border: 1px solid black; }
ログイン後にコピー

次に、属性セレクターでそれを選択します:

<div id="container"> <ul> <li> List Item <ul> <li> Child </li> </ul> </li> <li> List Item </li> <li> List Item </li> <li> List Item </li> </ul> </div>
ログイン後にコピー

と互換性がありますIE7+

 16. X[foo~="bar"]

a[data-info~="external"] { color: red; } a[data-info~="image"] { border: 1px solid black; }
ログイン後にコピー

  如果属性值中有用空格分隔的一连串属性值,~ 可以选取其中一个属性值,比如:

<a href="path/to/image.jpg" data-info="external image"> Click Me, Fool </a>
ログイン後にコピー

  借助 ~ 选取包含 external 或者 image 属性值的元素:

/* Target data-info attr that contains the value "external" */ a[data-info~="external"] { color: red; } /* And which contain the value "image" */ a[data-info~="image"] { border: 1px solid black; }
ログイン後にコピー

  兼容 IE7+

 17. X:checked

input[type=radio]:checked { border: 1px solid black; }
ログイン後にコピー

  :checked 伪类选择器用于选取所有标记为 checked 的元素,比如单选框 (radio button) 或复选框 (checkbox)。

  兼容 IE9+

 18. X:after

  :before 与 :after 是两个令人兴奋的伪类选择器,几乎每天都有人发明出一些新用法,这里简单介绍一下如何用它清除浮动:

.clearfix:after { content: ""; display: block; clear: both; visibility: hidden; font-size: 0; height: 0; } .clearfix { *display: inline-block; _height: 1%; }
ログイン後にコピー

  这种方式通过 :after 在元素后面添加一块区域,然后将其隐藏,可以弥补 overflow: hidden; 的缺陷。

根据 CSS3 选择器标准,理论上伪类选择器应该使用双冒号,但实际上浏览器也支持单冒号的形式,所以可以继续使用单冒号。

  兼容 IE8+

 19. X:hover

div:hover { background: #e3e3e3; }
ログイン後にコピー

  最常用的伪类选择器,不多解释了,只是需要注意 IE6 不支持将 :hover 作用于除 a 链接外的其他元素。

a:hover { border-bottom: 1px solid black; }
ログイン後にコピー

  另外提醒一点:border-bottom: 1px solid black; 的效果要比 text-decoration: underline; 好看一些。

  兼容 IE6+ (在 IE6 中 :hover 只能作用于链接)

 20. X:not(selector)

div:not(#container) { color: blue; }
ログイン後にコピー

  :not 伪类选择器有时会起到很重要的作用,假设现在要选取除 #contaienr 外的所有 div 元素,就可以用上面的代码实现。

  兼容 IE9+

 21. X::pseudoElement

p::first-line { font-weight: bold; font-size: 1.2em; }
ログイン後にコピー
ログイン後にコピー

  通过伪元素(使用双冒号 ::)可以给元素的某一部分设定样式,比如第一行、或者第一个字母。需要注意的是,这只对块级元素 (block level elements) 生效。

提示:伪元素 (pseudo element) 使用双冒号 ::

  选取段落的第一个字母

p::first-letter { float: left; font-size: 2em; font-weight: bold; font-family: cursive; padding-right: 2px; }
ログイン後にコピー

  这段代码将选取页面中所有 p 元素,然后再选取其中的第一个字母。

  选取段落的第一行

p::first-line { font-weight: bold; font-size: 1.2em; }
ログイン後にコピー
ログイン後にコピー

  与上面的例子类似,通过 ::first-line 选取页面的第一行。

为了兼容 CSS1 与 CSS2 中的伪元素(比如 :first-line, :first-letter, :before 以及 :after),浏览器接受单冒号与双冒号两种格式,但对于 CSS3 中最新引入的伪元素,必须使用双冒号。

  兼容 IE6+

 22. X:nth-child(n)

li:nth-child(3) { color: red; }
ログイン後にコピー

  :nth-child(n) 用于选取 stack 中的某一个元素,只接受整数作参数(参数从 1 开始计数),如果你想选取第二个 li 元素,只需这样写 li:nth-child(2)。

  也可以设定可变的参数,比如 li:nth-child(4n) 将选取第 4, 8 , 12… 个元素(4*n, n=1, n++)。

  兼容 IE9+

 23. X:nth-last-child(n)

li:nth-last-child(2) { color: red; }
ログイン後にコピー

  除了正序(从上往下)选择,也可以使用 :nth-last-child(n) 倒序(从下往上)选择第几个元素,其他用法与第 22 条完全一样。

  兼容 IE9+

 24. X:nth-of-type(n)

ul:nth-of-type(3) { border: 1px solid black; }
ログイン後にコピー

  :nth-of-type(n) 的作用不是选取子元素 (child element),而是选取同类元素 (type of element)。想象一下 HTML 文件中包含 5 个 ul 元素,现在要选取第三个,只需使用上面的代码,而不用再单独这个 ul 添加 id。

关于 :nth-child 与 :nth-of-type 的区别,具体请查看 CSS-Tricks 网站的解释,简单来说,如果父层内只包含一种元素(比如都是 p 元素)那两种用法是等效的,如果父层包含多种元素(比如 p 元素与同级的其他元素),需要选取第几个 p 元素时应该用 :nth-of-type。

  兼容 IE9+

 25. X:nth-last-of-type(n)

ul:nth-last-of-type(3) { border: 1px solid black; }
ログイン後にコピー

  与第 24 条用法相同,倒序选取同类元素。

  兼容 IE9+

 26. X:first-child

ul li:first-child { border-top: none; }
ログイン後にコピー

  选取父层内的第一个子元素。

  兼容 IE7+

 27. X:last-child

ul > li:last-child { color: green; }
ログイン後にコピー

  与第 26 条用法相同,区别在于 :last-child 选取父层元素内的最后一个子元素。

  :first-child 与 :last-child 通常用来清除边框 (border),比如

    内每个
  • 都使用了 border-top 与 border-bottom 边框,结果是,第一个元素的上方与最后一个元素的下方会是单边框效果。这种情况可以用 :first-child 与 :last-child 清除上下的边框,而不用给第一个元素添加id="first" 或者给最后一个元素添加 id="last"。

      兼容 IE9+

     28. X:only-child

    div p:only-child { color: red; }
    ログイン後にコピー

      这个伪类选择器不常用,它可以选取包含唯一指定子元素的父层。比如上面的代码中将选取下面第一个 div 元素,而不是第二个 div 中的 p 元素。

    <div><p> My paragraph here. </p></div> <div> <p> Two paragraphs total. </p> <p> Two paragraphs total. </p> </div>
    ログイン後にコピー

      兼容 IE9+

     29. X:only-of-type

    li:only-of-type { font-weight: bold; }
    ログイン後にコピー

      这个选择器会选取某个元素,并且这个元素在其父层内没有其他同级同类元素(不一定是唯一元素)。比如,要选取所有只包含一个 li 元素的 ul 元素该怎么做呢?如果使用 ul li 将选取所有 li 元素,应该使用 only-of-type。

      兼容 IE9+

     30. X:first-of-type

      first-of-type 伪类可以选取某种元素的第一个同类元素。

      为了更好地理解它的用法,现在思考一下如何在下面的 HTML 结构中选取 List Item 2 ?

    <div> <p> My paragraph here. </p> <ul> <li> List Item 1 </li> <li> List Item 2 </li> </ul> <ul> <li> List Item 3 </li> <li> List Item 4 </li> </ul> </div>
    ログイン後にコピー

      方法一

    ul:first-of-type > li:nth-child(2) { font-weight: bold; }
    ログイン後にコピー

      这段代码的意思是:首先选取第一个 ul 元素;然后选取其中的所有直接子元素,也就是 li;最后选取第二个子元素。

      方法二

    p + ul li:last-child { font-weight: bold; }
    ログイン後にコピー

      找到 p 元素后第一个出现的 ul 元素,然后选取其中的最后一个子元素。

      方法三

    ul:first-of-type li:nth-last-child(1) { font-weight: bold; }
    ログイン後にコピー

      找到第一个 ul 元素,然后从上往下选取第一个子元素。

      兼容 IE9+

     31. 伪类选择器叠用

      有些伪类选择器或者伪元素是可以叠用的,例如:

    #post p:nth-of-type(2):first-letter { float: left; margin: 0 5px 0 1em; width: 1em; height: 1em; font-size: 2em; }
    ログイン後にコピー

     

      本文链接:

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホット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衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

    HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

    HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

    HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

    HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

    Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

    HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

    webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

    Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

    GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

    WebアノテーションにY軸位置の適応レイアウトを実装する方法は? WebアノテーションにY軸位置の適応レイアウトを実装する方法は? Apr 04, 2025 pm 11:30 PM

    Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

    CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? Apr 05, 2025 am 06:15 AM

    画像をクリックした後、散乱と周囲の画像を拡大する効果を実現するには、多くのWebデザインがインタラクティブな効果を実現する必要があります。特定の画像をクリックして周囲を作成してください...

    HTML、CSS、およびJavaScript:Web開発者に不可欠なツール HTML、CSS、およびJavaScript:Web開発者に不可欠なツール Apr 09, 2025 am 12:12 AM

    HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

    See all articles