- ベストアンサー
hr要素の点線表記について
- hr要素を点線で表示したい場合、指定方法によって表示が異なることがあります。
- 一部のプラウザ(Firefoxなど)では、点線の下に薄いグレーが表示される場合があります。
- 解決方法として、指定方法を変更し、colorプロパティに白色を設定することで問題を解消できます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
当然、そうなるはずですが? すくなくとも、IE以外の(言い換えればウェブ標準の)ブラウザでは同様になるはずです。 borderを簡略化プロパティを使わずに記述すると hr{ border-top-color: #000; border-right-color: transparent; border-bottom-color: transparent; border-left-color: transparent; border-top-style:dashed; border-right-style:none; border-bottom-style:none; border-left-style:none; border-top-width:1px; border-right-width:0px; border-bottom-width:0px; border-left-width:0px; } ですね。 ここで、 hr.B { border-top: 1px dashed #000; height: 1px; width: 100%; } では、他のborderの値は指定されていませんから、初期値であるmidiamの幅になります。 よって hr.C{ border-top-color: #000; border-right-color: transparent; border-bottom-color: transparent; border-left-color: transparent; border-top-style:dashed; border-right-style:none; border-bottom-style:none; border-left-style:none; border-top-width:1px; border-right-width:1px; border-bottom-width:1px; border-left-width:1px; } /* 簡略化プロパティを使うと */ hr.D{ border: transparent none 0px; border-top: #000 dashed 1px ; } で、なければならないことになります。IEは多くのバグがありますから惑わされないように・・私はぺーじ製作ではfirefoxをデフォルトとしています。 なお、width/heightは不要です。 また、いちいちclass名を書くことはしません。 div.section>hr{ border: transparent none 0px; border-top: #000 dashed 1px ; } で本文中のhrは指定できます。 また div.section hr:last-child{} とか・・・ いちいちclass名を書くことはありません。必ず文書構造から特定できるはずです。(HTMLがちゃんと書けていたら)
お礼
丁寧な回答をありがとうございます。 順序立てて説明して頂くことで、スッと納得できました。 見事にIEの罠にはまっておりました・・・。 また、class名に関するご指摘もありがとうございます。 html、cssともに解りやすい文書を書けるようにしたいと思っているので 今後そのあたりも勉強していきたいと思います。 ありがとうございました。