我有以下代码:http://jsfiddle.net/yxxhj33x/
如您所见,我有.links
元素,后跟input[type='text']
元素。不幸的是,输入上方有一个余量,当我添加时不会消失:
.links {
display: inline-block;
border: 1px solid black;
width: 100%;
font-size: 0;
white-space: nowrap;
overflow-x: auto;
}
.links a {
background: #FFF;
display: inline-block;
min-width: 100px;
width: 25%;
text-align: center;
border-right: 1px black solid;
height: 50px;
font-size: 16px;
}
<div class='links'>
<a href='#'>Blah</a>
<a href='#'>Blah</a>
<a href='#'>Blah</a>
<a href='#'>Blah</a>
</div>
<input type='text'>
input[type='text'] {
margin: 0;
}
我该如何解决这个问题?
答案 0 :(得分:2)
除了removing the space between inline elements之外,您还需要更改vertical-align
元素上.links
属性的值。值得指出的是默认值为baseline
。如果在内联元素上设置为baseline
,则会有reserved space for letters such as f, j, p and q(这些字母比其他字母更低(或更高),因此保留空格)。
.links {
display: inline-block;
border: 1px solid black;
width: 100%;
font-size: 0;
white-space: nowrap;
overflow-x: auto;
vertical-align: bottom; /* Added.. */
}
.links a {
box-sizing: border-box; /* Added.. */
}
值得指出的是,a
元素的宽度并未加起来100%
(因为边框未包含在元素的宽度计算中)。要删除scollbar,请将box-sizing: border-box
添加到锚元素。
作为旁注,由于您在父100%
元素上设置了.links
的宽度,因此它实际上不需要display
inline-block
}。您应该将其设为block
级元素(省略display: inline-block
,因为默认情况下它已经是div
和block
级别。这样做,您实际上不再需要添加vertical-align: bottom
,因为block
级别元素不尊重此属性。
.links {
border: 1px solid black;
font-size: 0;
white-space: nowrap;
overflow-x: auto;
}
.links a {
box-sizing: border-box;
}