美文网首页Css让前端飞Web前端之路
CSS实现换行与不换行的简单归纳

CSS实现换行与不换行的简单归纳

作者: lincimy | 来源:发表于2017-08-10 18:51 被阅读150次

当一个块状元素设置了宽度,并且其中的文本是根据接口返回的数据进行填充和展示时,因为传输的数据有可能是不可靠的,所以在展示时必须要考虑数据的极限值,进行各种奇怪数据以及数据极限值的展示,考虑此情况下页面是否会存在布局错乱的问题,这个称为破坏性测试。

一、一般而言,考虑应用场景的处理方式通常有:

  1. 强制文本一行展示,超出一行范围的文本用省略号表示;
  2. 设置文本一行或多行(规定行)展示,超出规定范围的文本直接隐藏;
  3. 自动换行,过长英文单词进行强制断行;

二、简单归纳下css关于设置换行的样式属性:

1.white-space: normal | pre | nowrap | pre-wrap | pre-line | inherit;

white-space 属性设置如何处理元素内的空白

设值说明:
normal 默认。空白会被浏览器忽略。
pre 空白会被浏览器保留。其行为方式类似 HTML 中的 pre 标签。
nowrap文本不会换行,文本会在在同一行上继续,直到遇到 br 标签为止。
pre-wrap 保留空白符序列,但是正常地进行换行。
pre-line 合并空白符序列,但是保留换行符。
inherit 规定应该从父元素继承 white-space 属性的值。

2.word-wrap: normal|break-word;

word-wrap 属性用来标明是否允许浏览器在单词内进行断句,这是为了防止当一个字符串太长而找不到它的自然断句点时产生溢出现象。

设置说明:
normal: 只在允许的断字点换行(浏览器保持默认处理)
break-word:在长单词或URL地址内部进行换行

3.word-break: normal|break-all|keep-all;

word-break 属性用来标明怎么样进行单词内的断句。

设值说明:
normal:使用浏览器默认的换行规则。
break-all:允许在单词内换行
keep-all:只能在半角空格或连字符处换行

三、相应场景处理方式的CSS样式

  • 超出文本部分隐藏
.nowrap{
            overflow:hidden;
        }
  • 允许单词内断句,首先会尝试挪到下一行,看看下一行的宽度够不够,不够的话就进行单词内的断句
.breakword{
            word-wrap: break-word;
        }
  • 断句时,不会把长单词挪到下一行,而是直接进行单词内的断句
.breakAll{
            word-break:break-all;
        } 
  • 强制不换行,超出文本以省略号显示
.ellipsis{
            white-space:nowrap;
            overflow:hidden;
            text-overflow: ellipsis;
        }

四、完整示例代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>换行与不换行演示</title>
    <style>
        .word{
            background:#E4FFE9;
            width:250px;
            margin:50px auto;
            padding:20px;
            font-family:"microsoft yahei";
        }
        /* 强制不换行 */
        .nowrap{
            overflow:hidden;
        }
        /* 允许单词内断句,首先会尝试挪到下一行,看看下一行的宽度够不够,
        不够的话就进行单词内的断句 */
        .breakword{
            word-wrap: break-word;
        }
        /* 断句时,不会把长单词挪到下一行,而是直接进行单词内的断句 */
        .breakAll{
            word-break:break-all;
        }            
        /* 超出部分显示省略号 */
        .ellipsis{
            white-space:nowrap;
            overflow:hidden;
            text-overflow: ellipsis;
        }
    </style>
</head>
<body>
    <div class = "word">
        <p>1.一行,超出文本隐藏:</p>
        <p class = "nowrap">wordwrap:breakword;absavhsafhuafdfbjhfvsalguvfaihuivfsab</p>
        <p>2.进行长单词判断再单词内断句换行:</p>          
        <p class = "breakword">wordwrap:break-word;absavhsafhuafdfbjhfvsalguvfaihui</p>
        <p>3.直接进行单词内断句换行:</p>
        <p class = "breakAll">wordwrap:break-word;absavhsafhuafdfbjhfvsalguvfaihuivf</p>
        <p>4.默认情况下的自动换行:</p>
        <p class = "normal">wordwrap:breakword;absavhsafhuafdfbjhfvsalguvfaihuivfsa</p>
        <p>5.强制一行,超出文本省略号显示:</p>
        <p class = "ellipsis">wordwrap:breakword;absavhsafhuafdfbjhfvsalguvfaihuivfsab</p>
    </div>
</body>
</html>

效果图如下:


示例效果图

相关文章

  • CSS实现换行与不换行的简单归纳

    当一个块状元素设置了宽度,并且其中的文本是根据接口返回的数据进行填充和展示时,因为传输的数据有可能是不可靠的,所以...

  • 常用样式——文本换行和溢出省略

    1、文本换行   如图所示,想要实现左侧宽度不固定,自适应,但不换行,右侧宽度不固定,但是换行,并且换行之后缩进。...

  • pre 自动换行

    pre 标签实现自动换行,在css添加如下属性:

  • Code Tips

    //取list 某一列 禁止换行 CSS强制换行 禁止换行 tab定位 返回问题

  • markdown使用笔记

    关于换行若没有经过处理,markdown原文编辑时即使换行,出来的结果也不会换行,搜索归纳了一下:行与行之间空一行...

  • css note

    文字间隙 letter-spacing: 3px; 换行禁止 div宽高比固定css实现 通过css实现时,需要将...

  • css 换行 首行缩进 鼠标样式

    css换行 1⃣️强制不换行 2⃣️自动换行 3⃣️强制英文单词断行 4⃣️本人在用 中英文都换行 ⚠️:官方解释...

  • 不同浏览器下word-wrap,word-break,white

    强制换行与强制不换行用到的属性 我们一般控制换行所用到的CSS属性一共有三个:word-wrap; word-br...

  • css中实现强制不换行/自动换行/强制换行

    1. 强制不换行 div{ white-space:nowrap; } 2. 自动换行 div{ word-w...

  • markdown语法之换行与段落

    换行与段落 换行的演示a b cd 1.1 关于换行 在a b c 的c后面,如果a b c 与d之间不空行,或者...

网友评论

    本文标题:CSS实现换行与不换行的简单归纳

    本文链接:https://www.haomeiwen.com/subject/zzohrxtx.html