「リボン風(両端の方向を別々に)見出し」を作ってみよう
見出しテキスト
擬似要素を使って作ることができるシンプルな見出しです。
こちらのサンプルを次のステップを追って説明します。
- h1要素を作る
- 擬似要素を追加する(::before部分)
- 擬似要素を追加する(::after部分)
- 共通する擬似要素をまとめる
h1要素を作る
まずは<h1>タグに装飾をします。
この時、擬似要素を配置するための基準を「position: relative;」で設定します。
h1 {
position: relative;/*擬似要素を配置するための基準にする*/
padding: .3em;
background-color: #B2EBF2;
color: #0097A7;
}
擬似要素を追加する(::before部分)
次に擬似要素(::before部分)を用意し、ここに三角形を作り配置します。
三角形の書き方はいろいろありますが、サンプルは線種・色・サイズごとにまとめて記述しています。
その他に、位置ごとに書いていく方法や基本の線種・色・サイズをまとめてから変えたいところだけ打ち消す方法などもあります。
見出しテキスト
サンプルは三角形を作る設定を線種・色・サイズごとにまとめて記述しています。
位置ごとに書いていく方法であれば下記でもOK。
{
border-top: 0 solid transparent;
border-right: 15px solid #0097A7;
border-bottom: 15px solid transparent;
border-left: 0 solid transparent;
}
基本の線種・色・サイズをまとめてから変えたいところだけ打ち消す方法ならばこちら。
{
border-style: solid;
border-color: transparent;
border-width: 0 15px 15px 0;
border-right-color: #0097A7;
}
h1 {
position: relative;/*擬似要素を配置するための基準にする*/
padding: .3em;
background-color: #B2EBF2;
color: #0097A7;
}
h1::before {
content: '';
/*h1で指定した基準に対して相対配置をする*/
position: absolute;
/*h1のコンテンツの上からの位置*/
top: 100%;
/*h1のコンテンツの左からの位置*/
left: 0;
/*三角形を作る設定*/
/*ボーダーのスタイルは直線に設定*/
border-style: solid;
/*rightだけに色を設定*/
border-color: transparent #0097A7 transparent transparent;
/*三角を作るためにrightとbottomのサイズを指定それ以外は0に*/
border-width: 0 15px 15px 0;
}
擬似要素を追加する(::after部分)
次に擬似要素(::after部分)を用意し、ここに三角形を作り配置します。
三角形の書き方はいろいろありますが、サンプルは線種・色・サイズごとにまとめて記述しています。
その他に、位置ごとに書いていく方法や基本の線種・色・サイズをまとめてから変えたいところだけ打ち消す方法などもあります。
見出しテキスト
サンプルは三角形を作る設定を線種・色・サイズごとにまとめて記述しています。
位置ごとに書いていく方法であれば下記でもOK。
{
border-top: 0 solid transparent;
border-right: 15px solid transparent;
border-bottom: 15px solid #0097A7;
border-left: 0 solid transparent;
}
基本の線種・色・サイズをまとめてから変えたいところだけ打ち消す方法ならばこちら。
{
border-style: solid;
border-color: transparent;
border-width: 0 15px 15px 0;
border-bottom-color: #0097A7;
}
h1 {
position: relative;/*擬似要素を配置するための基準にする*/
padding: .3em;
background-color: #B2EBF2;
color: #0097A7;
}
h1::before {
content: '';
/*h1で指定した基準に対して相対配置をする*/
position: absolute;
/*h1のコンテンツの上からの位置*/
top: 100%;
/*h1のコンテンツの左からの位置*/
left: 0;
/*三角形を作る設定*/
/*ボーダーのスタイルは直線に設定*/
border-style: solid;
/*rightだけに色を設定*/
border-color: transparent #0097A7 transparent transparent;
/*三角を作るためにrightとbottomのサイズを指定それ以外は0に*/
border-width: 0 15px 15px 0;
}
h1::after {
content: '';
/*h1で指定した基準に対して相対配置をする*/
position: absolute;
/*h1のコンテンツの上からの位置*/
top: -15px;
/*h1のコンテンツの右からの位置*/
right: 0;
/*三角形を作る設定*/
/*ボーダーのスタイルは直線に設定*/
border-style: solid;
/*bottomだけに色を設定*/
border-color: transparent transparent #0097A7 transparent;
/*三角を作るためにrightとbottomのサイズを指定それ以外は0に*/
border-width: 0 15px 15px 0;
}
共通する擬似要素をまとめる
最後に同じことをずらずら書いていてもわかりにくいので共通して使っているものはまとめて書いちゃいましょう。
h1 {
position: relative;
padding: .3em;
background-color: #B2EBF2;
color: #0097A7;
}
h1::before,
h1::after {
content: '';
position: absolute;
border-style: solid;
border-width: 0 15px 15px 0;
}
h1::before {
top: 100%;
left: 0;
border-color: transparent #0097A7 transparent transparent;
}
h1::after {
top: -15px;
right: 0;
border-color: transparent transparent #0097A7 transparent;
}
よく見かける「:hover」や「:checked」は擬似クラスです。