CSSでborderの指定を解除する方法

このQ&Aのポイント
  • CSSでborderの指定を解除する方法についてお聞きします。具体的には、左のボーダーを「線をなしにする」という指定方法についてです。
  • 自分で調べてみましたが、指定を解除する際には、border-left: none; と記述するだけで十分なようです。必要ないように思われますが、古いブラウザとの互換性を考えると0を記述することもあるかもしれません。
  • 詳しい方に教えていただきたいです。
回答を見る
  • ベストアンサー

CSSでborderの指定を解除する記述方法

CSSでborderの指定を解除する記述方法 たとえば、見出しなどで上下右だけ罫線がほしいとき、 h3 {border: 1px solid black; border-left: none;} のように上下左右ボーダーを指定しておいて、左だけ指定を解除したいです。 このときの左のボーダーを「線をなしにする」という指定方法についてお聞きします。 border-left: none 0; と、0を入れている記述を見つけたのですが、必要なのでしょうか? 自分でも調べてみましたが、「noneと記述するだけで強制的に太さはなしになるため、0は必要ない」という意見と、0を記述しているソースとあり、どちらがベターなのかわかりません。 古いブラウザとの互換で0が必要なのかな…、と調べてみましたが、はっきりわかりませんでした。 詳しい方、お教えくださると大変助かります。 どうぞよろしくお願いします。

noname#137316
noname#137316
  • HTML
  • 回答数1
  • ありがとう数3

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

>「noneと記述するだけで強制的に太さはなしになるため、0は必要ない」という意見と、0を記述しているソースとあり、 ??仕様書確認しましたか? ネットで聞いたって、その多くは伝聞や孫引きで、確実なものを探すのは「藁のなかの針を探す」ようなものです。 【引用】____________ここから none ボーダーを無しにする。 この値を指定すると'border-width'の算出値は強制的に'0'になる。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[8.5.3 ボーダーの種類(Border style: 'border-top-style', 'border-right-style', 'border-bottom-style', 'border-left-style', and 'border-style')( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/box.html#border-style-properties )]より 【引用】____________ここから 'border'は簡略化プロパティで、ボックス四辺のボーダーを同じ幅、色、種類に設定する。 'margin'や'padding'とは異なり、'border'プロパティは四辺のボーダーに別々の値を設定できない。 そうしたい場合は、ボーダーに関する他のプロパティを用いる必要が。 ・・・【中略】・・・ ボーダーのプロパティは機能が重複しているので、規則を指定する順序が重要になる。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[8.5.4 ボーダーの簡略化プロパティ(Border shorthand properties: 'border-top', 'border-bottom', 'border-right', 'border-left', and 'border')( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/box.html#border-shorthand-properties )]より よって h3 {  border: 1px solid black;  border-left: none; } でも h3{  border-color: black;  border-style:solid;  border-width: 1px 0px 1px 1px; } でも、 h3 {  border: 1px solid black;  border-left-width: 0px; } でも h3 {  border: 1px solid black;  border-left-style: none; } でも良い。 大きなCSSになるとデザインと色を分けることもしばしばなので design.css h2,h3,h4{  border-style:solid;  border-width: 1px 0px 1px 1px; } color.css h2{  border-color:red; } h3{  border-color: blue; } と分けて、可能な限り重複したプロパティの記述を減らすことが多いですね。 【参考サイト】 REC-CSS2 邦訳   http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/cover.html

noname#137316
質問者

お礼

ご回答ありがとうございます。 お恥ずかしい、仕様書を当たるべきだったんですね。 基本的なことだったとは思いますが、わたしにはとても勉強になりました。 事例も大変丁寧に書いてくださり、本当に勉強になりました。 ありがとうございました。

関連するQ&A

  • 上下だけのボーダーなのに左に意図しないボーダー発生

    . hrタグの上下にボーダーを以下のようにして入れたのですが、親要素に沿って左側に<hr>の高さ分のボーダーができてしまいました。とりあえず border-left: none; で消したのですが、左に出た意図しないボーダーは何が原因なのでしょうか? hr { height: 30px; border-top:2px solid gray; border-bottom:2px solid gray; } .

    • ベストアンサー
    • CSS
  • CSSのショートハンドの記述ルールについて

    ショートハンドの記述方法について疑問が出たので質問します。 XHTMLのTransitionalで宣言しているファイルでの話です。 ex1 { border: #000000 1px; border-style: solid none; } ex2 { border-style: solid none; border: #000000 1px; } これをそれぞれ適当なボックスに指定すると、ex1は上下に線が、ex2はIE7で確認したところex1と同じ挙動でしたが、FirefoxやOperaでは全く線が表示されませんでした。 恐らくデフォルトのnoneがex2の場合は上書きされるのだろうということでこれは解決したのですが、ショートハンドの記述ルールに対して不安が出てきました。 どこか明確に記述してあるサイトはないかと探してみたのですが、どうにも自力では見つけることが出来ず、自分の記述に自信がもてずにいます。 ・ex1と同じ見た目のものを作成したい時、自分(回答者様)ならどう記述するか ・そう記述する根拠 を教えて頂ければと思います。 また、ショートハンドのルールについて詳しく解説しているサイトをもしご存知でしたら、教えて頂ければ幸いです。 よろしくお願いします。

    • ベストアンサー
    • CSS
  • オンマウスにしたときのborder-colorの指定(CSS)

    スタイルシートで立体的に見せるボタンを作成しています。 .menu05 ul { list-style-type: none; line-height: 170%; } .menu05 li { border-top: solid 2px #ffffff; border-right: solid 2px #c0c0c0; border-bottom: solid 2px #c0c0c0; border-left: solid 2px #ffffff; display: block; float: left; } .menu05 a:hover { border-top: solid 2px #c0c0c0; border-right: solid 2px #c6c6c6; border-bottom: solid 2px #c6c6c6; border-left: solid 2px #c0c0c0; color:#ff0000; display: block; } で、 HTMLの記述は、 <div class="menu05"> <ul><li><a href="#">ご案内</a> <li><a href="#">プラン</a> <li><a href="#">プレゼント</a></ul> </div> です。 オンマウスにしてもborder-colorが変わりませんが、どこを修正したらよいでしょうか?

    • ベストアンサー
    • HTML
  • Cssで

    次のようなHTMLとCssを作成し、見出しを表示しようとしています。 1つ目の見出しと2つ目の見出しは全く違うものにしたいので、2つ目の見出しにはh2にクラス名を指定しています。 しかし2つ目の見出しは1つ目の見出しの属性を引き継いでいるようで、 border-left: 5px solid #0086b9;などは有効になり2つ目の見出しでも左側に線が表示されてしまいます。 1つ目のcssの情報を完全に消した後、2つ目の見出しを表示する方法をご教授下さい。 ▼HTML <h2>見出し2</h2> <h2 class="sample1">見出し2</h2> ■Css h2 { font-size: 145%; margin-top: 10px; margin-bottom: 10px; padding-left: 10px; border-left: 5px solid #0086b9; border-right: 1px solid #0086b9; border-top: 1px solid #0086b9; border-bottom: 1px solid #0086b9; line-height: 1.4; background-color:#F7F7EF; } h2.sample1{ border-right:solid 2px #808080; border-bottom:solid 2px #808080; background-color:#c0c0c0; padding-top:3px;padding-left:3px; width:300px; }

  • CSSでborderの長さを指定、または可変にしたい。

    下記のように指定していますが、これだと横幅いっぱいに下の線が表示されてしまいます。 文字なりの長さ、または指定のピクセル数にしたいのですが、どのようにしたらよいでしょうか。 h3{ border-width : 0px 0px 1px 5px; border-style : solid ; border-color : #FF3333; padding-left : 5px; }

    • ベストアンサー
    • HTML
  • HTMLでCSSでボーダーが表示されません。

    HTMLでCSSでボーダーが表示されません。 右サイドバー(right)の左にボーダーを表示させたいのですが、 画像のように文字を記述したところまでしかボーダーが表示されません。 ボーダーをfooterの上まで引きたいのですが、 わかる方いらっしゃいましたら回答宜しくお願い致します。 ■HTML <html> <body> <div id="wrapper"> <div id="header"></div> <div id="container"> <div id="left"></div> <div id="right"> <div id="right_title"></div> <div id="right_content"></div> </div> </div> <div id="footer"></div> </div> </body> </html> ■CSS #right { float: left; height: auto; } #right_title { } #right_content { border-left-width: 1px; border-left-style: solid; border-left-color: #000; }

    • ベストアンサー
    • HTML
  • CSSで枠線の太さを変えるとき

    CSSでlistタグを使ってナビゲーションを作る練習をしています。 CSSで以下のように書いた場合、a:hover時の動作として、上の枠線のみが1pxから5pxに変わります。しかし、この方法だと、【上の枠線の下】が5pxとなり、その分、入力してある文字が下にずれます。 そこで、ずれないように、【上の枠線の上】に5px増やすにはどうすればいいでしょうか。 あるいは、そのように見せるための方法がありますか。画像は使用しないで作りたいです。 よろしくお願いします(CSSは初心者程度のレベルです)。 ================================================== ul{ list-style-type:none; } a{ text-decoration:none; } li a{ border-top-style:solid; border-right-style:solid; border-bottom-style:solid; border-left-style:solid; border-top-width:1px; border-right-width:1px; border-bottom-width:1px; border-left-width:1px; border-top-color:red; border-right-color:green; border-bottom-color:green; border-left-color:green; width:8em; } li a:hover{ border-top-style:solid; border-right-style:solid; border-bottom-style:solid; border-left-style:solid; border-top-width:5px; border-right-width:1px; border-bottom-width:1px; border-left-width:1px; border-top-color:red; border-right-color:green; border-bottom-color:green; border-left-color:green; width:8em; } ==================================================

    • ベストアンサー
    • CSS
  • テキストをボーダーで囲むCSS

    CSSを本を見ながらやっていますが、 下記の例文でテキストをボーダーで囲むものをやってみました。 この中で、 margin-left:100px; margin-right:100px; というころですが、これはブラウザに対しての両サイド空きを意味していると思うのですが、逆に囲んでいる幅のほうを指定するにはどうしたらよいのでしょうか。 または、そのようなことはできないのでしょうか。 <STYLE TYPE="text/css"> <!-- P.text {text-align:justify; text-justify:distribute; line-height:154%; margin-left:100px; margin-right:100px; border-style:solid; border-width:2px; border-color:#dd8888; padding:10px} --></STYLE> *****HTML <P CLASS="text"> テーブルみたいになるテキスト</P>

    • ベストアンサー
    • HTML
  • cssで枠の中に複数の罫線を引く方法

    よろしくお願いします。 枠を作成するためにcssに以下の記述をしました。 【css】 border-top:3px solid #339900; border-left:3px solid #339900; border-right:3px solid #339900; border-bottom:3px solid #339900; padding: 0px; background-color:#ffff00; これにより外枠のみに罫線が引かれましたが、枠の中に縦線や横線 その他、点線等を引く場合にはどのような記述をすれば良いのでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • CSS3の新しい書き方教えてください。

    ネットで見ていたところ以下の記述を見つけました。 どうやらCSS3の記述らしいのです。 border: 1px solid #333; -webkit-border-top-left-radius: 3px; -webkit-border-top-right-radius: 3px; -webkit-border-bottom-right-radius: 0px; -webkit-border-bottom-left-radius: 0px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -moz-border-radius-bottomright: 0px; -moz-border-radius-bottomleft: 0px; border-top-left-radius: 3px; という記述は何となく分かるのですが、その頭にある・・・。 -webkit- という記述は何を意味するのでしょうか?? -moz- もそうですね・・・。 先頭の、border: 1px solid #333; に付随する記述だよ!みたいな感じでしょうか? どなたかお分かりになる方いらっしゃいましたらアドバイスをお願いします。 また、何か参考になるサイトなどもご存知であれば、合わせてお教えいただけますと幸いです。 どうぞ、宜しくお願いします。

    • ベストアンサー
    • CSS