Pan940425
V2EX  ›  CSS

请教一个关于 css 的问题

  •  
  •   Pan940425 · Aug 3, 2016 · 3758 views
    This topic created in 3593 days ago, the information mentioned may be changed or developed.

    我在一个固定宽度的 td 里面放了一个 span ,然后 span 设置了一个百分比宽度以及 overflow:hidden 。不知道为什么, td 会被撑开。。如图 我不想让 span 把 td 撑开需要怎么做呢。。。

    23 replies    2016-08-04 17:02:12 +08:00
    suinia
        1
    suinia  
       Aug 3, 2016   ❤️ 1
    word-break: break-all;
    Pan940425
        2
    Pan940425  
    OP
       Aug 3, 2016
    @suinia 不想要折行,所以用了 overflow:hidden 。。
    abelyao
        3
    abelyao  
       Aug 3, 2016
    截图中浏览器的运行效果来看,最后一个 a 是半截的,确实有一部分 hidden 了?
    不然上代码吧
    chairuosen
        4
    chairuosen  
       Aug 3, 2016
    span 是 inline 级的,没有宽度属性,设置也不生效,先 display: block or inline-block
    Pan940425
        5
    Pan940425  
    OP
       Aug 3, 2016
    @abelyao
    @chairuosen
    <!DOCTYPE html>
    <html>
    <head>
    </head>
    <body>
    <table>
    <tr>
    <td style="width:200px;border:1px solid">
    <span style="width:80%;display:inline-block;overflow:hidden;margin-left:10%;">11111111111111111111111111111111111111111111111111111111111111111111111</span>
    </td>
    </tr>
    </table>
    </body>
    </html>
    Pan940425
        6
    Pan940425  
    OP
       Aug 3, 2016
    @chairuosen 已经加了 display:block 呢,
    Pan940425
        7
    Pan940425  
    OP
       Aug 3, 2016
    @abelyao 确实是 hidden 了,但是 td 也被撑开了。。。
    abelyao
        8
    abelyao  
       Aug 3, 2016
    @Pan940425 换个思路,给 span 加 width:200px 呢?
    Pan940425
        9
    Pan940425  
    OP
       Aug 3, 2016
    @abelyao td 的宽度是要自适应出来的。。
    chairuosen
        10
    chairuosen  
       Aug 3, 2016
    @Pan940425 table 单元格宽度比较奇怪,给 table 一个 table-layout:fixed;
    abelyao
        11
    abelyao  
       Aug 3, 2016
    @Pan940425 table 的样式中加上 table-layout:fixed;
    learnshare
        12
    learnshare  
       Aug 3, 2016
    td 里不要放任何 display: block; 的元素,只放 inline/inline-block 的元素。
    FinnBai
        13
    FinnBai  
       Aug 3, 2016
    貌似是 span 的宽度%没有按照上级 td 的走 要不要换一个思路 用 js 通过 td 的宽度来给 span 一个固定宽呢
    Pan940425
        14
    Pan940425  
    OP
       Aug 3, 2016
    @chairuosen
    @abelyao

    貌似加了 table-layout:fixed 也不行。。。
    Pan940425
        15
    Pan940425  
    OP
       Aug 3, 2016
    @learnshare 改成了 display:inline-block ,还是会撑开。。
    Pan940425
        16
    Pan940425  
    OP
       Aug 3, 2016
    @baiyi 用 js 应该是可以做到,但是因为好多不同的地方都有同样的 span 撑开 td 的问题,想要改动最小,希望可以在每个出问题的 td 上增加一个 class 就行,所以还是希望可以用 css 来解决。。
    abelyao
        17
    abelyao  
       Aug 3, 2016
    @Pan940425 我是这么测试的:

    <!DOCTYPE html>
    <html>
    <head>
    <title></title>
    </head>
    <body>
    <table style="width:200px;table-layout:fixed;">
    <tr>
    <td style="width:200px;">
    <span style="display:block; overflow:hidden; width:80%; margin-left:10%;">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</span>
    </td>
    </tr>
    </table>
    </body>
    </html>
    abelyao
        18
    abelyao  
       Aug 3, 2016
    @Pan940425 噢,发现差别了,我写的时候 table 还加了宽度……
    FinnBai
        19
    FinnBai  
       Aug 3, 2016
    height: 20px;
    word-break: break-all;//强制英文单词断行

    给 span 加上这两个属性
    chairuosen
        20
    chairuosen  
       Aug 3, 2016
    @Pan940425 看来我记错了, table-layout 只控制 table 本身,不控制 td 。。。如果非要限制 td 宽度的话, Chrome 上 max-width 是有效的,不清楚 IE 上的情况
    guxin0123
        21
    guxin0123  
       Aug 3, 2016
    table-layout :fixed 是只计算首行的列宽并根据其固定所有列宽
    可以在第一个 tr 里面的 td 给宽度 如果第一行都是不固定的话
    可以这样
    <table style="table-layout:fixed">
    <colgroup>
    <col style="width:60%">
    <col style="width:20%">
    <col style="width:20%">
    </colgroup>
    <tr>
    <td>11</td>
    <td>22</td>
    <td>33</td>
    </tr>
    </table>
    yangg
        22
    yangg  
       Aug 3, 2016
    table { table-layout:fixed; word-break: break-all; }
    Pan940425
        23
    Pan940425  
    OP
       Aug 4, 2016
    @abelyao
    @guxin0123
    @yangg
    谢谢,最后用了 @abelyao 的方法,给 table 加了宽度,然后用了 table-layout:fixed ,
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3201 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 03:03 · PVG 11:03 · LAX 20:03 · JFK 23:03
    ♥ Do have faith in what you're doing.