为什么CSS td宽度不起作用?
请看这个JSFIDDLE
td.rhead { width: 300px; }
为什么不能使用CSS宽度?
<table> <thead> <tr> <td class="rhead">need 300px</td> <td colspan="7">Week #0</td> <td colspan="7">Week #1</td> <!-- etc..--> </tr> <tr> <td class="rhead"></td> <td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td> <td>S</td><td>M</td><td>T</td><td>W</td><td>T</td><td>F</td><td>S</td> <!-- etc... --> </tr> <thead> </table>
另外,什么位置的影响:固定,绝对等有TD宽度,如果有的话? 我正在寻找一个比解决办法更多的原因。 我希望了解它是如何工作的。
这可能不是你想听到的,但display: table-cell
不尊重宽度,将根据整个表的宽度折叠。 你可以简单地通过在表格单元格内部有一个display: block
元素来指定它的宽度,例如
<td><div style="width: 300px;">wide</div></td>
如果<table>
本身的position: fixed
是position: fixed
或绝对的,这应该没什么区别,因为单元格的位置相对于表格是全部静态的。
http://jsfiddle.net/ExplosionPIlls/Mkq8L/4/
编辑:我不能拿信用,但作为意见说,你可以使用min-width
而不是在表格单元格的width
。
你最好使用table-layout: fixed
自动是默认值,大表会导致一些客户端滞后,因为浏览器遍历它来检查所有大小适合。
固定好得多,呈现给页面更快。 表的结构取决于表的总宽度和每列的宽度。
在这里它被应用到原始的例子: JSFIDDLE ,你会注意到剩下的列被压缩并重叠其内容。 我们可以用更多的CSS来解决这个问题(我所要做的就是向第一个TR添加一个类):
table { width: 100%; table-layout: fixed; } .header-row > td { width: 100px; } td.rhead { width: 300px }
在这里看到的行动: JSFIDDLE
在你提供的链接中不起作用的原因是因为你试图显示一个300px的列PLUS 52列,每个列有7列。 收缩列的数量,它的作品。 你不能在屏幕上适合这么多。
如果你想强制列适合尝试设置:
body {min-width:4150px;}
看到我的jsfiddle: http : //jsfiddle.net/Mkq8L/6/ @mike我还不能评论。
原因是,因为你没有指定表的宽度,你的整个td的溢出。
这例如 ,我已经给了表的宽度为5000px,我认为这将符合您的要求。
table{ width:5000px; }
这是你提供的完全相同的代码,我只是在表中添加宽度。
我相信发生了什么,是因为你的TD已经超过了默认的表格宽度。 你可以看到,如果你在每个tr中抽出大约45个td(即你在问题中提供的代码,而不是jsfiddle)
尝试这个工作。
<table> <thead> <tr> <td width="300">need 300px</td>
尝试使用
table { table-layout: auto; }
如果你使用Bootstrap,类table
有table-layout: fixed;
默认。
我疯狂的解决scheme。)
$(document).ready(function() { $("td").each(function(index) { var htmlText = "<div style='width:300px;'>" + $(this).text() +"</div>"; $(this).html(htmlText); }); });
你也可以使用:
.rhead { width:300px; }
但是这只会随着一些浏览器,如果我没记错的IE8不允许这样做。 总而言之,将width=""
属性放在<td>
本身中是比较安全的。
如果表格宽度是例如100%,请尝试在td上使用百分比宽度,例如20%。
你可以试试“table-layout:fixed” 到你的桌子
table-layout: fixed; width: 150px;
150px或你想要的宽度。
参考: https : //css-tricks.com/fixing-tables-long-strings/
在表格中使用表格布局属性和“固定”值。
table { table-layout: fixed; width: 300px; /* your desired width */ }
在设置了表格的整个宽度之后,现在可以设置td的宽度。
td:nth-child(1), td:nth-child(2) { width: 15%; }
您可以通过以下链接了解更多信息: http : //www.w3schools.com/cssref/pr_tab_table-layout.asp
从第一个单元格包装内容,例如:
HTML:
<td><div class="rhead">a little space</div></td>
CSS:
.rhead { width: 300px; }
这是一个jsfiddle 。