ホームページ  >  記事  >  ウェブフロントエンド  >  意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

青灯夜游
青灯夜游転載
2021-03-03 10:19:251703ブラウズ

この記事では、レイアウト効率をすぐに向上させるのに役立つ 16 個の CSS 疑似クラスを紹介します。一定の参考値があるので、困っている友達が参考になれば幸いです。

意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

css 疑似クラスは、特定のセレクターに特殊効果を追加するために使用され、動的であり、現在の要素の状態または特性を参照します。要素が特定の状態に達した場合にのみ、疑似クラス スタイルを取得できます。状態が変化すると、このスタイルは失われます。

[推奨チュートリアル: CSS ビデオ チュートリアル ]

この記事では、UI をある程度構築するときに、よりシンプルな CSS を使用し、JS を減らすことをお勧めします。 CSS が提供するすべてのものに慣れることがこれを達成する 1 つの方法であり、もう 1 つはベスト プラクティスを実装し、可能な限り多くのコードを再利用することです。

次に、あまり馴染みのない疑似クラスとその使用例をいくつか紹介します。

::first-line | テキストの最初の行を選択

::first-line 擬似要素is in ブロックレベル要素の最初の行にスタイルを適用します。最初の行の長さは、要素の幅、ドキュメントの幅、テキストのテキスト サイズなど、多くの要因によって決まります。

::first-line 疑似要素はブロック コンテナー内にのみ存在できるため、::first-line 疑似要素は 1 つの display# にのみ存在できます## 値は、blockinline-blocktable-cell、または table-caption で役立ちます。他のタイプでは、::first-line は効果がありません。

使用法は次のとおりです:

p:first-line {
  color: lightcoral;
}

::first-letter | この行の最初の文字を選択してください

CSS 疑似要素

: :first -letter は、ブロックレベル要素の最初の行の最初の文字を選択します。使用法は次のとおりです:

<style>
    p::first-letter{
      color: red;
      font-size: 2em;
    }
</style>

<p>前端小智,不断努,终身学习者!</p>

意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

::selection| ユーザーが強調表示した部分

::selection 疑似要素は、ユーザーによって強調表示されたドキュメントの部分 (マウスまたはその他の選択デバイスを使用して選択された部分など) に適用されます。

div::selection {
      color: #409EFF;
}

意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

:root | ルート要素

:root 疑似クラス マッチングドキュメントツリーのルート要素。 HTML の場合、:root 要素を表し、優先順位が高いことを除けば html セレクターと同じです。

:root は、グローバル CSS 変数を宣言するときに役立ちます:

:root {
  --main-color: hotpink;
  --pane-padding: 5px 42px;
}

:empty | 子が空の場合のみ動作しますか

#:empty 擬似クラスは、子要素を持たない要素を表します。子要素は要素ノードまたはテキスト (スペースを含む) のみであり、コメントや処理命令は影響しません。

div:empty {
  border: 2px solid orange;
  margin-bottom: 10px;
}

<div></div>
<div></div>
<div>
</div>

意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

最初と 2 番目の

div のみが実際に空であるため効果があり、3 番目の div は効果がありません。改行が入っています。

:only-child | 1 つの子要素のみが有効です

:only-child は兄弟要素と一致しません同等のセレクターは、:first-child:last-child または :nth-child(1):nth-last-child(1) のように記述することもできます。もちろん前者の方が重量は軽くなります。

p:only-child{
  background: #409EFF;
}

<div>
  <p>第一个没有任何兄弟元素的元素</p>
</div>
<div>
  <p>第二个</p>
  <p>第二个</p>
</div>

意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

:first-of-type | 指定されたタイプの最初の子要素を選択します

:first-of-type は、兄弟要素のグループ内のその型の最初の要素を表します。

.innerDiv p:first-of-type {
  color: orangered;
}

上記は、

.innerDiv の最初の要素の色を p にオレンジに設定することを意味します。

<div class="innerDiv">
    <div>Div1</div>
    <p>These are the necessary steps</p>
    <p>hiya</p>
    
    <p>
        Do <em>not</em> push the brake at the same time as the accelerator.
    </p>
    <div>Div2</div>
</div>

意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

:last-of-type | 指定されたタイプの最後の子要素を選択します

:last-of-type CSS 疑似クラスは、(親要素の) 子要素のリスト内の特定の型の最後の要素を表します。コードが Parent tagName:last-of-type のような場合、スコープには、親要素のすべての子要素のうち最後に選択された要素、子要素の最後の子要素などが含まれます。

.innerDiv p:last-of-type {
    color: orangered;
}

上記は、

.innerDiv の最後の要素の色を p にオレンジに設定することを意味します。

意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

<strong>:nth-of-type()</strong> | 选择指定类型的子元素

:nth-of-type() 这个 CSS 伪类是针对具有一组兄弟节点的标签, 用 n 来筛选出在一组兄弟节点的位置。

.innerDiv p:nth-of-type(1) {
    color: orangered;
}

<div class="innerDiv">
  <div>Div1</div>
  <p>These are the necessary steps</p>
  <p>hiya</p>
  
  <p>
      Do <em>not</em> push the brake at the same time as the accelerator.
  </p>
  <div>Div2</div>
</div>

意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

:nth-last-of-type() | 在列表末尾选择类型的子元素

:nth-last-of-type(an+b) 这个 CSS 伪类 匹配那些在它之后有 an+b-1 个相同类型兄弟节点的元素,其中 n 为正值或零值。它基本上和 :nth-of-type 一样,只是它从结尾处反序计数,而不是从开头处。

.innerDiv p:nth-last-of-type(1) {
    color: orangered;
}

这会选择innerDiv元素中包含的类型为p元素的列表中的最后一个子元素。

<div class="innerDiv">
    <p>These are the necessary steps</p>
    <p>hiya</p>
    <div>Div1</div>
    <p>
        Do the same.
    </p>
    <div>Div2</div>
</div>

意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

:link | 选择一个未访问的超链接

:link伪类选择器是用来选中元素当中的链接。它将会选中所有尚未访问的链接,包括那些已经给定了其他伪类选择器的链接(例如:hover选择器,:active选择器,:visited选择器)。

为了可以正确地渲染链接元素的样式,:link伪类选择器应当放在其他伪类选择器的前面,并且遵循LVHA的先后顺序,即::link:visited:hover:active:focus伪类选择器常伴随在:hover伪类选择器左右,需要根据你想要实现的效果确定它们的顺序。

a:link {
    color: orangered;
}
<a href="/login">Login<a>

意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

:checked | 选择一个选中的复选框

:checked CSS 伪类选择器表示任何处于选中状态的radio(<input type="radio">), checkbox (<input type="checkbox">) 或("select") 元素中的option HTML元素("option")。

input:checked {
  box-shadow: 0 0 0 3px hotpink;
}

<input type="checkbox" />

意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

:valid | 选择一个有效的元素

:valid CSS 伪类表示内容验证正确的<input> 或其他 <form></form> 元素。这能简单地将校验字段展示为一种能让用户辨别出其输入数据的正确性的样式。

input:valid {
  box-shadow: 0 0 0 3px hotpink;
}

1意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

:invalid | 选择一个无效的元素

:invalid CSS 伪类 表示任意内容未通过验证的 <input> 或其他 <form></form> 元素。

input[type="text"]:invalid {
    border-color: red;
}

:lang() | 通过指定的lang值选择一个元素

:lang() CSS 伪类基于元素语言来匹配页面元素。

/* 选取任意的英文(en)段落 */
p:lang(en) {
  quotes: &#39;\201C&#39; &#39;\201D&#39; &#39;\2018&#39; &#39;\2019&#39;;
}

:not() |  用来匹配不符合一组选择器的元素

CSS 伪类 :not() 用来匹配不符合一组选择器的元素。由于它的作用是防止特定的元素被选中,它也被称为反选伪类(negation pseudo-class)。

来看一个例子:

.innerDiv :not(p) {
    color: lightcoral;
}
<div class="innerDiv">
    <p>Paragraph 1</p>
    <p>Paragraph 2</p>
    <div>Div 1</div>
    <p>Paragraph 3</p>
    <div>Div 2</div>
</div>

1意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !

Div 1Div 2会被选中,p 不会被选 中。

原文地址:https://blog.bitsrc.io/css-pseudo-selectors-you-never-existed-b5c0ddaa8116

作者:Chidume Nnamdi

译文地址:https://segmentfault.com/a/1190000024444838

更多编程相关知识,请访问:编程视频!!

以上が意外と知らないレイアウト効率を上げるCSS擬似クラス16選! !の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。