无论单元格中的文本数量是多少,都将表格列宽设置为常量?

Mis*_*hko 504 html css column-width

在我的表中,我将列中第一个单元格的宽度设置为100px.
但是,当此列中某个单元格中的文本太长时,列的宽度会变得更大100px.我怎么能禁用这个扩展?

ptp*_*son 575

我玩了一会儿,因为我很难搞清楚.

您需要设置单元格宽度(th或td工作,我设置两者)并设置thtd.出于某种原因,如果设置了表格宽度,单元格宽度似乎只保持固定(我认为这很愚蠢但是whatev).将overflow属性设置为hidden也很有用.

你应该确保留下CSS的所有边界和大小.

好的,这就是我所拥有的.

HTML:

table {
  border: 1px solid black;
  table-layout: fixed;
  width: 200px;
}

th,
td {
  border: 1px solid black;
  width: 100px;
  overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)

CSS:

<table>
  <tr>
    <th>header 1</th>
    <th>header 234567895678657</th>
  </tr>
  <tr>
    <td>data asdfasdfasdfasdfasdf</td>
    <td>data 2</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

这是JSFiddle

这家伙有类似的问题:表格单元格宽度 - 固定宽度,包装/截断长单词

  • 重要的是要注意这一点:"然后,浏览器将根据表格第一行中单元格的宽度设置列宽",来自http://stackoverflow.com/questions/570154/html-table-keep-the-相同宽度为柱 (70认同)
  • 当表格宽度不固定时,它确实有效.http://jsfiddle.net/lavinski/CGCFW/3/您只需要一个动态行来占用剩余空间. (11认同)
  • @DanielLittle 或者您可以将表格宽度设置为 1px;对于动态大小的表格,使用 `overflow: visible`,只要单元格的大小是固定的并且溢出是可见的,那么表格本身的大小是大于还是小于实际单元格都没有关系。 (3认同)

小智 161

请参阅:http: //www.html5-tutorials.org/tables/changing-column-width/

在表标记之后,使用col元素.你不需要结束标签.

例如,如果您有三列:

<table>
  <colgroup>
    <col style="width:40%">
    <col style="width:30%">
    <col style="width:30%">
  </colgroup>  
  <tbody>
    ...
  </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

  • 这个!这是HTML5的答案,如果没有我不得不跳过愚蠢的箍,它就会变得很糟糕.另外,您可以使用<col class ="someClassName">来保持CSS中的宽度,而不是使用样式信息污染HTML. (21认同)
  • 桌面样式`table-layout:fixed; 宽度:100%;`.谢谢! (5认同)
  • @Sam你可能还有其他一些问题,比如CSS,内联样式或不正确的doctype等.这绝对有效,它是设置列样式的标准方法. (2认同)

小智 122

只需在<div>里面添加标签<td>或在里面<th>定义宽度<div>.这会对你有所帮助.没有别的办法.

例如.

<td><div style="width: 50px" >...............</div></td>
Run Code Online (Sandbox Code Playgroud)

  • 我结合这个解决方案,并为相同的像素宽度指定最小宽度/最大宽度,只是为了安全起见.最后它正在运作.我不知道为什么我必须运行所有这些额外的回合只是让它真的固定,荒谬...... (2认同)
  • @mmcrae它更好,因为它的工作原理,设置`<td>`的宽度不行. (2认同)

scr*_*rrr 63

如果你需要一个或多个固定宽度的列,而其他列应该调整,尝试设置都min-widthmax-width相同的值.


vin*_*mar 28

你需要在相应的CSS里面写这个

table-layout:fixed;
Run Code Online (Sandbox Code Playgroud)


小智 21

我所做的是:

  1. 设置td宽度:

    <td width="200" height="50"><!--blaBlaBla Contents here--></td>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用CSS设置td宽度:

    <td style="width:200px; height:50px;">
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用CSS将宽度再次设置为max和min:

    <td style="max-width:200px; min-width:200px; max-height:50px; min-height:50px; width:200px; height:50px;">
    
    Run Code Online (Sandbox Code Playgroud)

它听起来有点重复,但它给了我想要的结果.要轻松实现这一点,您可能需要将CSS值放在样式表的类中:

.td_size {    
  width:200px; 
  height:50px;
  max-width:200px;
  min-width:200px; 
  max-height:50px; 
  min-height:50px;
  **overflow:hidden;** /*(Optional)This might be useful for some overflow contents*/   
}
Run Code Online (Sandbox Code Playgroud)

然后:

<td class="td_size">
Run Code Online (Sandbox Code Playgroud)

将class属性放置到<td>您想要的任何属性.


Pri*_*ora 7

设置这个:

style="min-width:100px;" 
Run Code Online (Sandbox Code Playgroud)

为我工作。