Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对HTML表使用固定列宽还是百分比列宽更好?_Html_Html Table - Fatal编程技术网

对HTML表使用固定列宽还是百分比列宽更好?

对HTML表使用固定列宽还是百分比列宽更好?,html,html-table,Html,Html Table,我在我的网站上显示了一些表格数据,所以我决定使用一些表格。对表列使用固定宽度(即100px)或使用基于百分比的宽度是最佳做法吗?我不建议使用固定宽度,因为浏览器的文本大小可能不同。 正确的做法是什么都不做!让桌子自行调整大小。强制表的宽度为100%是一种选择,但会留下大量空白 我的手机、电视机或台式电脑上的桌子有多大?你越是强制布局,它在意外平台上的效果就越差。我同意Quigley的观点,但是“正确”的方法在很大程度上取决于你的具体环境。如果你必须在网站上显示简单的数据,基本上只是打印出HTML

我在我的网站上显示了一些表格数据,所以我决定使用一些表格。对表列使用固定宽度(即100px)或使用基于百分比的宽度是最佳做法吗?

我不建议使用固定宽度,因为浏览器的文本大小可能不同。 正确的做法是什么都不做!让桌子自行调整大小。强制表的宽度为100%是一种选择,但会留下大量空白


我的手机、电视机或台式电脑上的桌子有多大?你越是强制布局,它在意外平台上的效果就越差。

我同意Quigley的观点,但是“正确”的方法在很大程度上取决于你的具体环境。如果你必须在网站上显示简单的数据,基本上只是打印出HTML格式的数据,我也会让表格保持原样。你应该做的是将它的宽度设置为100%s.t。它会在页面的整个宽度上展开。如果它位于另一个容器(例如div或其他标记)内,它将扩展到该容器的宽度

但是,如果您希望表格仅扩展到某个宽度,我会选择百分比值,而不是固定表格,主要是因为您的用户将具有不同的显示大小和分辨率,因此相应的浏览器窗口可能会有所不同。然而,在这种情况下,我会考虑属性,例如最小宽度,指定表将得到的最小宽度。该属性在Firefox、Safari等浏览器上运行良好。。然而,在IE上(像往常一样),您必须通过向CSS类(添加到HTML表的封闭容器或表本身)添加以下内容来实现最小宽度:

width:expression(this.scrollWidth<70?/70px):“auto”);

这只是一个指定最小宽度为70px的示例,否则它不会设置任何宽度。您可以根据自己的需要进行定制。

固定像素宽度绝对是最糟糕的选择。百分比要好得多。如果您想定义相对于页面上其他元素的列宽,最好的选择是使用CSS和类似于
em
的单位。

对于表格数据,我认为相对(百分比)应该是好的

但是,如果你觉得屏幕大小可能会把你的表格搞砸,那就采用固定的方法。

我在HTML中广泛使用(d)比例宽度,这必须在浏览器和CSS2XSLFO中使用

但是Firefox3.x已经取消了对表列中PCW宽度的支持

因此,您必须使用%宽度


我从不使用固定宽度(如50px),但除了pcw或百分比宽度之外,我还使用em或ex单位。

关于DeadAccount的答案,不要使用W3,他们有一个习惯,即信息有一半是正确的


此外,我很确定最佳实践是使用百分比而不是固定宽度,因为正如其他人所说,如果其他浏览器使用的设置与您的不同,则“固定”将在其他浏览器中出现问题。然而,最好的做法可能是别管它

如果我不做“固定”或“相对”,那么这些项目放得太近。那么,我该如何解决这个问题呢?看看padding选项:例如。尝试在此处使用选项:
width: expression( this.scrollWidth < 70 ? "70px" : "auto" );