これは以前に何らかの形で尋ねられたことは確かですが、答えを見つけることができません。
ネストされたdivがいくつかあります
<div class="parent">
<div class="child">A</div>
</div>
そして子はdisplay:inline-blockとoverflow:hiddenを持っています
.parent{
background-color:red;
}
.child{
background-color:green;
display:inline-block;
overflow:hidden;
}
そしてそれはこのようにレンダリングされます:
親が子より5px高いことがわかります。
余分な高さはどこから来るのですか?
次にサンプルを示します。 http://jsfiddle.net/w8dfU/
編集:display:inline-blockまたはoverflow:hiddenを削除したくありません。これは問題を説明するための簡単な例ですが、実際のレイアウト私は両方が必要です。この余分な高さが表示される理由を理解したいだけです。それはこのようになるべきどこかで指定されていますか?他のCSS機能の結果ですか?
水平スライダーを作成するときにこの問題が発生しました。インラインブロック要素のvertical-align:topで修正しました。
ul {
overflow-x: scroll;
overflow-y:hidden;
white-space: nowrap;
-webkit-overflow-scrolling: touch;
}
ul&::-webkit-scrollbar {
display: none;
}
li {
display: inline-block;
vertical-align: top;
width: 75px;
padding-right: 20px;
margin:20px 0 0 0;
}
.child{
background-color:green;
display:inline-block;
overflow:hidden;
vertical-align: top;
}
この余分なスペースは、Childクラスのoverflow:hidden
からのものです。このプロパティを削除して確認し、overflow:hidden
プロパティを本当に使用したい場合は、子クラスに負のマージンを使用してください。この余分なスペースを削除できます。