私は#profile-gridと呼んでいるコンテナを持っていて、それを330px幅にします。それには、幅330ピクセルの画像と、幅330ピクセルの画像の下にインラインのリストがあり、1ピクセルの境界線があります。私はリストと画像がまったく同じ幅になるようにしたい。 IEでは完全に整列していますが、Chromeでは2pxが短すぎます。私は間違って何をしていますか? http://jsfiddle.net/ZPQUP/13/ボックスモデルの問題
答えて
問題は、タイトルが示唆しているように、箱型モデルです。
ボックスモデルを明示的に設定し、古いブラウザで動作させるには、ポリフィルを使用するのが最善です。 http://jsfiddle.net/mstauffer/ZPQUP/14/
基本的に、異なるボックスモデルはボーダーかどうかで異なり、パディングがに含まれています:http://paulirish.com/2012/box-sizing-border-box-ftw/
私は、これはここで更新フィドルにどのように見えるかを示してきました:ポール・アイリッシュは、問題と、ここで解決策を説明しますまたはを外部に追加すると、幅がになります。
DEMO:
HTML:
<div id="profile-grid">
<img src="http://a8.sphotos.ak.fbcdn.net/hphotos-ak-snc7/428132_268919676513976_100001878373747_678116_241912084_n.jpg"/>
<ul id="listed">
<li class="item"><a href="#"> Profile </a></li>
<li class="item"><a href="#"> About </a></li>
<li class="item"><a href="#"> Photos </a></li>
<li class="item"><a href="#"> Albumlist </a></li>
</ul>
</div>
はCSS:
#profile-grid {
height: 302px;
width: 330px;
}
#profile-grid img {
display: block;
width: 100%;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
#listed {
height: 50px;
border: 1px solid #ddd;
overflow: hidden;
}
li.item {
margin: 0px;
display: inline;
float: left;
height: 50px;
border-left: 1px solid #ddd;
display: inline;
}
#listed li a {
display: block;
font-family: "lucida grande",tahoma,verdana,arial,sans-serif;
font-size: 15px;
color: #123454;
line-height: 50px;
padding: 0px 15px 0;
text-align: center;
text-decoration: none;
vertical-align: baseline;
}
#listed li a:hover{
font-family: "lucida grande",tahoma,verdana,arial,sans-serif;
font-size: 15px;
color: white;
background-color: #123454;
text-align: center;
text-decoration: none;
}
NOTES:
<ul>
はブロック要素です。親の幅にかかわらず、それはそれと共に成長する。自動100%の一種。親に330pxを渡すと、330pxにもなります。ブロック要素が指定された幅を持たない限り、100%の幅には境界が含まれます。したがって、330pxの親がある場合、ブロック要素(この場合は
<ul>
)は、幅298pixel + 1px左境界+ 1px右境界になります。一方、幅を指定すると、カウント内の罫線、つまりオーバーフローが除外されます。画像にdisplay:block
とwidth:100%
を与えるも同じことを行いPLUSそれは、この問題を回避するには画像比率(とない任意の方法でそれをつぶし)
を保持し、それがあります同じ要素にwidth
とpadding
またはborder
を混ぜないと理想的です。あなたのケースでは
、あなたは、単に.listed
からwidth: 330px
を削除し、代わりに.listed ul
にそれを追加した場合、あなたは問題ないはずです。
#listed {
display: block;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
height: 50px;
overflow: hidden;
border: 1px solid #ddd;
}
#listed ul {
margin: 0px 0px 0px -1px;
padding: 0px 0px 0px 0px;
overflow: hidden;
width: 330px;
}
あなたdiv#listed
が330px幅のプラス境界の 1つのピクセル側のどちらかであります。それが「標準」ボックスモデルの仕組みです。幅を各辺で1ピクセル(つまり298ピクセル)小さくし、すべてが整列します。
...良いブラウザで。古いバージョンのIEでは、問題が発生します。有効なDOCTYPEを使用すると解決されます。
- 1. doctype htmlの薄いイメージのボックスモデルの問題?
- 2. Androidのボックスモデル
- 3. インターネットエクスプローラ6ボックスモデル
- 4. IE5ボックスモデルと比べてW3Cボックスモデルの利点は何ですか?
- 5. Internet Explorerのボックスモデル - オフセットは何ですか?
- 6. HTML/CSSのボックスモデル構造、中心とスタッフ
- 7. CSSボックスモデル属性注文規約
- 8. HTMLボックスモデルが正しくない
- 9. Javaの問題の時間制限は、問題をコーディング問題
- 10. テクスチャスケーリングの問題へのレンダリングの問題(?)
- 11. Djangoの問題:選択フィールドの問題
- 12. リンクの問題DirectX:リンカーの問題
- 13. jQuery Lavalampのアクティブな問題の問題
- 14. データバインドの問題リストボックスの問題
- 15. cufonキャンバスの問題の問題
- 16. MediaPlayerボリュームの問題 - AudioStreamの問題
- 17. 問題を渡す問題
- 18. HTMLの "ボタン"は他のものと同じボックスモデルですか?
- 19. アプリケーションの問題、データベースの問題、またはハードウェアの問題の特定
- 20. テーブル内のインラインブロック要素とブロック要素のボックスモデルtd
- 21. IE8とFirefox3のボックスモデルに違いはありますか?
- 22. フラッシュ四角形のボックスモデルとは何ですか?
- 23. UIViewタッチの問題/質問
- 24. SQL問合せの問題
- 25. スライドパネルボタンの問題
- 26. UIPageControlの問題
- 27. RDPSND.DLLの問題
- 28. WATIJの問題
- 29. itextsharpの問題
- 30. プログレスバーの問題
は、この黒い「ストライプ」が右側にある画像ですか? – Joseph