【CSS】关于文字的换行问题

给固定宽度的div中写入一些文字,你会发现文字可能会超出,实例如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .text {
            width: 150px;
            border: 1px solid #ccc;
            margin-bottom: 20px;
        }
    </style>
</head>

<body>
    <div class="text text1">hello今天是个好日子呀天气晴朗阳光明媚????????????</div>
    <div class="text text2">hello今天是个好日子呀天气晴朗阳光明媚abcabcabcabcabcabcabc</div>
</body>

</html>

上述代码在chrome上的展示结果如下:

那么如何让div中的文字不超出呢?这就涉及到 word-break 和 line-break 属性

在上面代码中给text1、text2加上以下样式:

.text1 {
    /* 加了word-break后在chrome中还是会超出,但是在ios中并不会超出了 */
    /* word-break: break-all; */
    line-break: anywhere;
}

.text2 {
    word-break: break-all;
    /* 加了line-break后也能实现不超出的效果 */
    /* line-break: anywhere; */
}

在chrome上的展示结果就变成如下:

参考文章:

https://zhuanlan.zhihu.com/p/665011773

line-break介绍:https://blog.youkuaiyun.com/broken_promise/article/details/127039350

word-break属性:https://www.php.cn/faq/415051.html

CSS 中实现文字自动换行的样式设置,主要可以通过以下几个属性进行配置: ### 1. `word-wrap`(或现代标准 `overflow-wrap`) 该属性用于控制是否允许单词内部断行。当文本中存在长单词或 URL 地址时,可以强制其换行以适应容器宽度。 示例代码: ```css .div-wrap { width: 100px; word-wrap: break-word; /* 或 overflow-wrap: break-word; */ } ``` 上述代码确保了即使遇到很长的单词,内容也会在容器内正确换行[^3]。 --- ### 2. `white-space` 该属性决定了如何处理元素内的空白字符以及是否换行。常见的值包括 `normal`、`pre-wrap` 和 `pre-line`。 - `white-space: normal;`:默认行为,连续空格合并为一个,并在需要时自动换行。 - `white-space: pre-wrap;`:保留空格和换行符,但允许在必要时换行。 - `white-space: pre-line;`:类似 `pre-wrap`,但合并连续空格。 示例代码: ```css .text-wrap { white-space: pre-wrap; /* 保留换行符并允许自动换行 */ } ``` --- ### 3. `word-break` 此属性控制如何断开单词以进行换行,尤其适用于非空格分隔的语言(如中文)。 - `word-break: normal;`:默认行为,根据语言规则进行断行。 - `word-break: break-all;`:允许在任意字符之间断行,适合英文长字符串。 - `word-break: keep-all;`:不允许断行,仅在空格处分隔。 示例代码: ```css .content { word-break: break-all; /* 强制在任意字符间断行 */ } ``` --- ### 4. `hyphens` 如果希望在断行时添加连字符(hyphen),可以使用 `hyphens` 属性。支持的值包括 `none`、`manual` 和 `auto`。 示例代码: ```css .hyphenated-text { hyphens: auto; /* 自动添加连字符 */ } ``` --- ### 总结 结合上述属性,可以根据不同需求灵活地实现文本换行效果。例如,在一个固定宽度的容器中显示长英文单词,可以同时使用 `word-wrap: break-word` 和 `white-space: pre-wrap` 来确保良好的可读性和布局稳定性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值