• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:<hr>要素を点線で表示した場合の表記について)

hr要素の点線表記について

このQ&Aのポイント
  • hr要素を点線で表示したい場合、指定方法によって表示が異なることがあります。
  • 一部のプラウザ(Firefoxなど)では、点線の下に薄いグレーが表示される場合があります。
  • 解決方法として、指定方法を変更し、colorプロパティに白色を設定することで問題を解消できます。

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.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がちゃんと書けていたら)

et-san
質問者

お礼

丁寧な回答をありがとうございます。 順序立てて説明して頂くことで、スッと納得できました。 見事にIEの罠にはまっておりました・・・。 また、class名に関するご指摘もありがとうございます。 html、cssともに解りやすい文書を書けるようにしたいと思っているので 今後そのあたりも勉強していきたいと思います。 ありがとうございました。

関連するQ&A