我想弄清楚如何摆脱包含<div>
标签的内部<img>
中的额外高度。我已经尝试过css重置,但据我所知,它没有完全重置。
在下面的HTML和CSS中,我有3个<img>
标签垂直堆叠,每个32px。我希望它们与包含它们的<div>
之间没有空间,我希望它的高度为96px。您可以在js fiddle中看到<img>
标记之间有空格,内部div的高度为&gt; 100px的。
更新链接的可能重复的帖子可以很好地解释发生了什么:
默认情况下,图像以内嵌方式呈现,就像字母一样。它坐在 a,b,c和d所在的同一条线。那条线下方有空间 对于你在f,j,p和q等字母上找到的下降器。您可以 调整图像的垂直对齐以将其定位在其他位置。
然而,调整vertical-align: top
并没有完全解决问题,因为还有额外的高度。在我的情况下,有必要设置line-height:0
以完全删除所有额外的高度。
HTML:
<div class="ss-buttons">
<div class="outer">
<div class="inner">
<a><img src="http://www.static.mseifert.com/img-common/blank.gif" class="ss-zoom sprite-32"></a>
<a><img src="http://www.static.mseifert.com/img-common/blank.gif" class="ss-zoom sprite-32"></a>
<a><img src="http://www.static.mseifert.com/img-common/blank.gif" class="ss-zoom sprite-32"></a>
</div>
</div>
</div>
CSS
html,
body {
min-width: 100%;
height: initial;
}
body {
line-height: 1;
}
html,
body,
div,
span,
a,
img,
p,
pre {
border: 0;
padding: 0;
margin: 0;
}
img.sprite-32 {
display: inline-block;
width: 44px;
height: 32px;
z-index: 0;
}
.outer {
width: 44px;
display: inline-block;
position: relative;
height: 96px;
}
.inner {
width: 44px;
position: absolute;
display: inline-block;
left: 0px;
z-index: 2000;
top: 0px;
}
a {
display: inline-block;
height: 32px;
}
img.ss-zoom {
background: url(http://www.static.mseifert.com/img-common/slideshow-zoom-sprite.png) no-repeat 0px 0px scroll;
}
div.ss-buttons img {
border: none;
background-color: green;
}
答案 0 :(得分:1)
将line-height:0;
添加到 .inner
html,
body {
min-width: 100%;
height: initial;
}
body {
line-height: 1;
}
html,
body,
div,
span,
a,
img,
p,
pre {
border: 0;
padding: 0;
margin: 0;
}
img.sprite-32 {
display: inline-block;
width: 44px;
height: 32px;
z-index: 0;
}
.outer {
width: 44px;
display: inline-block;
position: relative;
height: 96px;
}
.inner {
width: 44px;
position: absolute;
display: inline-block;
left: 0px;
z-index: 2000;
top: 0px;
line-height: 0;
}
a {
display: inline-block;
height: 32px;
}
img.ss-zoom {
background: url(http://www.static.mseifert.com/img-common/slideshow-zoom-sprite.png) no-repeat 0px 0px scroll;
}
div.ss-buttons img {
border: none;
background-color: green;
}
<div class="ss-buttons">
<div class="outer">
<div class="inner">
<a><img src="http://www.static.mseifert.com/img-common/blank.gif" class="ss-zoom sprite-32"></a>
<a><img src="http://www.static.mseifert.com/img-common/blank.gif" class="ss-zoom sprite-32"></a>
<a><img src="http://www.static.mseifert.com/img-common/blank.gif" class="ss-zoom sprite-32"></a>
</div>
</div>
</div>
答案 1 :(得分:1)
将QApplication(int & argc, char ** argv)
添加到您的vertical-align: top;
元素CSS样式(a
)。这将使它们排成一行,没有间距。当您使用<a>
时,由于某种原因,CSS3将默认的inline-block
属性默认为vertical-align
,因此间距。如果您将baseline
更改为vertical-align
,则会删除您的间距问题。
这是top
元素样式的更新CSS代码段:
<a>
答案 2 :(得分:0)
只需在{css
中将float:left
添加到a
标记即可
a{
float:left;
}
你的CSS将是
html,
body {
min-width: 100%;
height: initial;
}
body {
line-height: 1;
}
html,
body,
div,
span,
a,
img,
p,
pre {
border: 0;
padding: 0;
margin: 0;
}
img.sprite-32 {
display: inline-block;
width: 44px;
height: 32px;
z-index: 0;
}
.outer {
width: 44px;
display: inline-block;
position: relative;
height: 96px;
}
.inner {
width: 44px;
position: absolute;
display: inline-block;
left: 0px;
z-index: 2000;
top: 0px;
}
a {
display: inline-block;
height: 32px;
}
img.ss-zoom {
background: url(http://www.static.mseifert.com/img-common/slideshow-zoom-sprite.png) no-repeat 0px 0px scroll;
}
div.ss-buttons img {
border: none;
background-color: green;
}
a{
float:left;
}