css - 将图像扩展到其包含的 div 下方

标签 css html dom

我有一个位于 div 中的图像。它按预期显示在 div 中。当margin-top添加后,此 div 的背景向下延伸。我不想有这种行为。我该如何更改?

我的代码如下:

<div id="content">
  <div class="page">
    <div class="half">
      <p>Text goes here.</p>
    </div>
    <div class="half">
      <img src="imghere.png" alt="img" />
    </div>
  </div>
</div>

CSS

.page {
  width:500px;
  margin:0 auto;
  padding: 5px;
}
.half {
  display:inline-block;
  width:44%;
  margin:0 2%;
}

这确保了带有 <p> 的列标签位于屏幕左侧,带有图像的列位于右侧,它会随着您调整窗口大小时调整大小 :)。

我怎样才能让这个网页从

-----div-----------
Text    Image
-----/div-----------

-----div------------
Text
--/div--Image----

说明我想要什么的图片:

enter image description here

最佳答案

编辑:

我最初跳过了您在问题中提供了一些 HTML 和 CSS 的事实,所以在我最初的回答中我只是放弃了提供的图像。查看您提供的 HTML 和 CSS,要获得所需的结果,您唯一需要做的就是在 img 标记的 CSS 中设置一个负底边距。这是一个 jsFiddle 使用您的原始标记,对 CSS 唯一重要的补充是在 img 标签上设置负底部边距。

这样做的额外好处是图像将保留在所需的位置(略微扩展到包含它的 div 下方),即使在向段落添加更多行文本时( p) 更改包含元素 (.page div) 的高度。

CSS

.page {
    width:500px;
    margin:0 auto;
    padding: 5px;
    width: 100%;
    background-color: #ED1C24;
    border-top: 3px solid black;
    border-bottom: 3px solid black;
    text-align: center;
}
.half {
    display:inline-block;
    width:44%;
    margin:0 2%;
}
img {
    margin-bottom:-50px;
}

原答案:

您可以将图像放置在文本下方,使图像 float ,然后在图像上设置负的上边距,使其缩回包含文本的元素。这样,图像将保持在正确的位置,即使添加更多文本行会改变包含元素的高度。

这是一个 jsFiddle

HTML

<p>Text
    <br/>Text
    <br/>Text
    <br/>Text
    <br/>Text
    <br/>Text
    <br/>Text
    <br/>Text
    <br/>
    <img />
</p>

CSS

p {
    width: 100%;
    background-color: #ED1C24;
    border-top: 3px solid black;
    border-bottom: 3px solid black;
    text-align: center;
}
img {
    width: 100px;
    height: 100px;
    background-color: yellow;
    border: 3px solid black;
    float: right;
    margin: -70px 100px;
}

关于css - 将图像扩展到其包含的 div 下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16803710/

相关文章:

html - 隐藏 <img src> 并在顶部显示背景图像不起作用

html - 一起显示内联的文本和图像

javascript - 单击按钮时的新输入

html - 坚持简单的 Html Dom 和提取信息

javascript - 在 ie8 中强制 dom 重新渲染

javascript - 捕获所有动态表单提交

css - 有没有办法使用 Assets 管道拆分 CSS?

html - 两个之间的一个 div,两边的两个都需要碰到浏览器的边缘

c# - 在类下的 CSS 中显示背景图像

html - 如何强制 dotnetnuke 渲染到 IE9 中