【问题标题】:Use CSS to autosize width content使用 CSS 自动调整宽度内容
【发布时间】:2012-10-13 13:38:43
【问题描述】:

我有一个有两列的表。第二列应始终完美地显示其内容,并且应根据内容自动计算宽度。第一列应尽可能宽到某个点(最大宽度)。不幸的是,我只习惯 WPF 而不是 HTML。在 WPF 中,我会写以下内容:

<Grid.ColumnDefinitions>
   <ColumnDefinition Width="*" MaxWidth="600" />
   <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>

我的 HTML 是:

<colgroup>
   <col class="fullWidthCol" />
   <col class="autoWidthCol" />
</colgroup>

我的 CSS 是:

.fullWidthCol {
   width: 100%;
   max-width: 600px;
}

.autoWidthCol {
   overflow: auto;
}

我确定我什至没有接近。它忽略了我的最大宽度并尽可能大地调整第一列,将第二列推到屏幕右侧。

【问题讨论】:

    标签: html css css-tables col


    【解决方案1】:

    看起来td 不接受max-width 规范。只需改用width;在td 上,width 会产生同样的效果。

    例子:

    table
    { width: 100%; }
    
    .fullWidthCol
    { width: 300px; }
    
    <table border="1">
      <tr>
        <td class="fullWidthCol">The first column should be as wide as possible up to a certain point (max width). </td>
        <td class="autoWidthCol">The second column should ALWAYS show it's content perfectly and the width should be automatically calculated based on the content. </td>
      </tr>  
    </table>
    

    或查看http://jsfiddle.net/HdSA2/

    【讨论】:

    • 那行不通。第一列是 300px,另一列永远增长。我无法指定“300px”,因为内容会发生变化并且是动态的。它只需要调整大小以适应其中的任何内容。另一列不能永远增长;它需要在某个点停止。也许这是不可能的?
    • 我想我很困惑。您想将第一列限制为 X 像素或更小? JSfiddle 就是这样做的。您希望如何限制第二列?是否需要约束表格的整个宽度?
    • JSFiddle 不这样做。 JSFiddle 中的第二列永远增长。我希望第二列随着表格的增长而增长,但我想要一个最大宽度。第一列始终为 300 像素。我希望它与内容一样大。也许这在 CSS 中是不可能的。
    • @Paul - 看看jsfiddle.net/HdSA2/1。 col1 有一个固定的宽度,如果 col2 的内容较少,它会缩小。这就是你想要的吗?
    • 对不起,没有。您在桌子上的“最大宽度”根本没有被使用。将其更改为 150 像素而不是 400 像素,您会看到表格没有缩小。你有: Col1 = 固定大小,Col2 = 自动调整大小(不受限制,但根据内容调整大小。)我想要:一列自动调整大小(你有这部分),但我希望另一列尽可能大并且不固定。但是,我希望表格具有最大宽度。所以如果表格是 800 像素,那么一列是自动调整大小的,另一列是 (800px - Auto Sized Column px)
    猜你喜欢
    • 2011-03-22
    • 2015-11-03
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 2023-04-03
    相关资源
    最近更新 更多