15

我在<pre>里面使用标签时遇到问题<td>。我有 JSF 数据表和它的三列。我需要所有三列都包含预格式化的文本。

如果我使用<pre>标签,则显示的文本会根据需要预先格式化,但列的宽度会比文本大得多。

我可以通过指定white-space: pre-line;in<pre>标记的样式在 css 中解决这个问题。但它只适用于firefox和IE,chrome忽略了这种风格。

所以我的问题是:有没有一种可能的方法来解决<td>其中包含<pre>标签的宽度?

编辑:

我的CSS类:

.dt_row {
    height: 8px;
    margin: 3px 3px 3px 3px;
    color: #000000;
    white-space: pre-line;
}

还有我的数据表:

    <h:dataTable value="#{searchBean.searchResult.concordances}"
                 var="concordance">

        <h:column>
            <pre class="dt_row">
                #{concordance.left}
            </pre>
        </h:column>

        <h:column>
            <pre class="dt_row" style="color: blue;">
                #{concordance.middle}
            </pre>
        </h:column>

        <h:column>
            <pre class="dt_row">
                #{concordance.right}
            </pre>
        </h:column>

    </h:dataTable>

编辑:

我找到了解决方案。<pre>我使用了标签而不是标签,<code>现在所有数据都完美显示。

4

3 回答 3

9

元素默认占据 100%的pre宽度,即整个可用宽度。然而,在表格单元格中,这与单元格宽度有关,默认情况下,单元格的宽度与pre最长行所需的宽度一样。如果不是这种情况,您需要识别导致偏离默认值的代码,并对其进行修改。

例如,如果您width在元素上设置了属性或属性table,只需删除该设置。

于 2012-05-05T20:54:12.537 回答
3

拥有一个div包含标签的元素pre并在 中使用overflow属性div怎么样?

浏览器会放一个滚动条,但我相信你没问题;-)

于 2012-05-05T20:30:22.423 回答
-3

在表格中显示文本的截断版本,然后当您将鼠标悬停在单元格上时,显示整个部分有点像工具提示。显然,这可能不适用于您的上下文。

于 2012-05-05T20:28:17.243 回答