zoukankan      html  css  js  c++  java
  • 设置一搓元素自动适应宽度

    问题:如下图

    这个时候,右边有一撮的元素,自动排列,不知道宽度。

    右边常见的写法有两种
    1 div>a*n 这种情况下,a不需要浮动
    这个时候,我试了,word-break和word-wrap.在各浏览器下表现不一致。
    转而改成,a:{display:block;float:left;white-space:nowrap;}这样就OK了


    2 ul>li*n>a 这种情况下,li左浮动
    这时候同样按照上面的样式写就OK了。

    关于word-break,word-wrap,white-space
    1 white-space:  是否折行 。参考w3school的属性
    可取的值:其中inherit属性,ie8以下不支持
    normal    默认。空白会被浏览器忽略。
    pre    空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。
    nowrap    文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。
    pre-wrap    保留空白符序列,但是正常地进行换行。
    pre-line    合并空白符序列,但是保留换行符。
    inherit    规定应该从父元素继承 white-space 属性的值。

    上面一个是通用属性,下面两个是ie专有的
    2 word-wrap
    normal: 允许内容顶开指定的容器边界
    break-word: 内容将在边界内换行。如果需要,词内换行word-break也将发生

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

    总结:
    word-wrap: break-word; 和 word-break: break-all;,两者都将文本限定在了容器的范围内。
    观察这里的显示。http://dancewithnet.com/lab/2008/word-break-all/
    单词,纯字母加空格。
    1,word-wrap.
    ie和firefox大体一致。对单词换行,对符号的换行处理不一致。
    2,word-break.
    firefox下。一个单词结束才换行。
    ie下。彻底的换行,不能超出边界,但是不能处理符号。
    只是 break-all 将所有单词,不论长短地,通通截断,break-word 它尽量地遵从了排版规则。
    总的来说,以上两属性在两浏览器中表现不一致。因为不是w3c的标准属性。而white-space这个属性是所有浏览器通用的标准属性。

    这里是我总结的关于换行的规则 http://www.riyue.me/file/csstest/newline.html

  • 相关阅读:
    WPF Expander 炫酷自定义Style
    C#8.0 中的 【索引与范围】
    Windows的图形设备接口与Windows绘图
    第一个Windows窗口应用程序
    0-1背包问题的分枝—限界算法
    哈密尔顿回路(旅行售货员问题)的回溯算法
    背包问题的贪心算法
    实现矩阵连乘的动态规划算法
    用分治策略实现棋盘覆盖问题
    sql注入实例分析
  • 原文地址:https://www.cnblogs.com/lunalord/p/2538564.html
Copyright © 2011-2022 走看看