当我们在<img>
内使用<p><img style="float:left">dummy text dummy text dummy text dummy text</p>
时,我们如何在图片的右下角保留相同的边距?
答案 0 :(得分:32)
使用属性 vertical-align:bottom; 要成像,那么底部的额外空间将被删除。
答案 1 :(得分:2)
您的图像似乎超出了行高设置5px。这就是你获得这个多余空间的原因。
您只能在此图片上尝试负底边距,但文字可能过于接近。所需的负余量等于多余像素(在此图像的情况下,它是5px)。
然而,您可以将图像包装在容器DIV中,这些容器DIV具有精确的行高多个高度。并且还在其上设置overflow: hidden;
。但我建议您将font-size
和line-height
设置为点(pt),以控制其值。
答案 2 :(得分:1)
解决方案应该是:
<style>
img{
float: left;
margin: 0 20px 20px 0;
background-color: #CCC;
}
p{
clear: left;
margin: 0px;
}
</style>
<p><img height="100" width="100" />dummy text dummy text dummy text dummy text</p>
<p>here some text</p>
你可以通过应用“clear:left;”清除浮动。到“p”之后的任何标签。 但是,我更喜欢下面的解决方案(它也解决了“p”标签的包含问题):
<style>
img{
float: left;
margin: 0 20px 20px 0;
background-color: #CCC;
}
p{
margin: 0px;
}
div.clearer{
clear: left;
}
#container{
width: 300px;
border: 1px solid #CCC;
}
</style>
<div id="container">
<img height="100" width="100" />
<p>dummy text dummy text dummy text dummy text</p>
<div class="clearer"></div>
</div>
<p>here some text</p>
编辑:即使您的示例,我的建议也是一样的(但是,在此示例中,您可以删除应用于“p”标记的“clear:left”,您可以'使用我建议的第二种方法)!标签“p”和“img”的行为,在这个例子中,它是正常的......我试着解释一下:
如果将段落的行高设置为20px(字体大小&lt; 20px),并将img(高度为20的倍数)的边距(底部和右侧)设置为20px,则该行如果在img下面没有至少40px(20px margin-bottom + 20px line-height),则img底部被迫向右分割!这是正常的,因为没有足够的空间容纳20px高的线!
因此,您可以选择或将边距设置为小于20px的值或减小线高!
答案 3 :(得分:1)
好的,看了一下页面后,这不是边距问题,而是你的字体没有任何空间包括在下一行。
尝试更改字体大小,您会看到此边距有时会减少,有时会增加。
答案 4 :(得分:1)
这是因为它肯定是内联内容。如果要保持内容内联但删除间距,只需添加:
line-height: 0;
答案 5 :(得分:0)
来自:http://bytes.com/topic/html-css/answers/789019-img-bottom-margin-mystery
这是因为imgs显示:inline,所以它们像文本一样位于基线上,下方有一些空间用于下行。
制作img display:block。
答案 6 :(得分:0)
我也遇到了这个问题,我将<img>
- 标记放在<div>
中,并将line-height
属性设置为0
,从而解决了这个问题。
这是jsfiddle.net example
请注意图像与其下方<hr>
之间没有空格。
这不起作用如果 你需要将图像放在文本的中间,因为图像将是它自己的行,前面有文字在上一行,以及在下一行之后的文本,如here。
答案 7 :(得分:-1)
也许:
<style>
p img {
margin: 0px;
}
</style>