【问题标题】:CSS line is not wrapping inside tableCSS 行没有包裹在表格内
【发布时间】:2012-09-12 17:51:02
【问题描述】:

我在布局中遇到了white-space: pre-line 的问题。当我将内容包装在 div 元素中时,它工作得很好,但是当我用 table 替换 div 时,文本不再包装。这只是展示案例的一小部分。在原始代码中,很难替换这个外部表。代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <style type="text/css">
        body {
            border: 1px dashed red;
            font-size: 12px;
            font-family: "Trebuchet MS", Verdana, Helvetica, Sans-Serif;
            margin: 0 auto !important;
            padding: 10px;
            width: 600px;
        }

        .document-preview {
            border-spacing: 0;
            width: 100%;
        }

        .document-preview .content-details-row {
            padding: 0 2px 0 162px;
            position: relative;
            white-space: nowrap;
            z-index: 1;
        }

        .document-preview .content-details-row span:first-child {
            display: block;
            float: left;
            margin: 0 2px 0 -160px;
            overflow: hidden;
            width: 160px;
            z-index: 2;
        }

        .document-preview .content-details-row span:first-child:after {
            content: "..............................................................................";
            font-weight: lighter;
            font-size: 10px;
            letter-spacing: 2px;
        }

        .document-preview .content-details-row .content-details-value {
            display: inline-block;
            width: 100%;
            z-index: 2;
        }

        .document-preview .content-details-row .content-details-value > div {
            white-space: pre-line;
            word-wrap: break-word;
        }
    </style>
</head>
<body>

    <table class="document-preview"><tbody><tr><td>
        <div class="content-details-row">
            <span>Label:</span> 
            <span class="content-details-value">
                <div>Doesn't work: Something something AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</div>
            </span>
        </div>
    </td></tr></tbody></table>

    <hr />

    <div class="document-preview">
        <div class="content-details-row">
            <span>Label:</span> 
            <span class="content-details-value">
                <div>Works: Something something AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA</div>
            </span>
        </div>
    </div>

</body>
</html>

工作样本:http://jsfiddle.net/UPXzt/1/

提前致谢。

【问题讨论】:

    标签: css google-chrome internet-explorer-9


    【解决方案1】:

    试试这个demo

    只为 div 添加宽度

    .document-preview .content-details-row .content-details-value > div 
    {
    width: 430px;
    white-space: pre-wrap !important;
    word-wrap: break-word;
    }
    

    【讨论】:

    • 我无法添加width,因为内容应该随浏览器窗口缩放。
    • 但是你的身体宽度是 px 那么表格怎么会随着浏览器窗口缩放呢?
    • 我也用表格布局编辑过,请参阅演示jsbin.com/erewix/8尝试缩放浏览器窗口
    • 这是显示问题的示例。正如我所写,这只是布局的一部分。
    【解决方案2】:

    将此样式添加到您的页面

    table {
        table-layout: fixed;
    
    }
    

    示例: http://jsfiddle.net/UPXzt/10/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-30
      • 2021-01-17
      • 2019-03-26
      相关资源
      最近更新 更多