ホームページ > 記事 > ウェブフロントエンド > 覚えておきたいCSSセレクター30種類_html/css_WEB-ITnose
あなたは `id`、`class`、`descendant` セレクターについて読んで、それらをすべて使用しているかもしれませんが、より柔軟性の高いメソッドを選択するという間違いを犯しています。この記事で説明されているセレクターのほとんどは CSS3 標準に準拠しているため、対応するブラウザーの最新バージョンでのみ有効になることを念頭に置いてください。
1.
より高度なセレクターを確認する前に、よく知られているクリア セレクターをダウンロードすることを知っておく必要があります。アスタリスクは、ページ上のすべての要素を選択します。多くの開発者は、「マージン」と「パディング」をクリアするためにこれを使用します。もちろん練習時に使用することもできますが、本番環境で使用することはお勧めしません。ブラウザに不要なものがたくさん追加されます。
`*` は、要素のすべての子要素を選択するために使用することもできます。
デモ
互換性
Opera
2.
CSS コード
ID で要素を見つけるには、セレクターで `#` を使用します。誰もが通常この方法でそれを使用しますが、使用するときは依然として細心の注意が必要です。 自問する必要があります: この要素を見つけるには、この要素に ID を割り当てる必要がありますか?
デモ
互換性
.error {
色: 赤
}
Safari Opera
4. CSSコード
次によく使用されるのは、`descendant` セレクターです。要素の検索をより具体的にしたい場合は、これを使用できます。たとえば、すべての「a」要素をターゲットにする必要はなく、「li」タグの下にある「a」タグだけをターゲットにする必要がある場合はどうすればよいでしょうか。現時点では、「descendant」セレクターを使用する必要があります。
専門家のヒント: セレクターが `X Y Z A B.error` のように見える場合は、やり方が間違っています。本当に多くの要素を変更する必要があるかどうかを常に思い出してください。
デモ
互換性
Opera
a { 色: 赤 }
ul { マージン左: 0ページ上のすべてのタグを見つけたい場合は、`id` や 'class' を使用する代わりに、タイプ セレクターを直接使用するのが簡単です。
デモ互換性Opera
6。
Css代码
我们使用`:link`这个伪类来定位所有还没有被访问过的链接。
另外,我们也使用`:visited`来定位所有已经被访问过的链接。
DEMO
兼容性
7. X+Y
Css代码
这个叫相邻选择器。它指挥选中指定元素的直接后继元素。上面那个例子就是选中了所有`ul`标签后面的第一段,并将它们的颜色都设置为红色。
DEMO
兼容性
8. X>Y
Css代码
`X Y`和`X > Y`的差别就是后面这个指挥选择它的直接子元素。看下面的例子:
Css代码
`#container > は、`id` を 'container' として持つ `div` の下にあるすべての直接の `ul` 要素のみを選択します。最初の `li` の下に `ul` 要素は配置されません。
いくつかの理由から、子ノードを使用してセレクターを結合すると、パフォーマンスに多くの利点があります。実際、JavaScript で「css」セレクターを使用する場合は、これを強くお勧めします。
デモ
互換性
9.
ul ~ p { 色: 赤
}
Chrome
Safari
Opera
これは属性セレクターと呼ばれ、上記の例では、title 属性を持つ要素のみが選択されます。この属性を持たないアンカー タグは、このコードでは変更されません。次に、より具体的にフィルタリングしたい場合はどうすればよいかをもう一度考えてみましょう。それは…
互換性
IE7+
11
値を二重引用符で囲んでいることに注意してください。次に、JavaScript を使用する場合は二重引用符を使用します。可能であれば、標準の CSS3 セレクターを使用してください。
これは機能しますが、このリンクではなく、同様のリンクの場合は、正規表現を使用する必要があります。 デモ
IE7+
12
CSSコード
a[ href*="strongme"] {
IE7+
Firefox
Chrome
Safari
a[ href^="http"] {
背景: url(path/to/external/icon.png) 繰り返しなし:
一部のサイトでは、アンカー タグの横に外部リンク アイコンが表示されています。このようなデザインは、別の Web サイトにリダイレクトされることを明確に示します。
カラット記号を使用して簡単に行うことができます。通常、正規表現で先頭を識別するために使用されます。アンカー属性 `href` 内で `http` で始まるタグを見つけたい場合は、上記と同様のコードを使用できます。
http:// を検索しなかったことに注意してください。https:// が含まれていないため、検索する必要はありません。
それでは、画像を指すすべてのアンカー タグを見つけたい場合はどうすればよいでしょうか?次に、「&」文字を使用してみましょう。
デモ
互換性
14
CSSコード
a [href$=".jpg"] {
デモ
互換性
IE7+
15
CSSコード
a [data-filetype="image"] {
カラー: red;
CSS コード
a[href$=".jpg"]、
a[href$=".jpeg"]、
a[data-filetype="image"] {
color: red
IE7+
Firefox
}
a[data-info~="image"] {
border: 1px ソリッドブラック
这里没啥内容,就是一个了 List。
Css代码
上面的代码将设置背景色,移除浏览器默认的内边距,为每个`li`设置边框以凸显一定的深度。
DEMO
兼容性
28. X:only-child
Css代码
说实话,你会发现你几乎都不会用到这个伪类。然而,它是可用的,有会需要它的。
它允许你获取到那些只有一个子标签的父标签。就像上面那段代码,只有一个段落标签的`div`才被着色。
Css代码
My paragraph here.
Two paragraphs total.
Two paragraphs total.
上面例子中,第二个`div`不会被选中。一旦第一个`div`有了多个子段落,那这个就不再起作用了。
DEMO
兼容性
29. X:only-of-type
Css代码
结构性伪类可以用的很聪明。它会定位某标签只有一个子标签的目标。设想你想获取到只有一个子标签的`ul`标签?
使用`ul li`会选中所有`li`标签。这时候就要使用`only-of-type`了。
Css代码
DEMO
兼容性
30. X:first-of-type `first-of-type`伪类可以选择指定标签的第一个兄弟标签。
测试
Css代码
My paragraph here.
リスト項目 2 を取り出してください。すでに取り出している場合、または諦めている場合は、続けてください。
解決策 1
方法はたくさんありますが、より便利な方法をいくつか見てみましょう。 1 つ目は「first-of-type」です。
CSS コード
最初のものを見つける「ウル」タグを見つけてから、直接の子タグ `li` を見つけてから、2 番目の子ノードを見つけます。
解決策 2 もう 1 つの解決策は、近接セレクターです。
この場合、「p」の下で直接の「ul」タグを見つけてから、その最後の直接の子タグを見つけます。
解決策 3 これらのセレクターを試してみましょう。見てみましょう:
CSS コード
取得it first ページ上の最初の `ul` タグに移動し、次に最後の子タグを見つけます。
デモ
互換性
結論
ブラウザのバージョンを妥協したい場合は、 IE6 などの場合は、これらの新しいものを使用します。セレクターを使用する場合は注意が必要です。ただし、IE6 がこれらの新しいスキルの学習を妨げないようにしてください。そうなると、あなたは自分自身に対して残酷になってしまいます。 [互換性リスト](http://www.quirksmode.org/css/contents.html) を必ず確認するか、[Dean Edward の優れた IE9.js スクリプト](http://code.google.com/p / ie7-js/) を使用して、ブラウザーでこれらの機能を使用できるようにします。
2 番目に、jQuery を使用する場合は、ネイティブ CSS3 セレクターを使用するようにしてください。もしかしたら、コードの実行速度が速くなるかもしれません。これにより、セレクター エンジンはセレクター自身の代わりにブラウザーのネイティブ パーサーを使用できるようになります。