■ 属性セレクタ/疑似要素
属性セレクタ | |
---|---|
[属性^="XX"] | 属性(class/id/href/src 等)がXXで始まるセレクタに対して |
[属性$="XX"] | 属性(class/id/href/src 等)がXXで終わるセレクタに対して |
[属性*="XX"] | 属性(class/id/href/src 等)がXXが入っているセレクタに対して |
疑似要素 | |
:after | contentプロパティとセットとなっている。 content:"";の""内の要素が該当の修了タグの直前に挿しこまれる |
:before | contentプロパティとセットとなっている。 content:"";の""内の要素が該当の開始タグの直後に挿しこまれる |
:first-child | 親要素の最初の子要素に対して |
:last-child | 親要素の最後の子要素に対して |
:only-child | 親要素の中に子要素が一つだけしかないときの、その要素に対して |
:nth-child(n) | 親要素のn番目の子要素に対して |
:nth-child(odd) | 親要素の奇数番目の子要素に対して |
:nth-child(even) | 親要素の偶数番目の子要素に対して |
:first-of-type | 親要素の子要素として最初に出現する要素に対して |
:last-of-type | 親要素の子要素として最後に出現する要素に対して |
:only-of-type | 親要素の中に子要素が一種類だけしかないときの、その要素に対して |
:nth-of-type(n) | 親要素の子要素としてn番目に出現する要素に対して |
:disabled | 無効になっている要素(input/textareaなど)にスタイルを適用できる |
:enabled | 有効になっている要素(input/textareaなど)にスタイルを適用できる |
:checked | チェックされている要素にスタイルを適用できる |
:target | リンク先の要素に対してスタイルを適用できる |
:empty | 空要素に対してスタイルを適用できる |
:not() | ()以外の要素に対して |
[属性^="XX"]
--[ html ]----------------------- <div class="giji17"> <p class="begin-apple">りんご</p> <p class="apple">りんご2</p> <p class="begin-mikan">みかん</p> <a href="http://www.nemuchan.com">ばなな</a> <a href="index.html">キウイ</a> <img src="img/flower.png"> <img src="../css3/img/flower.png"> </div> --[ CSS ]------------------------ .giji17 *{ display:inline-block; margin:2px; } .giji17 [class^="begin"]{background:#f60;} .giji17 [href^="http"]{background:#393;} .giji17 [src^="img"]{background:#36c;}
[属性$="XX"]
--[ html ]----------------------- <div class="giji18"> <p class="apple-end">りんご</p> <p class="apple">りんご2</p> <p class="mikan-end">みかん</p> <a href="http://www.nemuchan.com">ばなな</a> <a href="index.html">キウイ</a> <img src="img/flower.png"> <img src="img/bg_cake.gif"> </div> --[ CSS ]------------------------ .giji18 *{ display:inline-block; margin:2px; } .giji18 [class$="end"]{background:#f60;} .giji18 [href$="html"]{background:#393;} .giji18 [src$="png"]{background:#36c;}
[属性*="XX"]
--[ html ]----------------------- <div class="giji19"> <p class="apple-all"">りんご</p> <p class="apple">りんご2</p> <p class="all"-mikan">みかん</p> <a href="tips01.html">ばなな</a> <a href="tips02.html">キウイ</a> <a href="index.html">もも</a> <img src="img/flower.png"> <img src="../css3/img/flower.png"> </div> --[ CSS ]------------------------ .giji19 *{ display:inline-block; margin:2px; } .giji19 [class*="all"]{background:#f60;} .giji19 [href*="tips"]{background:#393;} .giji19 [src*="img"]{background:#36c;}
after
--[ html ]----------------------- <ul class="giji_a"> <li>みかん</li> <li>りんご</li> <li>バナナ</li> </ul> <div style="clear:both;"></div><!--回り込み解除--> <ul class="giji_b"> <li>みかん</li> <li>りんご</li> <li>バナナ</li> </ul> --[ CSS ]------------------------ /*疑似要素無し*/ .giji_a{ border:#666 1px solid; } .giji_a li{ background:#999; margin:5px 10px; float:left; } /*疑似要素有り*/ .giji_b{ border:#666 1px solid; } .giji_b li{ background:#999; margin:5px 10px; float:left; } .giji_b:after{ content:""; clear:both; display:block; }
before
--[ html ]----------------------- <ul class="giji00"> <li>みかん</li> <li>りんご</li> <li>バナナ</li> <li>キュウイ</li> <li>もも</li> <li>ブドウ</li> </ul> --[ CSS ]------------------------ .giji00 li{ float:left; padding:0 0 0 3px; } .giji00 li:before{ color:#c3c; content:"|"; padding:0 3px 0 0; }
contentプロパティ
使用できるのは疑似要素である「:before」,「:after」でのみ。
--[ html ]----------------------- <small>↓リスト用アイコン</small> <ul class="cont1"> <li>みかん</li> <li>りんご</li> <li>バナナ</li> </ul> <small>↓画像にキャプションをつける</small> <ul class="cont2"> <li name="みかん"><img src="./img/flower.png"></li> <li name="りんご"><img src="./img/flower.png"></li> <li name="バナナ"><img src="./img/flower.png"></li> </ul> --[ CSS ]------------------------ /*↓リスト用アイコン*/ .cont1 li:before{ padding:0 5px 0 0; content:url("../img/icn01.gif"); } /*↓画像にキャプションをつける*/ .cont2 li{ float:left; width:40px; } .cont2 li:after{ width:40px; display:block; content:attr(name); } .cont2:after{ content:""; display:block; clear:both; }
content内に示される値 | |
---|---|
url("") | 画像を表示したいとき、画像のURLを貼る。 |
attr() | タグ内に指定した属性を表示させる。 |
open-quote,close-quote | 引用符をつけるのに使います。詳細(別サイトへ) >> |
no-open-quote,no-close-quote | 引用符の入れ子の深さを一階層前後させます。詳細(別サイトへ) >> |
first-child
--[ html ]----------------------- <ul class="giji01"> <li>みかん</li> <li>りんご</li> <li>バナナ</li> <li>キュウイ</li> <li>もも</li> <li>ブドウ</li> </ul> --[ CSS ]------------------------ .giji01 li{ width:80px; padding:3px 0; border-top:#333 dashed 1px; } .giji01 li:first-child { border:none; }
last-child
--[ html ]----------------------- <ul class="giji02"> <li>みかん</li> <li>りんご</li> <li>バナナ</li> <li>キュウイ</li> <li>もも</li> <li>ブドウ</li> </ul> --[ CSS ]------------------------ .giji02 li{ width:80px; padding:3px 0; border-bottom:#333 solid 1px; } .giji02 li:last-child { border-bottom:#333 solid 2px; }
only-child
--[ html ]----------------------- <p class="giji11">A <span>B</span> C</p> <p class="giji11"><span>A</span> <i>B</i> <i>C</i></p> <p class="giji11"><span>A</span> <span>B</span> C</p> --[ CSS ]------------------------ .giji11 span:only-child{ color:#f00; font-weight:bold; }
nth-child(n)
--[ html ]----------------------- <ul class="giji03"> <li>みかん</li> <li>りんご</li> <li>バナナ</li> <li>キュウイ</li> <li>もも</li> <li>ブドウ</li> </ul> --[ CSS ]------------------------ .giji03 li{ width:80px; padding:3px 0; background:#ccc; } .giji03 li:nth-child(3) { background:#333; }
nth-child(odd)
--[ html ]----------------------- <ul class="giji04"> <li>みかん</li> <li>りんご</li> <li>バナナ</li> <li>キュウイ</li> <li>もも</li> <li>ブドウ</li> </ul> --[ CSS ]------------------------ .giji04 li{ width:80px; padding:3px 0; background:#ccc; } .giji04 li:nth-child(odd) { background:#333; }
nth-child(even)
--[ html ]----------------------- <ul class="giji05"> <li>みかん</li> <li>りんご</li> <li>バナナ</li> <li>キュウイ</li> <li>もも</li> <li>ブドウ</li> </ul> --[ CSS ]------------------------ .giji05 li{ width:80px; padding:3px 0; background:#ccc; } .giji05 li:nth-child(even) { background:#333; }
first-of-type
--[ html ]----------------------- <ul class="giji06"> <li>みかん</li> <li>りんご</li> <li>バナナ</li> <li>キュウイ</li> <li>もも</li> <li>ブドウ</li> </ul> --[ CSS ]------------------------ .giji06 li{ width:80px; padding:3px 0; background:#ccc; } .giji06 li:first-of-type { background:#333; }
last-of-type
--[ html ]----------------------- <ul class="giji07"> <li>みかん</li> <li>りんご</li> <li>バナナ</li> <li>キュウイ</li> <li>もも</li> <li>ブドウ</li> </ul> --[ CSS ]------------------------ .giji07 li{ width:80px; padding:3px 0; background:#ccc; } .giji07 li:last-of-type { background:#333; }
only-of-type
--[ html ]----------------------- <p class="giji12">A <span>B</span> C</p> <p class="giji12"><span>A</span> <i>B</i> <i>C</i></p> <p class="giji12"><span>A</span> <span>B</span> C</p> --[ CSS ]------------------------ .giji12 span:only-of-type{ color:#f00; font-weight:bold; }
nth-of-type(n)
--[ html ]----------------------- <ul class="giji08"> <li>みかん</li> <li>りんご</li> <li>バナナ</li> <li>キュウイ</li> <li>もも</li> <li>ブドウ</li> </ul> --[ CSS ]------------------------ .giji08 li{ width:80px; padding:3px 0; background:#ccc; } .giji08 li:nth-of-type(3) { background:#333; }
disabled / enabled
--[ html ]----------------------- <input type="text" name="name" value="普通の状態です"/> <div class="giji09"> <input type="text" name="name" value=":enabled です" /> <input type="text" name="name" value=":disabled です" disabled="disabled" /> </div> --[ CSS ]------------------------ .giji09 input{ margin:10px 0; } .giji09 input:enabled { background:#f9c; } .giji09 input:disabled{ background:#ccc; }
checked
--[ html ]----------------------- <div class="giji10"> <input type="radio" name="name"><label for="age10">チェックしてください。</label> <input type="radio" name="name"><label for="age10">チェックしてください。</label> <input type="radio" name="name"><label for="age10">チェックしてください。</label> </div> --[ CSS ]------------------------ .giji10 input:checked{ outline:solid 6px #600; }
target
--[ html ]----------------------- <a href="#tgt1">A へ </a> <a href="#tgt2">B へ </a> <a href="#tgt3">C へ </a> <div class="giji15"> <p id="tgt1">A</p> <p id="tgt2">B</p> <p id="tgt3">C</p> </div> --[ CSS ]------------------------ .giji15 :target { background-color:#666; }
empty
--[ html ]----------------------- <div class="giji16"> <p>A</p> <p></p> <p>C</p> </div> --[ CSS ]------------------------ .giji16 p:empty{ color:#ccc; } .giji16 p:empty:before{ content:"空要素です"; }
root
--[ html ]----------------------- <div class="giji16"> <p>A</p> <p></p> <p>C</p> </div> --[ CSS ]------------------------ .giji16 p:empty{ color:#ccc; } .giji16 p:empty:before{ content:"空要素です"; }
not
--[ html ]----------------------- <ul class="giji13"> <li>りんご</li> <li>みかん</li> <li>ばなな</li> </ul> <ul class="giji14"> <li id="ringo">りんご</li> <li id="mikan">みかん</li> <li id="banana">ばなな</li> </ul> --[ CSS ]------------------------ .giji13 li, .giji14 li{ background:#666; } .giji13 li:not(:first-child){ background:#ccc; } .giji14 li:not(#ringo){ background:#ccc; }