Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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 为什么colspan没有按预期应用_Html_Web_Html Table - Fatal编程技术网

Html 为什么colspan没有按预期应用

Html 为什么colspan没有按预期应用,html,web,html-table,Html,Web,Html Table,我有一张下面的桌子。第二行定义了三列,一列为colspan=8,另一列为colspan=1。尽管如此,细胞并没有根据colspan进行拉伸,第二个细胞的“宽度”稍大一些,第三个细胞的“宽度”最大 <table class="floating simpletable"> <tbody> <tr><td colspan="10">1st row</td></tr> <tr>&l

我有一张下面的桌子。第二行定义了三列,一列为
colspan=8
,另一列为
colspan=1
。尽管如此,细胞并没有根据colspan进行拉伸,第二个细胞的“宽度”稍大一些,第三个细胞的“宽度”最大

<table class="floating simpletable">
    <tbody>
        <tr><td colspan="10">1st row</td></tr>
        <tr><td colspan="8">Column 1 -&gt; Least wide</td><td colspan="1">2nd</td><td colspan="1">3rd</td></tr>
        <tr><td colspan="10">3rd row</td></tr>
        <tr><td colspan="1">1st cell</td><td colspan="9">4th row</td></tr>
    </tbody>
</table>

第一排
第1列-最小宽度第2个第3列
第三排
第1单元第4排

问题是什么以及如何解决?

colspan
确定单元格重叠的列数,而不是这些列的大小。使用CSS
width
属性指定事物的宽度。

单元格的宽度取决于单元格内容、宽度的HTML和CSS设置、浏览器以及月亮的相位。
colspan
属性只指定一个单元格占用多少列(因此,表格的网格中有多少插槽)

如果第2行的最后一个单元格最宽,那么原因可能是它的内容最多(或者有宽度设置)。您的演示代码没有演示这种行为

如果不希望列宽根据单元格的大小要求进行调整,请在CSS(或HTML)中显式设置列宽。在此之前,最好从表结构中删除所有不必要的复杂性。如果您的演示代码反映了整个结构,那么第2列到第8列是一个不必要的划分,也就是说,它们可以变成一列。演示(仅为明确起见,像素宽度样式不佳):


第一排
跨度1跨度2跨度3
第三排
跨距另一跨距

如果没有这样的重写,恐怕您的表违反了HTML的表模型,因为当前没有以第3列或第4列或…

开头的单元格,包含10个单元格的行在哪里?这是第一行。我必须以某种方式定义10个单元格的行吗?实际上我指的不是单元格,只是我的措辞可能有点不清楚。我会解决的。我的例子是实际的一个不起作用。但是您的建议为每列添加一个标记解决了这个问题。我添加了其中的十个,并将每个的宽度设置为10%。谢谢但是在您的示例中,您只添加了三个,因为您使用的是colspan=4,所以不应该是其中的四个吗?在我的演示中,最后一列只获取了它需要的内容。要实现我认为您的目标,您可以使用(在使用我的标记时)``。每10%宽的10列的方法可能不可靠,因为它无法解决表模型问题。好的,我理解为什么您省略了最后一列。但是在阅读表模型时,客户机应该使用确定列数,所以我猜每列一列是正确的。你能解释一下为什么我的方法不如你的方法有效吗?也许我缺乏som对表格模型的理解……表格模型上的HTML5文本是相当复杂和正式的:但如果您使用验证器检查最初发布的代码,并在开头插入
,它会说:“由元素td建立的范围3…8中的表格列中没有开头的单元格。”注意:我提议的标记不符合HTML5草案,因为它们需要第四个
元素(出于逻辑原因,您不需要设置其宽度,HTML5甚至不允许在HTML中这样做)。“可能还有月亮的相位”:
<table class="floating simpletable" border>
    <col width=100><col width=100><col width=100>
    <tbody>
        <tr><td colspan="4">1st row</td></tr>
        <tr><td colspan="2">span 1</td><td>span 2</td><td>span 3 </td></tr>
        <tr><td colspan="4">3rd row</td></tr>
        <tr><td>span</td><td colspan="3">other span</td></tr>
    </tbody>
</table>