■ 属性セレクタ/疑似要素
| 属性セレクタ | |
|---|---|
| [属性^="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
A B C
A B C
A B C
--[ 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
A B C
A B C
A B C
--[ 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
A
B
C
--[ 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
A
C
--[ 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;
}
