• 締切済み

cssの記法について

サイトのCSSを見ていると、 padding: 0 15px; という表記を目にします。 padding:0px 15px;ならわかるのですが、このように記述するのはなぜなのでしょうか。 もう一つ、 .hoge:after { display: block; clear: both; content: ""; } こういうのをよく見ます。 divでcontainer代わりに使っている要素の後にこれを挿入しているイメージなのですが、 これはなぜ挿入されているのでしょうか。

  • HTML
  • 回答数2
  • ありがとう数0

みんなの回答

回答No.2

<style> .sample { padding: 0 15px; padding: 0px 15px; } </style> 書き方としてはどちらも正しいのですが、値が0のときは単位を省略できます。0pxよりも0のほうがシンプルで見やすく、またpxとキーボードを打つ手間も省け、さらにCSSのファイルサイズも小さくなります。単純に計算して、一文字あたり1バイトだからです。 ただし後から変更する可能性がある場合、たとえば0pxになったり10pxになったり20pxになったりする場合は、0pxと書いておいたほうが変更しやすいです。そういう意味では、CSSの文脈や記述する人の好みによって記述が分かれやすい部分でもあります。 もうひとつのご質問は、いわゆるfloatの解除です。たとえば、下のようなCSSとHTMLがあったとします。 <style> .container:after { content: ''; clear: both; display: block; } .container li { float: left; } </style> <ol class="container"> <li>あ</li> <li>い</li> <li>う</li> </ol> <li>にfloatがかかっているため、<li>タグが横並びになりますね。この横並びを解除して元に戻すのがclearで、floatしている要素の親に指定します。つまり、<li>の親である<ol>に対してclearすると、その時点で横並びが解除されるというわけです。clearのほとんどがcontainer要素の後に挿入されているというのは、こういう理由からです。子要素のfloatを、親containerの後に挿入されたclearで解除しているのです。 このclearを書き忘れると表示が崩れやすいので、注意が必要です。《clearfix》というキーワードで検索すると、より詳しく説明しているサイトが見つかるかと思います。基本的には、《content: ''; clear: both; display: block;》の三点セットに、:afterを組みあわせて使うのがコツです。

参考URL:
http://htmq.com/style/clear.shtml
回答No.1

clear http://stinkear.blog39.fc2.com/blog-entry-3.html float解除の1つの方法だと思います。 0の場合のみ単位は省略できる(らしいです) https://w3g.jp/css/guide/units わたしも0pxと書く派です

関連するQ&A

  • CSSでの背景色の出し方でつまりました。

    独学で学んでいる初心者です。 HTML <link rel="stylesheet" href="hp.css" type="text/css"> <div id="container"> <div id="header">ヘッダー</div> <div id="main">メイン</div>       <div id="sidebar">サイドバー</div> <div id="footer">フッター</div> </div> CSS #container{ width:940px; overflow:hidden; } #main{ width:620px; float:left; color:black; } #sidebar{ width:320px; float:right; background:green; } #footer{ clear:both color:red; } 簡単なものにしてみても出なかったので、 なぜ出ないのか教えていただければと思います。 ブラウザはオペラです。 サイドバーのグリーンしかつきません。 過去の似たような質問をいくつかみて overflow:hidden; や .clearfix:after { content: ""; display: block; clear: both; } を入れてみてもダメでした。 お願い致します。

    • ベストアンサー
    • CSS
  • floatを使って画像にテキストを回り込ませて解除する時

    floatを使って画像にテキストを回り込ませて解除する時 clear:both;などを使うけど、テキストの量が少ないと上手く解除されないですよね。そのとき、下記のようなCSSを書くのですが、これだとMacのIEではうまいこと解除できていません。 どう書いたら良いでしょうか? 【HTML】 <div class="box"> <img> <p>テキスト</p> </div> 【CSS】 div.box { zoom: 100%; background-color: #CCC; padding: 10px; width: 500px; } div.box:after { content: " "; clear: both; height: 0; display: block; visibility: hidden; } div img { float: left; }

    • 締切済み
    • CSS
  • 【css】floatを指定するとはみ出します

    ブロック要素をfioatで横並びにした際に、画像とテキストが全体を囲っている要素(親要素)からはみ出すことが多々あります。 その度に高さを指定して回避しているのですが、こちらはその他に回避の方法というのはあるのでしょうか? それとも、自分の記述がおかしいのでしょうか? 例えば下記の例です。 こちらは左に画像、右にタイトルとコメントが入ります。 <div class="aaa"> <div class="left"><img src="photo.jpg" width="180" height="120"></div> <div class="right"> <h3 class="title">タイトルです</h3> <div class="comment">コメントです</div> </div> </div> //////////////////////////////////// .aaa{ margin-bottom: 5px; padding-top: 7px; padding-right: 10px; padding-bottom: 7px; padding-left: 10px; clear: both; } .left{ float: left; height: 120px; width: 180px; } .right{ float: left; padding-left: 10px; width: 380px; } .title{ font-size: 90%; line-height: 120%; padding-right: 10px; padding-left: 10px; width: 360px; padding-top: 3px; padding-bottom: 1px; clear: both; } .comment{ font-size: 80%; line-height: 120%; padding: 5px; clear: both; }

  • CSS記述。

    ようやくcssを理解してきた若輩者です。 お世話になります。 どーしても、下記のdiv要素が中央に配置できません。。。 どなたか詳しい方、正解をお願いします~~。 margin: 0 auto; で記述しても中央にならず 例えば、margin-left: 100pxとかにすると 左から100pxは動きます。 .ngg-galleryoverview { overflow: hidden; margin-top: 10px; margin:0 auto; width: 945px; clear:both; display:block !important; } .ngg-galleryoverview .desc { /* required for description */ margin:0px 10px 10px 0px; padding:5px; }

    • ベストアンサー
    • CSS
  • 100%ボックス・フッタ固定、IE6だけ左寄り…

    いつもお世話になっています。 画像のような構成で、100%ボックスの下にフッターを付けたページ なのですが、IE6だと左寄せになってしまいます。 いろんなCSS解説のHPを渡り歩いてみたのですが、どこが悪いのか 分からず。 どうぞよろしくお願いします。 /*100%ボックスとフッター画面の下固定のためのCSS-------------*/ html{ height: 100%; } body{ background-image: url(../common/bg.gif); height: 100%; text-align: center;/*ie6 centering*/ } * html div#container{ height: 100%; } div#container{ width: 800px; margin: 0 auto; background-color: #FFFFFF; position: relative; min-height: 100%;   text-align: left;/*ie6 centering*/ } body > #container { height: auto; } div#main{ padding: 0 0 60px 0; } div#main:after { content: ""; display: block; clear: both; height: 1px; overflow: hidden; } /*\*/ * html #container { height: 1em; overflow: visible; } /**/ /*フッター---------------------------------------*/ #footer{ clear:both; background-color:#4682B4; position:absolute; bottom:0px; height:30px; width:100%; text-align:center; line-height:30px; font-size:80%; color:#FFFFFF; }

    • ベストアンサー
    • HTML
  • table内のCSS制御

    cgi等で自動生成するテキストが表示されるtableタグをCSSで成形しようとするのですが、長いテキストの時に2行にするにはどのようにしたらよいのでしょうか。 ご教授いただけますとたすかります。 または、一番希望しているのは、難しいかもしれませんが、tableの幅をオーバーするテキストが生成されたとき自動的にその部分を表示しないことがよいのです。例えば 「あいうえおあいう・・・・」 というイメージです。 現在作ってみたCSSは、下記になります。 clear:both; と position:relative; は、外してみたり いろいろ試してみました。 また、.whatsnew_block もコメントアウトしてましたが 出来ませんでした。 ------------ div#contents .whatsnew_block { clear:both; margin:0px 0px 20px 0px; } div#contents .table { clear:both; position:relative; width: 190px; margin:10px 0px 0px 0px; } div#contents .table td { padding:1px 5px 1px 5px; } div#contents .table td image { margin:0px 0px 0px 0px; }

  • CSSを使いたいのですが上手くいきません

    テーブル型のメニューを マウスオンで背景の色を変えたいのですが… CSSの解説HPを見たのですが、どこの記述に誤りがあるのか 恥ずかしながら分かりません。 お分かりになる方いらっしゃいましたら、ご教授お願い致します。 <html> <head> <meta Http-equiv="content-type" Content="text/html; charset=Shift_JIS"> <title>テスト</title> <style type="text/css"> <!-- container{ width:100px;} container ul{ margin:0; padding:0; list-style:none; border-top:1px solid #666666; border-left:1px solid #666666; font-size:small; line-height:150%; border-right:1px solid #666666;} container ul li{ margin:0; padding:0; display:inline;} container ul li a{ margin:0; padding:5px 0; width:180px; display:block; text-align:center; color:#000000; text-decoration:none; background:#CCCCCC; border-bottom:1px solid #666666;} container a:hover{ color:#FFFFFF; text-decoration:none; background:#666666;} --> </style> </head> <body> <div id="container"> <ul> <li><A Href="01.html" Title="test">test1</A></li> <li><A Href="02.html" Title="test">test2</A></li> </ul> </div> </body> </html>

  • 【CSS】clearとvisibilityについて

    【CSS】clearとvisibilityについて こんにちわ。いつもみなさまのご助言に大変感謝しております。 標記の件ですが、CSSの勉強をしていましたところ、いかのようなコードがあり、気になりました。 .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } この場合、クラス"clearfix"で括られているエリアの末端には「.」が入りますが、visibilityプロパティにより非表示とされることで文字通り画面上にはピリオドが 存在しない形式になっていますが、そもそもなんでこんなcontentプロパティやvisiblity プロパティを使っているのでしょうか。 .clearfix:after { display: block; height: 0; clear: both; } これだけだと何か不都合が生じるのでしょうか。

    • ベストアンサー
    • HTML
  • 初心者です 画像横に文字を入れたい css

    web制作を始めたばかりの初心者です。 画像右側に文字を入れたいのですが、うまくいきません。 本当にはじめたばかりでなんとなくcssの意味が分かりかけたところです。 どうぞご教示ください。 html <ul>     <li><a href="index.htm"><img src="画像"width=""height=""></a></li>     <div class="text">文字列</div> <li><a href="index.htm"><img src="画像" width=""height=""></a></li>    <div class="text">文字列</text> </ul> </div> css .site ul {margin: 0; padding: 0; list-style: none} .site li a {display: block; padding: 5px; font-size: 14px; text-decoration: none} .site li a img {border: none } .site a:after {content: ""; display: block; clear: both} .site img {float: left; width: 250px} .site .text {float: none; width: auto; margin-left: 60px; padding-left: 15px; color: #000000; font-size: 18px}

  • HTMLのCSS(float)の設定がよくわかりません

    HTMLのCSS(float)の設定がよくわかりません 画像のように各配置はうまく表示されているのですが footerのCSSを #footer { width: 100%; float: left; clear: both; } と表記するとwrapperのCSSで表記した外枠のボーダーが footerの前で切、footerの左横に1px~2pxの隙間が できてしまうのですが、その理由をわかる方いらっしゃいますか。 宜しくお願い致します。 footerの表記を #footer { width: 100%; clear: both; } とすると、ボーダーも1pxの隙間もなく正常に表示されます。 宜しくお願い致します。 ■HTML <html> <body> <div id="wrapper"> <div id="header"></div> <div id="container"> <div id="left"></div> <div id="right"></div> </div> <div id="footer"></div> </div> </body> </html> ■CSS #wrapper { width: 700px; border-right-width: 1px; border-left-width: 1px; border-right-style: solid; border-left-style: solid; border-right-color: #000; border-left-color: #000; } #container { overflow: hidden; } #left { float: left; } #right { float: left; } #footer { width: 100%; float: left; clear: both; } わかる方いらっしゃいましたら 宜しくお願い致します。

    • ベストアンサー
    • HTML