zoukankan      html  css  js  c++  java
  • IE8 overflow:hidden 无效问题解决方案

    一、是 td 的原因。

    其实这关 td 什么事呢?div 也是一样的,看示例:

    <div style="100px;overflow:hidden;">中华人民共和国中华人民共和国</div>

    并没有直接截断,而是出现了换行。所以跟 td 无关,而是受内容的影响。

    二、td 中多套一层标签(比如 div),table 指定 table-layout:fixed。

    <table style="table-layout:fixed;">
      <tr>
        <td style="100px;overflow:hidden;white-space:nowrap;"><div>中华人民共和国中华人民共和国</div></td>
      </tr>
      <tr>
        <td>中华人民共和国中华人民共和国</td>
      </tr>
    </table>

    前面说了,这个 overflow 跟内容有关,而跟是不是 td 没关系,所以以上做法也是行不通的。

    三、使用 white-space:pre;。

    这个是错误的,输出内容会照源码输出,比如源码中“中”和“国”之间换行了,但没有任何标签,那么输出时也会显示在两行,而 HTML 中,默认 <br /> 才会换行,与实际需求不符。

    正确的做法

    CSS 代码

    div{100px;overflow:hidden;white-space:nowrap;}
    td{100px;overflow:hidden;white-space:nowrap;word-break:keep-all;}

    HTML 代码

    <div>中华人民共和国中华人民共和国</div>
    <table>
      <tr>
        <td><div>中华人民共和国中华人民共和国</div></td>
      </tr>
      <tr>
        <td>中华人民共和国中华人民共和国</td>
      </tr>
    </table>

    全部 OK。可以看出 td 比 div 多一个 word-break:keep-all;。这是由于 IE 中,对 td 的解释与 Firefox、Chrome 的不同,若不加的话,IE 中第三行仍然会转到下一行,而不是截断。具体请参见兼容多浏览器,兼容 div、p、td 的强制不换行及强制换行

    该内容引用自 http://www.cftea.com/c/2010/12/UVBUCD0J888L2XPQ.asp

  • 相关阅读:
    实验1.2 C语言上机入门 二
    如何使用OJ系统
    (第五周)工作总结
    (第五周)团队项目2
    (第五周)团队项目1
    (第五周)立项申请更新(食物链教学工具)
    (第四周)工作总结
    (第四周)四则运算单元测试
    (第四周)词频统计单元测试
    (第三周)工作总结
  • 原文地址:https://www.cnblogs.com/0819lsl/p/6652541.html
Copyright © 2011-2022 走看看