将元素浮动到其容器的右上角

  • 本文关键字:右上角 元素 html css
  • 更新时间 :
  • 英文 :


我有一个无法编辑的HTML文件。

<section>
  <h2>Section heading</h2>
  <p>Paragraph text</p>
  <img src="image.jpg" />
</section>

设计要求照片位于该部分的右上角,如果图像是该部分的顶部子图像,这很容易。不幸的是,所提供的HTML中的图像正好位于HTML部分的底部,因此简单地向右浮动是行不通的。通过一点工作,我发现了如何在用另一个浮动元素伪造流的同时,将div绝对定位在页面流中。

* {
  box-sizing: border-box;
}
section {
  position: relative;
  outline: 1px solid #CCC;
}
div {
  display: inline-block;
  width: 140px;
  height: 140px;
  background-color: green;
  border-radius: 100px;
  position: absolute;
  top: 0;
  right: 0;
}
h2::before {
  content: "";
  display: inline-block;
  float: right;
  width: 150px;
  height: 150px;
  outline: 1px solid red;
}
h2 {
  outline: 1px solid blue;
}

请参阅https://jsfiddle.net/tnxhy0po/3/

  • Div-用它来展示小提琴中的图像
  • 红色轮廓-右浮动::在的pesudo元素之前标头
  • 蓝色轮廓-页眉轮廓
  • 银色轮廓-剖面大纲

现在来解决问题。标题中包含"会见业主,Julie",Julie应该在单独的一行。如果我限制了页眉的宽度,那么浮动的间隔元素就会包含在页眉的宽度中,这意味着它下面的文本不会流到图像中。

请参阅https://jsfiddle.net/s7eke1gy/16/

我不知道如何使图像浮动在该部分的右上角。把它放在那里很容易,但让它成为流程的一部分却不是。

或者,如果我能找到一些方法让"Julie"移动到下一行,那么当前的浮点+绝对位置解决方案就会起作用。

编辑:在测试时,我将节设置为最大宽度,但忘记删除它。节的宽度是动态的,因此是100%。我已经从这里和jsfiddles中的部分中删除了最大宽度属性。抱歉造成混乱!

如果我理解正确,你想把Julie放在另一行,让文本像上一样浮动https://jsfiddle.net/tnxhy0po/1/

您可以尝试在伪元素前后组合,使用:before包装h2(将Julie移到新的一行)和:在后面换行。

h2::before {
    content: "";
    display: inline-block;
    float: right;
    width: 150px;
    height: 25px;
    outline: 1px solid red;
}
h2::after {
    content: "";
    display: inline-block;
    float: right;
    width: 10px;
    height: 120px;
    outline: 1px solid red;
}

你可以在上看到结果https://jsfiddle.net/s7eke1gy/13/希望我能理解你,这能有所帮助。

最新更新