zoukankan      html  css  js  c++  java
  • CSS中控制换行的四种属性

    一、white-space

      可以实现HTML中PRE标签的效果,以及单元格的noWrap效果,点此查看示例。

    Example Source Code
    语法:
    white-space : normal | pre | nowrap

      取值:
      normal: 默认值。默认处理方式。文本自动处理换行。假如抵达容器边界内容会转到下一行
      pre: 换行和其他空白字符都将受到保护。这个值需要IE6+或者 !DOCTYPE 声明为 standards-compliant mode 支持。如果 !DOCTYPE 声明没有指定为 standards-compliant mode ,此属性可以使用,但是不会发生作用。结果等同于 normal 。参阅 pre 对象
      nowrap: 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。参阅 noWrap 属性

      说明:
      设置或检索对象内空格字符的处理方式。
      空 格字符,像换行,空格,TAB,在HTML文档中默认的是被忽略的。当此属性设置为 normal 或者 nowrap 时,你可以使用不换行空格的命名实体   来添加空格,用 br 元素来添加换行。此属性对你使用文档对象模型(DOM)操作的内容的影响与其对IE显示内容的影响一样。
      此属性作用于块对象。

      相关样式:
      text-overflow
      将它与white-space结合使用就不用再写程序来判断字符串长度了,点此查看示例。

    Example Source Code
    语法:
    text-overflow : clip | ellipsis


      取值:
      clip:默认值。不显示省略标记(…),而是简单的裁切
      ellipsis:当对象内文本溢出时显示省略标记(…)

      说明:
      设置或检索是否使用一个省略标记(…)标示对象内文本的溢出。
      这个属性仅仅作用于水平内联方向的,普通的西方文本的溢出。内联溢出发生在行内的文本超出可用宽度却没有换行机会的时候。
      要强制溢出发生并且应用 ellipsis 值,作者必须设置对象的 white-space 属性值为 nowrap 。
      假如没有换行机会(例如,对象容器的宽度是狭窄的,而内有很长的没有合理断行的文本),没有应用 nowrap 也有可能溢出。
      为了使 ellipsis 值被应用,此属性必须被设置到具有不可视区域的对象。最好的选择是设置 overflow 属性为 hidden 。设置 overflow 属性为 scroll 或者 auto 时,此属性也会应用。但是会有滚动条出现。
      通过选择省略标记,隐藏的文本可以被选择。当选择发生时,省略标记会隐藏而被文本替换。
      此属性为在DHTML中制作省略标记提供了高效的方法。

     

    支持火狐:

    <style type="text/css">
        #container
        {
            30%;
            border: 1px solid #005fb0;
            background: #e0f1ff;
        }
        .nn
        {
            100%;
            overflow: hidden;
            white-space: nowrap;
            -o-text-overflow: ellipsis;
            text-overflow: ellipsis;
        }
        .mm:not(p)
        {
            clear: both;
        }
        /* wtf is? pls let me know*/
        .mm:not(p) .nn
        {
            max- 85%;
            float: left;
        }
        .mm:not(p):after
        {
            content: "...";
            float: left;
            25px;
            padding-left: 5px;
            color: #df3a0e;
        }
    </style>
    <div id="container">
        <div class="mm">
            <div class="nn">
                测试1234567890测试1234567890测试1234567890测试测试1234567890测试1234567890测试1234567890测试测试1234567890测试1234567890测试1234567890测试</div>
        </div>
    </div>

    二、word-break

      最常用的控制换行属性,常与下面的word-wrap结合使用,点此查看示例。

    Example Source Code
    语法:
    word-break : normal | break-all | keep-all

      取值:
      normal: 默认值。允许在词间换行
      break-all:该行为与亚洲语言的 normal 相同。也允许非亚洲语言文本行的任意字内断开。该值适合包含一些非亚洲文本的亚洲文本
      keep-all:与所有非亚洲语言的 normal 相同。对于中文,韩文,日文,不允许字断开。适合包含少量亚洲文本的非亚洲文本

      说明:
      设置或检索对象内文本的字内换行行为。尤其在出现多种语言时。
      对于中文,应该使用 break-all 。

    三、word-wrap

      如果你设计的网页不是自适应宽度的话,需要将它设置为break-word,否则可能出现版快错开的情况,点此查看示例。

    Example Source Code
    语法:
    word-wrap : normal | break-word

      取值:
      normal:默认值。允许内容顶开指定的容器边界
      break-word:内容将在边界内换行。如果需要,词内换行( word-break )也将发生

      说明:
      设置或检索当当前行超过指定容器的边界时是否断开转行。
      此属性仅作用于有布局的对象,如块对象。内联要素要使用该属性,必须先设定对象的 height 或 width 属性,或者设定 position 属性为 absolute ,或者设定 display 属性为 block 。

    四、overflow,overflow-x,overflow-y

      这个不是严格意思上的控制换行样式,但在某些时候将它设置为hidden可以补充word-wrap的不足,比方你想在限制宽度里仅显示一行文字,而这行文 字的长度却超过这个宽度,结合white-space+text-overflow可以达到更好的效果,点此查看示例。

    Example Source Code
    语法:
    overflow : visible | auto | hidden | scroll


      取值:
      visible: 默认值。不剪切内容也不添加滚动条。假如显式声明此默认值,对象将以包含对象的 window 或 frame 的尺寸裁切。并且 clip 属性设置将失效
      auto:在必需时对象内容才会被裁切或显示滚动条
      hidden:不显示超过对象尺寸的内容
      scroll:总是显示滚动条

      说明:
      检索或设置当对象的内容超过其指定高度及宽度时如何管理内容。
      所有对象的默认值是 visible ,除了 textarea 对象和 body 对象的默认值是 auto 。设置 textarea 对象此属性值为 hidden 将隐藏其滚动条。
      对于 table 来说,假如 table-layout 属性设置为 fixed ,则 td 对象支持带有默认值为 hidden 的 overflow 属性。如果设为 scroll 或者 auto ,那么超出 td 尺寸的内容将被剪切。如果设为 visible ,将导致额外的文本溢出到右边或左边(视 direction 属性设置而定)的单元格。
      自IE5开始,此属性在MAC平台上可用。
      自IE6开始,当你使用 !DOCTYPE 声明指定了 standards-compliant 模式,此属性可以应用于 html 对象。

     

    支持火狐文本溢出显示省略号:

    Java代码

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">     
    <html>     
    <head>     
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">     
    <title>ellipsis</title>     
    <style>     
    .demo{     
        margin:10px;     
        border:1px solid #ccc;      
        float:left;     
        115px;     
        overflow:hidden;     
        white-space:nowrap;     
        -o-text-overflow:ellipsis;     
        text-overflow:ellipsis;     
        -moz-binding: url('ellipsis.xml#ellipsis');     
    }     
    </style>     
    </head>     
         
    <body>     
        <div class="demo">     
            short     
        </div>     
        <div class="demo">     
            this is test,this is test,this is test,this is test,this is test,this is test     
        </div>     
    </body>     
    </html>
     
    另外还有一个xml文件,如下:
    Java代码
    <?xml version="1.0" ?>
    <bindings xmlns="
    http://www.mozilla.org/xbl" xmlns:xbl="http://www.mozilla.org/xbl" xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">     
             
        <binding id="ellipsis">     
            <content>     
                <!--<xul:window>-->     
                    <xul:description crop="end" xbl:inherits="value=xbl:text"><children/></xul:description>     
                <!--</xul:window>-->     
            </content>     
    </binding>     
    </bindings>
     

    PS:

    1.词内换行:word-break: break-all; word-wrap: break-word;

    2.HTML5长度判定:text-overflow: ellipsis; white-space: nowrap; overflow: hidden;

    3.文本两端对齐:text-align:justify; text-justify:inter-ideograph;

  • 相关阅读:
    PTA(Advanced Level)1037.Magic Coupon
    PTA(Advanced Level)1033.To Fill or Not to Fill
    PTA(Basic Level)1020.月饼
    PTA(Advanced Level)1048.Find Coins
    PTA(Advanced Level)1050.String Subtraction
    PTA(Advanced Level)1041.Be Unique
    PTA(Basci Level)1043.输出PATest
    PTA(Basic Level)1039.到底买不买
    PTA(Basic Level)1033.旧键盘打字
    PTA(Advanced Level)1083.List Grades
  • 原文地址:https://www.cnblogs.com/mixzo/p/4213339.html
Copyright © 2011-2022 走看看