目次
はじめに
1.*
互換性
デモを見る
Firefox
Chrome
IE6+
Safari
Opera
<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>
ログイン後にコピー
" >
<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>
ログイン後にコピー
Compatibility
14.x[href$=".jpg"]
15.x[data-*="foo"]
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
概要
ホームページ ウェブフロントエンド htmlチュートリアル 覚えておくべき30のCSSセレクター_html/css_WEB-ITnose

覚えておくべき30のCSSセレクター_html/css_WEB-ITnose

Jun 24, 2016 am 11:16 AM

はじめに

今日の主要なブラウザに適した 30 個の CSS セレクターがあります。

1.*

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

*セレクターは、それぞれの単一要素を選択します。多くのプログラマーは、上記の CSS を使用して、すべての要素のマージンとパディングをクリアします。これは機能しますが、ブラウザに大きな負荷がかかるため、これを行わないことをお勧めします。

*セレクターは子セレクターでも使用できます。

うわー

これにより、#container のすべての子に境界線が付きますが、必要がない場合は、スター セレクターを使用しないでください。

デモを見る

互換性

    IE6+
  • Firefox
  • Chrome
  • Safari
  • Opera
  • IDセレクターの優先度 レベルは非常に高い, したがって、使用する前に、次のことを自問してください。この要素を見つけるためだけに ID を追加しただけですか?

デモを見る

互換性

IE6+

Firefox

    Chrome
  • Safari
  • Opera
  • 3..x
  • #container * {  border: 1px solid black;}
    ログイン後にコピー
  • クラスセレクターとID セレクターはまず、優先度はそれほど高くありません。 ID セレクターは 1 つだけを選択できますが、クラス セレクターはグループをフィルターで除外できます。
デモを見る

互換性

IE6+

Firefox

Chrome
  • Safari
  • Opera
  • 4.x y
  • #container {   width: 960px;   margin: auto;}
    ログイン後にコピー
  • すべてを選択しない場合は子孫を選択または下山時に非常に役立ちますが、 catch 注意してください: セレクターが x y z a b.error の場合、その使用法は間違っています。各レイヤーを適用する必要があるかどうかを自問する必要があります。
  • デモを見る

互換性

IE6+

Firefox

Chrome

    Safari
  • Opera
  • 5.x
  • 同じ種類の要素を選択したい場合、その場合は、id を使用しないでください。クラスの場合は、要素セレクターを使用するだけです。
  • デモを見る
  • 互換性

IE6+

Firefox

Chrome

Safari

    Opera
  • 6.x:visted と x:link
  • .error {  color: red;}
    ログイン後にコピー
  • pseudo-class:link かどうかをフィルタリングします。タグはまだクリックされていません。クリックされていないものをフィルタするには use:visited を使用します。
  • デモを見る
  • 互換性
IE7+

Firefox

Chrome

Safari

Opera
  • 7.x + y
  • li a {  text-decoration: none;}
    ログイン後にコピー
  • 隣接するセレクターが選択されます上記のように、最初の隣接要素。この例では、 ul の後の最初の段落のフォントが赤に変わります (ul と p の間に他の要素があってはなりません)。
  • デモを見る
  • 互換性
  • IE7+

Firefox

Chrome

Safari

Opera

  • 8.x > y
  • a { color: red; }ul { margin-left: 0; }
    ログイン後にコピー
  • 子孫セレクターですが、xy と同じ子孫を持ちます。セレクターは、直接の子孫のみを選択できるという点で異なります。例:
  • a:link { color: red; }a:visted { color: purple; }
    ログイン後にコピー
  • この例では、#cotainer > ul は最初の ul のみを選択し、ul に li を含む ul は検索しません。
  • デモを見る
  • 互換性
IE7+

Firefox

Chrome

Safari

Opera

    9.x ~ y
  • ul + p {   color: red;}
    ログイン後にコピー
  • この種の兄弟の選択は似ていますx + y になりますが、違いは後者は最初の p のみをフィルタリングできますが、これは ul の下のすべての直接 p タグを満たすことができます。
  • デモを見る
  • 互換性
  • IE7+
  • Firefox

Chrome

Safari

Opera

10.x[タイトル]
    div#container > ul {  border: 1px solid black;}
    ログイン後にコピー
  • 属性選択デバイス。これにより、title 属性を持つすべてのタグが選択されます。
  • デモを見る
  • 互換性
  • IE7+
  • Firefox
Chrome

Safari

Opera

11.x[href="foo"]

これセレクターはリンクを href="http として選択できます。 「://net.tutsplus.com」というタグですが、ここのリンクが変更されたらどうなるでしょうか?これは少し厳密ですが、正規表現を使用して適切に一致させることができます。
  • デモを見る
  • 互換性
  • IE7+
  • Firefox
  • Chrome

Safari

Opera

12.x[href*="nettuts"]

<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>
ログイン後にコピー

'*' は、nuttuts 文字を含む href と一致します。 、より厳密にしたい場合は、^ と $ を使用して開始と終了を示すこともできます。
  • デモを見る
  • 互換性
  • IE7+
  • Firefox
  • Chrome
Safari

Opera

13.x[href^="http"]

これ有効な href を使用して をフィルタリングする方法は、 http:// と https:// を一致させます。

デモを見る

Compatibility

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

14.x[href$=".jpg"]

a[href$=".jpg"] {   color: red;}
ログイン後にコピー

这将会选择链接为jpg格式的图片链接,可是如果图片类型为png或gif等怎么办?

view demo

Compatibility

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

15.x[data-*="foo"]

a[data-filetype="image"] {   color: red;}
ログイン後にコピー
ログイン後にコピー

按照规则14.我们可能得:

a[href$=".jpg"],a[href$=".jpeg"],a[href$=".png"],a[href$=".gif"] {   color: red;}
ログイン後にコピー

可这也太。。。我们可以加一个属性用以标示。

<a href="path/to/image.jpg" data-filetype="image"> Image Link </a>
ログイン後にコピー
a[data-filetype="image"] {   color: red;}
ログイン後にコピー
ログイン後にコピー

view demo

Compatibility

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

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>
ログイン後にコピー

view demo

Compatibility

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

17.x:checked

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

这个常常对checkbox非常有用。

view demo

Compatibility

  • IE9+
  • Firefox
  • Chrome
  • Safari
  • Opera

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%;}
ログイン後にコピー

没错,这就是默认标准clearfix的实现原理。

Compatibility

  • IE8+
  • Firefox
  • Chrome
  • Safari
  • Opera

19.x:hover

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

但是得注意,:hover在早期IE中并不适用。

Compatibility

  • IE6+(In IE6, :hover must be applied to an anchor element)
  • Firefox
  • Chrome
  • Safari
  • Opera

20.x:not(selector)

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

反选选择器。

view demo

Compatibility

  • IE9+
  • Firefox
  • Chrome
  • Safari
  • Opera

21.x::pseudoElement

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

伪元素选择器,注意尽量还是按标准来,多使用::而不是:。

view demo

Compatibility

  • IE6+
  • Firefox
  • Chrome
  • Safari
  • Opera

22.x:nth-child(n)

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

选择一组中特定的孩子。n表示第几个,也可以是表达式,如2n+1,2n.

view demo

Compatibility

  • IE9+
  • Firefox 3.5+
  • Chrome
  • Safari
  • Opera

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

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

如果li有400个,而你需要target到第397个,那用这个咱合适不过了。

view demo

Compatibility

  • IE9+
  • Firefox 3.5+
  • Chrome
  • Safari
  • Opera

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

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

如果ul没有id,而你又要找第三个ul,那个这种方式是不错。

view demo

Compatibility

  • IE9+
  • Firefox 3.5+
  • Chrome
  • Safari
  • Opera

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

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

与ul:nth-of-type刚好相反。

Compatibility

  • IE9+
  • Firefox 3.5+
  • Chrome
  • Safari
  • Opera

26.x:first-child

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

view demo

Compatibility

  • IE7+
  • Firefox
  • Chrome
  • Safari
  • Opera

27.x:last-child

Example
<ul>   <li> List Item </li>   <li> List Item </li>   <li> List Item </li></ul>
ログイン後にコピー
ul { width: 200px; background: #292929; color: white; list-style: none; padding-left: 0;}li { padding: 10px; border-bottom: 1px solid black; border-top: 1px solid #3c3c3c;}
ログイン後にコピー

view demo

但是我不想要第一个的上边框和最后一个的下边框,可以这么做:

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

view demo

Compatibility

  • IE9+
  • Firefox
  • Chrome
  • Safari
  • Opera

28.X:only-child

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

这将匹配div里只有一个p的元素。如:

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

view demo

Compatibility

  • IE9+
  • Firefox
  • Chrome
  • Safari
  • Opera

29.X:only-of-type

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

这将匹配元素内只有一个li的元素,有时这个做法很简便。比如要寻找只有一个列表的ul,可以:

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

view demo

Compatibility

  • IE9+
  • Firefox 3.5+
  • Chrome
  • Safari
  • Opera

30.x:first-of-type

Example
<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>
ログイン後にコピー

如何寻找上面的 "List Item 2"呢?

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

view demo

互換性

  • IE9+
  • Firefox 3.5+
  • Chrome
  • Safari
  • Opera

概要

IE6 で上記のセレクターを使用する場合は特に注意してください。ただし、この記事を読んでも影響を受けないように注意してください。 。ブラウザー互換性マトリックスを参照することも、Dean Edward の優れた IE9.js スクリプトを使用して、古いブラウザーでこれらのセレクターをサポートすることもできます。

さらに、jQuery などの Javascript ライブラリを使用している場合は、これらのネイティブ CSS3 セレクターを使用するようにしてください。これは、ブラウザー セレクター エンジンがブラウザーのネイティブ メソッドに従って解析し、コードがより効率的になるためです。

注: この記事は翻訳です、私のブログをクリックしてください 原文をクリックしてください

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

&lt; Progress&gt;の目的は何ですか 要素? &lt; Progress&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:34 PM

この記事では、HTML&lt; Progress&gt;について説明します。要素、その目的、スタイリング、および&lt; meter&gt;との違い要素。主な焦点は、&lt; Progress&gt;を使用することです。タスクの完了と&lt; Meter&gt; statiの場合

&lt; datalist&gt;の目的は何ですか 要素? &lt; datalist&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:33 PM

この記事では、HTML&lt; Datalist&GT;について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? HTML5のクロスブラウザー互換性のベストプラクティスは何ですか? Mar 17, 2025 pm 12:20 PM

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

&lt; meter&gt;の目的は何ですか 要素? &lt; meter&gt;の目的は何ですか 要素? Mar 21, 2025 pm 12:35 PM

この記事では、html&lt; meter&gt;について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化&lt; Meter&gt; &lt; Progress&gt;およびex

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか? Mar 17, 2025 pm 12:27 PM

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? HTML5&lt; time&gt;を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素? Mar 12, 2025 pm 04:05 PM

この記事では、html5&lt; time&gt;について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか? Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

&lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? &lt; iframe&gt;の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか? Mar 20, 2025 pm 06:05 PM

この記事では、&lt; iframe&gt;外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

See all articles