css - 在图像周围用边距环绕文本

标签 css

有没有办法用 float: 对图像周围带有边框和边距的 div 中包装文本?
到目前为止,我能做的最好的事情就是让文本正确环绕图像,但边框最终位于图像后面。

编辑

这是我能够得到的截图: http://www.tiikoni.com/tis/view/?id=6753a19

如您所见,当我试图让它到达图像边界时停止时,边界最终位于图像后面。

代码是:

<img src='images/mangos.jpeg' width='500px' style='float: right; border: 2px solid $theme; padding: 5px; margin: 0 5px 5px 5px;'>
<div style='font-size: 19px; white-space: pre-wrap; border: 2px solid #F6B616; padding: 5px; margin: 5px;'>
Text Here
</div>

编辑 2

抱歉,问题不是很清楚。我所追求的实际上是文本和图像边框之间的一个小间隙。文本及其边框需要环绕图像及其边框。有什么办法可以实现吗?

最佳答案

您所看到的实际上是完全正常的。想象一下你的文本会变得比图像高,真正的换行会使文本在图像下方继续,而不仅仅是在图像左侧的单个列中。毕竟这就是 float 的全部目的(尽管它经常以各种方式被滥用)。像这样:

      +------+---+            +------+---+
      |text  |img|            |text  |img|
THIS: |text  +---+  NOT THIS: |text  +---+
      |text text |            |text  |
      +----------+            +------+

不过,假设您的背景是纯色,您的用例可以很容易地解决。您可以遮住您在图像后面看到的文本边框。像这样:

<img src='path/to/image'>
<p>Lorem ipsum...</p>


img {
    float: right;
    box-shadow: 0 0 0 5px #FFFFFF, 0 0 0 7px #F6B616;
    margin: 7px 5px 5px 13px;
    width: 250px;
}
p {
    font-size: 19px;
    white-space: pre-wrap;
    border: 2px solid #F6B616;
    padding: 5px;
    margin: 5px;
}

作为you can see我在图像中添加了一个双框阴影,模仿了 5 像素边距的边框效果。最大的区别是这个阴影的白色形式会掩盖文本的底层边框,从而产生您想要的效果。

还有其他技术,例如使用伪元素(如果您有更复杂的背景,这可能会很有用),但我个人认为这种方法最适合您的用例。

关于css - 在图像周围用边距环绕文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29869409/

相关文章:

html - 根据高度排列列

javascript - 宽度相等的 Flex-wrap

html - 李没有高度

html - 无法设置图片大小。从 DIV 边框消失

html - 缩小时无法让页面显示全宽

html - 如何从选择下拉列表中删除滚动条

html - div col md 6中的不同内容彼此相等

javascript - 图像在 chrome 全屏中无法正确调整大小

javascript - 将击键 append 到 div JS

html - Bootstrap 在移动设备上的右拉左拉居中