CSSのセレクタ
CSSプロパティの適用先。
ユニバーサルセレクタ
タイプセレクタ
クラスセレクタ
IDセレクタ
結合子を使ったセレクタ(子孫セレクタ等)
セレクターのグループ化(カンマ区切り)
擬似クラス
疑似要素
ユニバーサルセレクター
すべての要素に対してCSSプロパティを適用できるセレクター。
-
- <body>
- <h2>テキストテキストテキスト</h2>
- <p>pテキストpテキストpテキストpテキスト</p>
- <h2>テキストテキストテキスト</h2>
- <p>pテキストpテキストpテキストpテキスト</p>
- <h2>テキストテキストテキスト</h2>
- <p>pテキストpテキストpテキストpテキスト</p>
- </body>
- *{
- color:red;
- }
See the Pen
ユニバーサルセレクター by roymoy (@roymoy)
on CodePen.
タプセレクター
指定した要素にCSSプロパティを適用する。
- <body>
- <h2>テキストテキストテキスト</h2>
- <p>pテキストpテキストpテキストpテキスト</p>
- <h2>テキストテキストテキスト</h2>
- <p>pテキストpテキストpテキストpテキスト</p>
- <h2>テキストテキストテキスト</h2>
- <p>pテキストpテキストpテキストpテキスト</p>
- </body>
- body{
- background-color:linen;
- }
- h2{
- font-size:24px;
- }
- p{
- color:darkgreen;
- }
See the Pen
タイプセレクター by roymoy (@roymoy)
on CodePen.
クラスセレクター
指定したクラス属性の値にCSSプロパティを適用。
「.」とクラス属性の値をつなげて表記。
class属性はドキュメント内で何箇所も設置可能。
- <h2 class=“head2”>h2テキストh2テキスト<h2>
- h2.head2{
- color:green;
- background-color:palegreen;
- padding:20px;
- width:250px;
- font-size:22px;
- }
See the Pen
クラスセレクター by roymoy (@roymoy)
on CodePen.
IDセレクター
指定したID属性の値にCSSプロパティを適用。
#とID属性の値をあわせて表記
ID属性はドキュメント内で一意となる。
- <h2 id=“head2”>h2テキストh2テキスト</h2>
- <h2>h2テキストh2テキスト</h2>
- <h2>h2テキストh2テキスト</h2>
- h2#head2{
- color:green;
- background-color:palegreen;
- padding:20px;
- width:250px;
- font-size:22px;
- }
See the Pen
abzPYjP by roymoy (@roymoy)
on CodePen.
結合子を利用したセレクター
子孫セレクター 要素A 半角スペース 要素B
複数のタイプセレクターを半角スペースでつなぐ。
タイプセレクターを組み合わせて絞り込み、適用範囲を狭める。
- <div><article><p>30px</p></article></div>
- <div><p>20px</p></div>
- <p>10px</p>
- div article p{
- font-size: 30px;
- }
- div p{
- font-size:20px;
- }
- p{
- font-size:10px;
- }
See the Pen
XWJoqWO by roymoy (@roymoy)
on CodePen.
子セレクター 要素A > 要素B
親要素Aが内包するすべての子要素B(1階層下)にのみ適用される。
HTML
<body> <h1>h1テキストh1テキスト</h1> <p>pテキストpテキストpテキストpテキスト</p> <div> <h2>h2テキストh2テキスト</h2> <p>pテキストpテキストpテキストpテキスト</p> <h2>h2テキストh2テキスト</h2> <p>pテキストpテキストpテキストpテキスト</p> </div> </body>
CSS
body > p{ color:pink; } div > p{ color:green; }
See the Pen
子セレクタ by roymoy (@roymoy)
on CodePen.
グループ化(カンマ区切り)要素A , 要素B
複数の要素に同一のCSSプロパティを適用する。
同一のCSSプロパティを適用したい要素を(カンマ)「 , 」でつなぐ。
HTML
- <body>
- <h1>h1テキストh1テキスト</h1>
- <p>pテキストpテキストpテキストpテキスト</p>
- <div>
- <h2>h2テキストh2テキスト</h2>
- <p>pテキストpテキストpテキストpテキスト</p>
- <h2>h2テキストh2テキスト</h2>
- <p>pテキストpテキストpテキストpテキスト</p>
- </div>
- </body>
CSS
- h1,h2{
- color: green;
- }
See the Pen
カンマ区切り by roymoy (@roymoy)
on CodePen.
擬似クラス
ダイナミック擬似クラス
:link
:visited
:hover
:focus
:active
構造擬似クラス
:root
:first-child
:last-child
:nth-child
:nth-last-child
:root
:first-child と :last-child
最初と最後の要素にCSSプロパティを適用する。
HTML
- <div>
- <p>pテキスト1番目</p>
- <p>pテキスト2番目</p>
- <p>pテキスト3番目</p>
- <p>pテキスト4番目</p>
- <p>pテキスト5番目</p>
- <p>pテキスト6番目</p>
- </div>
CSS
- p:first-child{
- background-color:olive;
- }
- p:last-child{
- background-color:olivedrab;
- }
See the Pen
firstchild-lastchild by roymoy (@roymoy)
on CodePen.
:nth-child
ナンバーを指定してCSSプロパティを適用する。
親要素が複数ある場合には親要素ごとに適用される。
パターン | 内容(スタイル適用) |
---|---|
p : nth-child(2) | 2番めのp要素にスタイルを適用 |
p:nth-child(odd) p:nth-child(even) |
奇数のp要素 偶数のp要素 |
p:nth-child(2n+1) p:nth-child(2n+2) |
2つおきの1つ目のp要素 2つおきの2つ目のp要素 |
p:nth-child(3n+1) p:nth-child(3n+2) p:nth-child(3n+3) |
3つおきの1つ目のp要素 3つおきの2つ目のp要素 3つおきの3つ目のp要素 |
p:nth-child(n+4) | 4番目 以 降 のp要素 |
p:nth-child(-n+4) | 4番目 以 前 のp要素 |
p:nth-child(n+2):nth-child(-n+4) | 2番目以降から4番目以前のp要素 |
要素のナンバーを指定してCSSプロパティを適用する場合
HTML
- <div>
- <p>pテキスト1番目</p>
- <p>pテキスト2番目</p>
- <p>pテキスト3番目</p>
- <p>pテキスト4番目</p>
- <p>pテキスト5番目</p>
- <p>pテキスト6番目</p>
- </div>
CSS
- div p:nth-child(2){
- background-color:olive;
- }
- div p:nth-child(5){
- background-color:olivedrab;
- }
See the Pen
nth-child1 by roymoy (@roymoy)
on CodePen.
奇数と偶数
HTML
- <div>
- <p>pテキスト1番目</p>
- <p>pテキスト2番目</p>
- <p>pテキスト3番目</p>
- <p>pテキスト4番目</p>
- <p>pテキスト5番目</p>
- <p>pテキスト6番目</p>
- </div>
CSS
- div p:nth-child(odd){
- background-color:olive;
- }
- div p:nth-child(even){
- background-color:orange;
- }
See the Pen
偶数奇数 by roymoy (@roymoy)
on CodePen.
2n+1 3n+1連続した要素に一定に繰り返す場合
HTML
- <h2>2つおきの場合</h2>
- <div class=“samp1”>
- <p>pテキスト1番目</p>
- <p>pテキスト2番目</p>
- <p>pテキスト3番目</p>
- <p>pテキスト4番目</p>
- <p>pテキスト5番目</p>
- <p>pテキスト6番目</p>
- </div>
- <h2>3つおきの場合</h2>
- <div class=“samp2”>
- <p>pテキスト1番目</p>
- <p>pテキスト2番目</p>
- <p>pテキスト3番目</p>
- <p>pテキスト4番目</p>
- <p>pテキスト5番目</p>
- <p>pテキスト6番目</p>
- </div>
CSS
- div.samp1 p:nth-child(2n+1){
- background-color:olive;
- }
- div.samp1 p:nth-child(2n+2){
- background-color:orange;
- }
- div.samp2 p:nth-child(3n+1){
- background-color:blue;
- }
- div.samp2 p:nth-child(3n+2){
- background-color:yellow;
- }
- div.samp2 p:nth-child(3n+3){
- background-color:red;
- }
See the Pen
2n+1,3n+1 by roymoy (@roymoy)
on CodePen.
以降(samp1)と以前(samp2)とその間(samp3)の要素にスタイルを適用
HTML
- <h2>4番目 以 降 の場合</h2>
- <div class=“samp1”>
- <p>pテキスト1番目</p>
- <p>pテキスト2番目</p>
- <p>pテキスト3番目</p>
- <p>pテキスト4番目</p>
- <p>pテキスト5番目</p>
- <p>pテキスト6番目</p>
- </div>
- <h2>4番目 以 前 の場合</h2>
- <div class=“samp2”>
- <p>pテキスト1番目</p>
- <p>pテキスト2番目</p>
- <p>pテキスト3番目</p>
- <p>pテキスト4番目</p>
- <p>pテキスト5番目</p>
- <p>pテキスト6番目</p>
- </div>
- <h2>2番目以降4番目以前の場合</h2>
- <div class=“samp3”>
- <p>pテキスト1番目</p>
- <p>pテキスト2番目</p>
- <p>pテキスト3番目</p>
- <p>pテキスト4番目</p>
- <p>pテキスト5番目</p>
- <p>pテキスト6番目</p>
- </div>
CSS
- div.samp1 p:nth-child(n+4){
- background-color:olive;
- }
- div.samp2 p:nth-child(-n+4){
- background-color:olive;
- }
- div.samp3 p:nth-child(n+2):nth-child(-n+4){
- background-color:olive;
- }
See the Pen
以前・以降・その間 by roymoy (@roymoy)
on CodePen.
:nth-last-child
疑似要素
::before ::after
要素の前(::before)と後ろ(::after)に擬似的な下層BOXを挿入することができる。
BOX内の内容の指定は、contentプロパティを使用する。
HTML
<div class="fukidashi">テキストテキストテキストテキストテキストテキスト</div>
CSS
.fukidashi { display: inline-block; position: relative; margin: 5px 0 0 105px; padding: 17px 13px; border-radius: 12px; background: #d7ebfe; border:solid 2px steelblue; } /*下*/ .fukidashi::before { position: absolute; content: '';/*空に*/ border-top: 12px solid steelblue;/*三角を作る*/ border-right: 12px solid transparent; border-left: 12px solid transparent; top: 100%;/*下*/ left: 50%;/*中央配置*/ transform: translateX(-50%);/*ズレを補正*/ } /*左側*/ .fukidashi::after { content: "";/*空に*/ display: inline-block; position: absolute; top: 18px; /*位置を補正*/ left: -24px; border: 12px solid transparent;/*三角を作る*/ border-right: 12px solid steelblue; }
実装
See the Pen
疑似要素::before::after by roymoy (@roymoy)
on CodePen.