Erlo

【CSS】文本溢出时的处理

2025-02-22 23:29:41 发布   23 浏览  
页面报错/反馈
收藏 点赞

前言

有时候,一行的长度不足以放下一个超长字符串文本,如果不做任何处理,它会发生溢出现象(overflow),见如下示例。

Hello, I'm xxxxxxxxxxxxxxxxx.
.box {
  border: 1px solid red;
  inline-size: 120px;
}

inline-sizewidth 有什么区别?
这和 writing-mode 有关,在水平写作模式下,它就是 width

img

我们注意到最后一个长单词它的换行,这是由于 overflow-wrap 的初始值导致的。

解决方法可根据不固定尺寸和不固定尺寸两种情况考虑。

固定尺寸的情况

1.设置 overflow: auto

溢出本质上是由于 boxoverflow 属性的初始值为 visible 导致的,所以我们可以改变它来试试。

.box{
    ...
    /* 溢出部分不可见 */
    overflow-x: hidden;
}

img

设置显示水平滚动条:

.box{
    ...
    overflow-x: auto;
}

img

2.设置 overflow-wrap: break-word

overflow-wrap 就是以前的 word-wrap

设置 overflow-wrap: break-word 后,最后一个溢出单词会换行到下一行(wrap),如果还溢出,就截断溢出部分到下一行(break),以此循环,直到不溢出为止。

img

3.设置 word-break: break-all

word-break 相比于 overflow-wrap: break-word 就没有第一次的换行操作,而是直接截断。

img

不固定尺寸的情况:改变父元素宽度

要改变父元素宽度以适应文本内容,就需要了解元素的内存尺寸(或固有尺寸,Intrinsic Sizing),它是 HTML 元素没有设置 CSS 时的原始尺寸。

对应的外部尺寸,它使用诸如 pxem%vwvhmin-widthmax-width 这样会受外部环境影响的尺寸单位。

Block 元素默认宽度为 100%(外在尺寸),高度为 auto(内在尺寸);Inline 元素默认宽度和高度均为 auto(内在尺寸)。

而与内存尺寸有关的 CSS 关键字是:min-contentmax-contentfit-content。将元素的尺寸设置为它们,元素的尺寸就是内部尺寸。

min-content 表示内容的最小尺寸——最长单词的的大小。

.box{
    ...
    width: min-content;
}

img

max-content 表示内容的最大尺寸——内容自然展开的长度:

img

fit-content 表示等同于 fit-content(stretch),原理是:如果max-content 小于父元素尺寸,fit-content(stretch) 就是 max-content;否则,fit-content(stretch) 就是 min-content 和父元素尺寸的最大值。即 fit-content = min(max-content, max(min-content, available-space))

img

本文来自博客园,作者:dawnkylin,转载请注明原文链接:https://www.cnblogs.com/dawnkylin/p/18731619

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认