我猜这两个属性实际上并不起作用,但我的情况是:
我正在尝试创建一个工具提示组件。我的工具提示是绝对定位的,因为我不知道内容的长度是多少,所以没有宽度。所以使用宽度相关的css,文本只是形成一个又高又瘦的列。我尝试了max-width
,但它本身没有任何作用。所以我决定尝试white-space: nowrap
,虽然它很好地没有 Package 文本,它似乎也没有以一种有用的方式荣誉max-width,文本反而超出了元素的边界。
我想不出如何解决我的问题,如果有一个干净的解决方案。我想有一个绝对定位的div,扩大到适合它的内容,直到最大值,在这一点上它 Package 。我看到的一个建议是使元素的flexbox,但从我可以告诉,这不是伟大的IE,所以我不认为是可行的,在我的情况。任何建议?
.wrapper {
position: relative;
display: inline;
}
.info {
position: absolute;
bottom: 1.2em;
left: 0;
}
<div class="wrapper">
<span>[ ? ]</span>
<div class="info">Any long text can go in here to test what goes wrong with wrapping.</div>
</div>
7条答案
按热度按时间uemypmqf1#
避免使用
white-space:nowrap
,因为这会将文本限制在一行。max-width
应该与具有display absolute的块级元素一起工作,而不是在inline元素中。为了解决这个问题,我将工具提示放在 Package 器块之外,并使用javascript将其定位在鼠标位置。这里有一个简单的解决方案。点击“打开工具提示”以显示工具提示,然后移动滑块以更改
max-width
的值。niwlg2el2#
我不太确定你的目标是什么,因为有很多矛盾的事情正在发生。但我会尝试,希望你能引导我走向你想要的解决方案:
https://jsfiddle.net/q7dyf6xh/
看看这个小提琴,你可以看到工具提示现在有一个最大宽度。看看我在使用什么:
display: run-in;
:根据上下文将元素显示为块或内嵌white-space: pre-line;
:空格序列将折叠成单个空格。必要时文本将换行,并在换行符处换行为了更好地理解事情是如何工作的,请看这里:
空白:如果使用nowrap,文本将永远不会换行到下一行。文本将继续在同一行,直到遇到标记!
这表示你的
max-width
仍然可以工作,但是使用nowrap你现在 overflow 了你的元素。尝试给予你的元素一个background-color
,你会发现它实际上只有你的max-width
定义的那么宽。看看它是如何溢出元素的:https://jsfiddle.net/fcnh1qeo/
现在宽度
overflow: hidden
只有你的框内的文本将被显示。其他一切都被切断!看这里:https://jsfiddle.net/0qn4wxkg/我现在使用的是
display: run-in;
和white-space: pre-line;
以及max-width: 200px
,希望它们能给予您提供所需的解决方案。不知道您使用它的上下文和代码与其说是答案,不如说是猜测。但也许我可以指导您找到适合您需求的解决方案干杯!
xriantvc3#
添加
min-width:100%
和white-space: nowrap;
mbzjlibv4#
display="runin"
元素生成一个插入框。插入元素的作用类似于内联或块,具体取决于周围的元素。即:如果插入框包含一个块框,则与block相同。如果插入框后面有一个块框,则插入框成为块框的第一个行内框。如果后面有一个行内框,则插入框成为块框。pre-line
折叠空格序列。行在换行符处、<br>
处断开,并根据需要填充行框。下表总结了各种white-space
值的行为:max-width
CSS属性设置元素的最大宽度。它防止使用的width属性值大于max-width.
指定的值}
yqkkidmi5#
并不是说我自己也有一个非常类似的问题。我用flexbox修复了它,这已经在这里的评论中建议了。
我的代码看起来像这样:
我也把它复制到了this fiddle中,以防你想看看。
wgx48brx6#
你是对的,这不起作用。
这里有一个解决方案,如果你被允许使用BR标签。我已经工作了很多次的工具提示,这是最好的解决方案,我有。
Codepen:https://codepen.io/btn-ninja/pen/JNJrgp
它的工作原理是使用css翻译的空白nowrap:
平移允许绝对定位的工具提示相对于内容水平或垂直居中。带BR的白色可实现长内容的换行,同时允许较短的工具提示与工具提示文本的宽度匹配。
以下是完整的CSS:
kqhtkvqz7#
将
width: max-content
与max-width
结合使用。例如:
内容现在仅在超过最大宽度时换行。
标签:position: absolute child element - Don't wrap text until max-width?