hr
要素は罫線を表示させるもので、話題を変えるときの目印となる区切り線などとして用いられます。
どのブラウザでも完璧に同じ見栄えをとなると背景画像とかがやはり手っ取り早いし無難なんですが、やろうと思えばCSSだけでも結構いろいろとできるので、備忘録兼ねてhr
要素をスタイリングしたものをまとめてみました。
ここで紹介しているものは、ブラウザによっては(特にCSS3を用いているもの)ちゃんと表示されません。
また、多用する人も多いと思う破線や点線もブラウザによっては多少見栄えが違ったりするので、使用する際はあらかじめ注意が必要になります。
はじめに
ここで紹介しているものは、すべてHTMLは<hr />
のみです。
また、それぞれのhr
要素にはデフォルトスタイルとしてあらかじめ下記のようなスタイルを指定してあります。
hr {
height: 0;
margin: 0;
padding: 0;
border: 0;
overflow: visible;
}
実線
hr {
border-top: 1px solid #bbb;
}
二重線
hr {
border-top: 3px double #bbb;
}
破線
hr {
border-top: 1px dashed #bbb;
}
点線
hr {
border-top: 1px dotted #bbb;
}
背景色付
通常は単色ですが、background-color
と併せて2カラーに見せる方法です。
背景色付 - 破線
hr {
background-color: #fff;
border-top: 2px dashed #bbb;
}
背景色付 - 点線
hr {
background-color: #fff;
border-top: 2px dotted #bbb;
}
立体線
1pxのラインをいれるだけでデザインがグッと良くなると言われていますが、それをCSSでそれぞれのタイプに実装して立体的に見せる方法です。
立体線 - 実線
hr {
border-top: 1px solid #bbb;
border-bottom: 1px solid #fff;
}
立体線 - 二重線
hr {
border-top: 1px solid #bbb;
border-bottom: 1px solid #fff;
}
hr:after {
content: '';
display: block;
margin-top: 2px;
border-top: 1px solid #bbb;
border-bottom: 1px solid #fff;
}
立体線 - 破線
hr {
border-top: 1px dashed #bbb;
border-bottom: 1px dashed #fff;
}
立体線 - 点線
hr {
border-top: 1px dotted #bbb;
border-bottom: 1px dotted #fff;
}
背景画像
CSSだけでもできなくはないんですが、結局少し特殊なものを実装するとかどのブラウザでも同じようにとなると、結局これが一番無難で手っ取り早いですね...。
背景画像 #1
hr {
height: 4px;
background: url(line01.png) repeat-x 0 0;
}
背景画像 #2
hr {
height: 4px;
background: url(line02.png) repeat-x 0 0;
}
シャドウ
hr {
height: 10px;
border: 0;
box-shadow: 0 10px 10px -10px #bbb inset;
}
グラデーション
グラデーションを用いて中央は濃く、両端を薄くしているタイプのライン。
hr {
height: 1px;
background: #bbb;
background-image: -webkit-linear-gradient(left, #eee, #777, #eee);
background-image: -moz-linear-gradient(left, #eee, #777, #eee);
background-image: -ms-linear-gradient(left, #eee, #777, #eee);
background-image: -o-linear-gradient(left, #eee, #777, #eee);
}
その他 #1
CSSのcontent
プロパティと:after
擬似要素を用いて、記号や文字を取り入れたタイプのライン。
hr {
border-top: 4px double #bbb;
text-align: center;
}
hr:after {
content: '\002665';
display: inline-block;
position: relative;
top: -15px;
padding: 0 10px;
background: #f0f0f0;
color: #bbb;
font-size: 18px;
}
その他 #2
同じくcontent
と:after
擬似要素を用いたタイプのラインで、border-style
をdashed
にしてハサミ記号を組み合わせれば切り取り線のような見栄えにできます。
hr {
border-top: 1px dashed #bbb;
}
hr:after {
content: '\002702';
display: inline-block;
position: relative;
top: -12px;
left: 40px;
padding: 0 3px;
background: #f0f0f0;
color: #bbb;
font-size: 18px;
}
その他 #3
基本は「10. その他 #1」と同じものですが、アクセントに置いてある記号をtransform
で回転させています。
hr {
border-top: 1px solid #bbb;
text-align: center;
}
hr:after {
content: '§';
display: inline-block;
position: relative;
top: -14px;
padding: 0 10px;
background: #f0f0f0;
color: #bbb;
font-size: 18px;
-webkit-transform: rotate(60deg);
-moz-transform: rotate(60deg);
transform: rotate(60deg);
}