CSSセレクタ-Pseudo-elements

6062 ワード

Pseudo-elements


擬似要素は、セレクタの最後に追加して要素の一部を選択できる2つのコロンの前にあるキーワードです.

::after


選択したエレメントの最後尾にある擬似エレメントを作成します.contentプロパティとともに使用して、選択した要素に装飾的な内容を追加します.デフォルトではインラインされています.
/* CSS3 syntax */
::after

/* CSS2 syntax */
:after

/* Add an arrow after links */
a::after {
  content: "→";
}
    

Here is some plain old boring text.

Here is some normal text that is neither boring nor exciting.

Contributing to MDN is easy and fun.




Look at the orange box after this text.


Here we have some text with a few tooltips.

.exciting-text::after {
    content: " 

::before


選択したエレメントの先頭にある擬似エレメントを作成します.contentプロパティとともに使用して、選択した要素に装飾的な内容を追加します.デフォルトではインラインされています.
/* Add a heart before links */
a::before {
  content: "♥";
}

/* CSS3 syntax */
::before

/* CSS2 syntax */
:before
    Some quotes, he said, are better than none.
    


Notice where the orange box is.


  • Buy milk
  • Take the dog for a walk
  • Exercise
  • Write code
  • Play music
  • Relax
q::before { 
    content: "«";
    color: blue;
}

q::after { 
    content: "»";
    color: red;
}

.ribbon {
    background-color: #5BC8F7;
}

.ribbon::before {
    content: "Look at this orange box.";
    background-color: #FFBA10;
    border-color: black;
    border-style: dotted;
}

li {
    list-style-type: none;
    position: relative;
    margin: 2px;
    padding: 0.5em 0.5em 0.5em 2em;
    background: lightgrey;
    font-family: sans-serif;
}

li.done {
    background: #CCFF99;
}

li.done::before {
    content: '';
    position: absolute;
    border-color: #009933;
    border-style: solid;
    border-width: 0 0.3em 0.25em 0;
    height: 1em;
    top: 1.3em;
    left: 0.6em;
    margin-top: -1em;
    transform: rotate(45deg);
    width: 0.5em;
}
var list = document.getElementsByTagName("ul");
list.addEventListener("click", function (ev) {
    if (ev.target.tagName === "LI") {
        ev.target.classList.toggle("done");
    }
}, false);

::first-letter


ブロックレベル要素の最初の行の最初のアルファベットにスタイルを適用します.前の問題はブロックレベル要素の前に他の内容がありません.
::first-letter擬似要素で許可されるプロパティ
/* Selects the first letter of a 

*/ p::first-letter { font-size: 130%; } /* CSS3 syntax */ ::first-letter /* CSS2 syntax */ :first-letter

    

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est.

Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat.

Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat.

-The beginning of a special punctuation mark.

_The beginning of a special punctuation mark.

"The beginning of a special punctuation mark.

'The beginning of a special punctuation mark.

*The beginning of a special punctuation mark.

#The beginning of a special punctuation mark.

「 。

《 。

“ 。

P::first-letter {
    color: red;
    font-size: 130%;
}

::first-line


ブロックレベル要素の最初の行にスタイルを適用します.最初の行の長さは、要素の幅、ドキュメントの幅、文字のフォントサイズなど、多くの要因の影響に基づいていることに注意してください.
::first-line擬似要素が許可する属性
/* Selects the first line of a 

*/ p::first-line { color: red; } /* CSS3 syntax */ ::first-line /* CSS2 syntax */ :first-line

    

Styles will only be applied to the first line of this paragraph. After that, all text will be styled like normal. See what I mean?

The first line of this text will not receive special styling because it is not a block-level element.
::first-line {
    color: blue;
    text-transform: uppercase;
    /* WARNING: DO NOT USE THESE */
    /* Many properties are invalid in ::first-line pseudo-elements */
    margin-left: 20px;
    text-indent: 20px;
}

::selection


ユーザーによって強調表示されたドキュメント部分にスタイルを適用します.
この疑似要素は、次のCSSプロパティとともにのみ使用できます.color background-color cursor caret-color outline text-decoration text-emphasis-color text-shadow
::selection {
  background: cyan;
}

/* Legacy Firefox syntax (version 61 and below) */
::-moz-selection

::selection
    This text has special styles when you highlight it.
    

Also try selecting text in this paragraph.

/* Make selected text gold on a red background */

::selection {
    color: gold;
    background: red;
}


/* Make selected text in a paragraph white on a blue background */

p::selection {
    color: white;
    background: blue;
}

::backdrop


ビューポートサイズのボックスが、フルスクリーンモードの要素の下に表示されます.この擬似要素は実験段階にあり、ブラウザの互換性に注意してください.
/* Backdrop is only displayed when dialog is opened with dialog.showModal() */
dialog::backdrop {
  background: rgba(255,0,0,.25);
}