【发布时间】:2021-03-15 13:53:12
【问题描述】:
这些位于position: relative; 父级内部/周围的position: absolute; div 接收来自所包含文本的大小和长度的高度/宽度。
但是,如果其中一个超出了相对父级的右边界,则其宽度似乎会被截断。
我怎样才能使超出相对父级右侧的 div 表现得像其他没有的 div,只使用 css?(应该适用于所有主要浏览器,包括 Edge 但不即)
Here is a fiddle,不过我也会复制下面的代码+截图:
HTML:
<div id="relative">
<div id="absolute-working-left">
My width and height are determined by my text content.
</div>
<div id="absolute-working-middle">
Mine, too.
</div>
<div id="absolute-problem">
But not me... I am a problem, because my width is truncated when I extend beyond the right side of my 'relative' parent. WHY???
</div>
</div>
...以及样式。请注意,我希望绝对 div 宽度在换行之前达到最大 200px。否则,宽度应由包含文本的长度决定:
#relative {
position: relative;
width: 100px;
height: 100px;
margin-left: 300px;
background-color: white;
}
#absolute-problem,
#absolute-working-left,
#absolute-working-middle {
position: absolute;
top: 45px;
font-size: 12px;
max-width: 200px;
}
#absolute-working-left {
background-color: lightblue;
left: -300px;
}
#absolute-working-middle {
background-color: lightgreen;
}
#absolute-problem {
background-color: red;
left: 80px;
}
在实现工具提示时出现此问题,当开发人员使用该工具提示时,需要将自身定位为 WRT 一个 offsetParent(或正文,如果其 DOM 分支中不存在前面的 offsetParent)。
编辑:如何仅使用 css 实现所需的行为?
该解决方案需要适用于所有主流浏览器,包括 Edge,但不适用于 IE。重申一下,绝对 div 的 width 无法预测,因为它应该由文本的长度决定......唯一的例外是会有一个 max-width(在这个例子中,它是200 像素)。
【问题讨论】:
-
检查这个Fiddle。是你想要的吗?
-
@MuhammadUsman 不幸的是,我无法预测文本内容的宽度,因此将宽度硬编码到样式中是行不通的。
标签: html css css-position