
CSSで
A
B C
D
という4つのカラムでレイアウトしたいので下記のようなCSSにしました。
------------------------------------------------
#A{
width:700px;
}
#B{
float:left;
padding-top: 15px;
width: 150px;
height: 100%;
}
#C{
float:right;
text-align: left;
width: 550px;
padding: 15px 50px 30px;
}
#D{
position:relative;
width:100%;
height:50px;
clear:both;
text-align:center;
}
------------------------------------------------
IEでは問題ないのですが、safariやFirefoxでは
A
B
C
D
となってしまい、BとCが並んでくれません。
Cはテキストのみなので画像等のサイズオーバーでカラム落ちしているわけではなさそうです(長いURLなどもありません)
Cのfloat:right;を消すと並んでくれるのですが、そうするとどういう訳かpaddingの指示が無視されてピッタリくっついてしまいます。
IEよりもsafariの方がCSSでは正しいそうなので何か間違っているのだと思うのですが、どなたかご教授ください。
No.1ベストアンサー
- 回答日時:
初めまして。
FireFoxやsafariなどの正規表現に忠実なブラウザでは
──────────────────────────
width(550px)+padding(50px)=実際に表示される横幅
──────────────────────────
となります。
つまり、#Aの横幅に対して#B+#Cの値の方が大きくなってしまっているので、結果として、収まらなかった#Cが下に追いやられてしまっている、という具合です。
対処法としては
──────────────────────────
<div style="横幅を指定">
<div style="余白を指定">内容物</div>
</div>
──────────────────────────
このように相性の悪いプロパティは、各要素に対して一つずつ指定する事で全てのブラウザに対応出来ます。
ありがとうございます。
widthとpaddingが足される物だとは知りませんでした。
無知でお恥ずかしい限りです。
<div style="横幅を指定">
<div style="余白を指定">内容物</div>
</div>
というのは…
一つのカラムに対して2つの指定をしてやるということなのでしょうか?

No.3
- 回答日時:
#2です。
> 一つのカラムに対して2つの指定をしてやるということなのでしょうか?
はい。そういうことです。
「width:550px;」の数値を変更せず「padding:15px 50px 30px;」を生かすために
こういう設定をしています。
[スタイルシートによる崩れない 2カラム 3カラム・レイアウト]
http://desperadoes.biz/style/dan/
上記のサイトがとても参考になりますので、もしよろしければどうぞ。
ありがとうございます。
ようやく意味がわかりました!
脱テーブルにチャレンジしてるのですがまだまだ壁は多そうです(^^;)
またなにかございましたらご教授ください。

No.2
- 回答日時:
No.1さんが書かれているように「padding: 15px 50px 30px;」の設定で崩れています。
http://www.htmq.com/style/padding.shtml
「上に15pxの余白、左右に50pxの余白、下に30pxの余白」と設定してしまうと
550pxだけでは足りなくなってしまうため、プラス「50px×2」を追加しないといけません。
(#Aの部分も700pxでは足りなくなり崩れてしまう原因になります。)
CSS記述例
*{margin:0; padding:0;}
#my_body{/* 画面を小さくしても崩れない設定 */
width:700px;
background-color:#ddd;/* 色はテストのためつけています */
}
#A{
width:100%;/* #my_bodyで700pxの設定をしているのでここでは100%で */
height:50px;/* 高さは任意 */
background-color:#ccb;/* 色はテストのためつけています */
}
#B{/* height:100%;は取っていますがつけてくださっても構いません */
float:left;
width:150px;
padding-top:15px;
}
#C{
float:left;
width:550px;
background-color:#ddd6bb;/* 色はテストのためつけています */
}
#C2{/* #Cで設定されていたpaddingと文字の左寄せをここで設定しています */
padding:15px 50px 30px;
text-align:left;
}
#D{
clear:both;
width:100%;
height:50px;/* 高さは任意 */
text-align:center;
padding:1em 0;/* 文字の位置は任意 */
background-color:#ccb;/* 色はテストのためつけています */
}
HTML記述例
<div id="my_body">
<div id="A"></div>
<div id="B">テキスト</div>
<div id="C">
<div id="C2">長いテキスト分</div>
</div>
<div id="D">テキスト</div>
</div>
で書きましたところ、IE6とFirefoxでは正確に表示されました。
ありがとうございます。
widthとpaddingが足される物だとは知りませんでした。
無知でお恥ずかしい限りです。
せっかく丁寧に教えてくださったのに
当方あまりに知識がないためこんぐらがってます(^^;)
#C
#C2
と2つあるのはのは…
一つのカラムに対して2つの指定をしてやるということなのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- オープンソース cssで中央寄せ 1 2023/05/19 06:25
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
初歩的かもしれませんが回り込...
-
htmlの文字が縦書きになる
-
CSSでテーブルを使わずにレイア...
-
スタイルシートでのメニュー作成で
-
背景画像で額縁のような表現を...
-
table周辺の隙間をなくしたい。
-
CSSについて。このサイトの背景...
-
borderについて2つの質問
-
div要素をセンタリング
-
段組でfloat:leftとfloat:right...
-
CSSでレシポンシブル対応にする...
-
【CSSについて】リストをフロー...
-
<li>の黒い点を消したい。
-
WinIE(5以降)で、ddタグをCSSで...
-
【スタイルシート?】同行内で...
-
"images/logo.png" のロゴマー...
-
css floatでdivがずれる
-
【HTML】【CSS】【Swiper】 元...
-
float: leftで横に並べたら、サ...
-
widthやheightの数値に単位(px...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
CSSがなぜかfont-sizeだけ効か...
-
form input テキストを上下中央...
-
【CSS】ヘッダーの高さが不明の...
-
画像イメージの上下左右、欲し...
-
css初心者 フレックスボックス...
-
余分な縦スクロールバーが出て...
-
W3Cのソースコードの検証サービ...
-
表示倍率を変えるとレイアウト...
-
safariでの横並びリスト(List...
-
<div>と<div>の間の10px程の...
-
border-style:solidで文字がずれる
-
入力フォームとセレクトボック...
-
div内に外部のurlを表示させたい
-
divの中にspanを右寄せにするに...
-
dl,dt,ddタグでdtに対して、row...
-
divで囲まれたpaddingの指定を...
-
footer を横幅いっぱいに広げる...
-
CSSで指定した背景画像にリンク...
おすすめ情報