CSS にて padding の記述をしているのですが、IE と Firefox で padding の認識の仕方が違い困っております。
例えば、幅100px の枠に左右の padding を 10px 指定した場合、幅100px の内に 10px の padding を取るのが IE であり、幅100px の外側に改めて padding 10px 取る(最終的に幅が120pxになる)のが Firefox であるようにです。
CSS例
#header{float: left;
padding: 0 20;
width: 100;
height: 20;
text-align: right;}
このIE と Firefox の違いを解決する方法をご存知の方いらっしゃれば教えていただけないでしょうか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
FireFox向けのCSSはあまり書いていないので、
仕様の差についてははっきり分かりませんが、ブラウザによって解釈が異なるというのは以前からある問題です。
一般的な対処方法としては、jsやユーザーエージェントでブラウザを判別し、それぞれ別のCSSを読み込ませるというものが多いと思います。
参考URL:http://www.keynavi.net/ja/bugh/css_multi.html
No.7
- 回答日時:
widthとDOCTYPEの関係は皆さん解説されてるので割愛。
どうしてもDOCTYPEを現状のままにしたいのであれば、
<style>
#header{
width:100px;
(その他略)
}
</style>
<!--[if IE]>
<style>
#header{
width:120px;
}
</style>
<![endif]-->
という、IE専用の分岐(コンディショナルコメント)でIEのみスタイルを上書きするのも手かと思います。
<style>
#header{
width:100px;
(その他略)
_width:120px;
}
</style>
というアンダースコアをつけることでIEのみ上書きされる方法もありますが、IE7では使えなくなる(修正される)ようですので、
もし分岐させるなら、コンディショナルコメントをおすすめします。
この回答への補足
上記のような方法でとりあえず、IEとその他用でCSSを作成していますが…2重管理しないといけないのがやっぱり面倒ですよね。DOCTYPEを変更した方が良いのかな…。
補足日時:2006/07/28 18:26No.6
- 回答日時:
> 上記の宣言をしたら、デザインそのものが崩れてしまいました…。
あ、見落としてた…。
標準準拠モードでは各ブラウザ間の表示の差異がかなり少なくなりますが、その反面独自拡張などは利用できなくなります。
スクロールバーに色を付けるやつとかがそれに該当しますね。
選択肢は標準準拠モードで正常に表示できるデザインになるよう妥協するか、
諦めて互換表示モードで他の方法を使いレイアウトを調整するかのいずれかだと思います。
No.5
- 回答日時:
> 上記の宣言をしたら、デザインそのものが崩れてしまいました…。
今までのスタイルで適切なデザインになるように書かれていたのですから、仕方がないと思います。
「CSS標準準拠モードにして、他の記述を修正する」か「CSS標準準拠モードを諦めて、代替手段を使う」の二者択一なのではないでしょうか。
No.3
- 回答日時:
> 現在宣言しているのは
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> なんですが…。
後ろの URL を記述しなかった場合互換表示モード、URL を記述した場合標準準拠モードとなります。
省略するかしないかの違いでも極端に変わります。
互換モードの IE は padding を含めた数値を width の値として解釈し、
IE 以外のブラウザでは padding を含めない数値を width の値として解釈します。
この回答への補足
URLを指定した方が良いと思うのですが、なぜにデザインが大幅に崩れてしまうのが不明です…。
本にしたがってCSSによる段組をしているのですが…。
No.2
- 回答日時:
IE6以降のみの対応ですが、適切な!DOCTYPE宣言を行うことで、IEのCSS標準準拠モードを有効にすることができるようです。
詳しくは参考URLを参照してください。例えば、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
と宣言することで、Firefoxと同じような感じでpadding等の計算をやってくれるはずです。
!DOCTYPE宣言を使えないのであれば、かなり面倒ですがdivなどの「箱」にはpaddingを指定せず、内側のpなどの要素にmarginを指定するという手もあります。
参考URL:http://www.microsoft.com/japan/msdn/ie/ie60/csse …
この回答への補足
上記の宣言をしたら、デザインそのものが崩れてしまいました…。
現在宣言しているのは
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
なんですが…。
DIV内に指定できれば一番よいんですが…。
Pへの指定は奥の手として考えておきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- オープンソース cssで中央寄せ 1 2023/05/19 06:25
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS htmltとcssのコードで 1 2022/11/26 13:37
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
footer を横幅いっぱいに広げる...
-
表示倍率を変えるとレイアウト...
-
画像イメージの上下左右、欲し...
-
スクロールボックスを中央に配...
-
余分な縦スクロールバーが出て...
-
li 黒丸含んで移動する方法
-
【HTML&CSS】フッター下部の余...
-
テーブル内の画像をマウスオー...
-
IE9でa:hoverが効かない
-
Firefoxでheight:100%がきかない?
-
CSSのposition値の上書き(打消...
-
横のTableタグのヘッダを...
-
WEBサイト作成:初心者です...
-
画像だけを端に寄せる方法
-
ラジオボタンの大きさを変更し...
-
画像を中心に配置したい
-
HTML CSS の display: flex
-
CSSのdivのposition:relative;...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
画像イメージの上下左右、欲し...
-
CSS、width100%でもできる余白
-
CSSがなぜかfont-sizeだけ効か...
-
css初心者 フレックスボックス...
-
余分な縦スクロールバーが出て...
-
CSS:animation開始位置の設定
-
form input テキストを上下中央...
-
W3Cのソースコードの検証サービ...
-
スクロールボックスを中央に配...
-
CSSでボックスのheightが0になる
-
表示倍率を変えるとレイアウト...
-
【CSS】ヘッダーの高さが不明の...
-
Media Queries 4 で 非推奨とな...
-
div領域をウインドウサイズに合...
-
CSS(0の単位)について
-
divで囲まれたpaddingの指定を...
-
中点「・」の改行について
-
CSSで指定した背景画像にリンク...
おすすめ情報