看到这个jsFiddle ......
CSS:
a {display:inline-block;background:gold}
a > * {display:inline-block;margin:0}
p {width:auto;line-height:30px;background:yellowgreen}
div {width:30px;height:30px;background:orangered}
HTML:
<a>
<p>left</p>
<div></div>
</a>
现在,为什么将height:30px
设置为右边的div
会在左侧p
之上创建一个间隙?我该如何摆脱它?
我只希望容器a
高30像素,而不是更多。另外,我希望它的孩子排队。
答案 0 :(得分:1)
一个简单的a > * {float:left}
解决了我的问题......
a {display:inline-block;background:gold}
a > * {margin:0;float:left}
p {line-height:30px;background:yellowgreen}
div {width:30px;height:30px;background:orangered}
答案 1 :(得分:-1)
也许这可以解决问题:
p {
vertical-align:top;
}
答案 2 :(得分:-1)
因为<p>
和<div>
都是内嵌元素,所以它们与基线对齐。
对于<div>
,它没有文字,因此它的基础是它的基线。
对于<p>
,其基数将是垂直居中文字的基线。
有多种方法可以应用vertical-align
来覆盖默认对齐方式。