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-styledashedにしてハサミ記号を組み合わせれば切り取り線のような見栄えにできます。

切り取り線のような見栄えの表示イメージ

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で回転させています。

アクセントに置いてある記号を`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);
}