跨单元格组将HTML表格中的文本居中
我希望,一旦有了一个HTML表,就能够获取一组单元格,并在该组单元格上以垂直和水平方向为中心编写一个文本(在本例中为单个字符),如下图所示 我已经探索了在第一个(左上)跨单元格组将HTML表格中的文本居中,html,css,html-table,css-tables,Html,Css,Html Table,Css Tables,我希望,一旦有了一个HTML表,就能够获取一组单元格,并在该组单元格上以垂直和水平方向为中心编写一个文本(在本例中为单个字符),如下图所示 我已经探索了在第一个(左上)td中写入文本的可能性,然后在该td元素上使用overflowCSS属性,以使文本超出td的限制。但是,这不适用于垂直居中文本(跨tr) 有没有办法使用一个简单的HTML表和CSS,或者我应该考虑使用一个画布来重叠表上的文本吗?< /P> < P> 解决方案1:< /强> BR> 与valign和align一起使用和(它们是特定
td
中写入文本的可能性,然后在该td
元素上使用overflow
CSS属性,以使文本超出td
的限制。但是,这不适用于垂直居中文本(跨tr
)
有没有办法使用一个简单的HTML表和CSS,或者我应该考虑使用一个画布来重叠表上的文本吗?< /P> < P> <强>解决方案1:< /强> BR> 与
valign
和align
一起使用和(它们是特定的
居中属性):
td{
边框:1px实心#eee;
填充:1rem;
}
td[世界其他地区]{
背景色:rgba(255,0,0,07);
边框:1px纯红;
}
A.
x
x
x
x
x
解决方案1:与
valign
和align
一起使用和(它们是特定的
居中属性):
td{
边框:1px实心#eee;
填充:1rem;
}
td[世界其他地区]{
背景色:rgba(255,0,0,07);
边框:1px纯红;
}
A.
x
x
x
x
x
也许有更好的方法可以做到这一点。但是当你叠加元素时,事情会变得一团糟,因为你需要使用绝对定位。无论如何,这里有一些代码和一个示例来帮助您开始
我不知道你的具体情况是什么,但是你可以通过JavaScript动态地获得你需要的维度来动态地设置CSS
HTML
<span id="table-overlay-text-2">B</span>
<span id="table-overlay-text-1">A</span>
<table id="table1">
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
<br />
<table id="table1">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
也许有更好的方法可以做到这一点。但是当你叠加元素时,事情会变得一团糟,因为你需要使用绝对定位。无论如何,这里有一些代码和一个示例来帮助您开始 我不知道你的具体情况是什么,但是你可以通过JavaScript动态地获得你需要的维度来动态地设置CSS HTML
<span id="table-overlay-text-2">B</span>
<span id="table-overlay-text-1">A</span>
<table id="table1">
<tr>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
<br />
<table id="table1">
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
您能提供您已经编写的代码吗?几个问题#1从语义上讲,文本是否需要存在于表中#2单元格组始终是整个表格还是仅是表格的一部分,或者两者都是可能的#3表中是否有内容,文本是否会叠加在其上?#1文本无需成为表的一部分,它可以是不同的元素(我曾想过使用两个重叠的表并使用
位置
)#2单元格组可以只是表格的一部分。要提供正确答案,我们需要知道任何边缘情况,例如单元格大小可能不相等、单元格/行的动态数量等。请提供一个示例,以使其更加清晰。@LG。我刚意识到你的答案是正确的。而且它与桌子无关。用
更改
,这个问题被问了1000次。这不是以一组细胞为中心(这是我的回答),而是以整个
为中心。因此,请重复结束。您能提供您已经编写的代码吗?几个问题#1从语义上讲,文本是否需要存在于表中#2单元格组始终是整个表格还是仅是表格的一部分,或者两者都是可能的#3表中是否有内容,文本是否会叠加在其上?#1文本无需成为表的一部分,它可以是不同的元素(我曾想过使用两个重叠的表并使用位置
)#2单元格组可以只是表格的一部分。要提供正确答案,我们需要知道任何边缘情况,例如单元格大小可能不相等、单元格/行的动态数量等。请提供一个示例,以使其更加清晰。@LG。我刚意识到你的答案是正确的。而且它与桌子无关。用
更改
,这个问题被问了1000次。这不是以一组细胞为中心(这是我的回答),而是以整个
为中心。因此,以复制方式结束。问题是,我希望保持单元格的原样,即在我的左图中,总共保留4个td
。我这样做有两个原因:1)我需要显示所有的边界(包括内部边界);2) 我需要4td
,因为它们有唯一的ID,我需要使用它们进行操作。你不能既吃蛋糕又吃蛋糕,@dsesto。单靠CSS和HTML是无法做到这一点的。不管怎样,你都需要JavaScript(获取rowspan/colspan元素中“单元格”的大小并模仿它,或者使用其中一个单元格并将其内容溢出到其他单元格之上。实际上,这是一种很有技巧的方法。将内容放在靠近中间的单元格中,并使用transform:translate(-50%,-50%)进行转换
让它移位,并按大小的一半上移。你还需要根据td的填充和边距给它一个左上边距为负数的包装器。这样会起作用。@AndreiGheorghiu这是一个简单的位置,它与表的绝对位置一样,是相对的祖先,然后将其转换为中间位置……贴出了一个答案:@LGSon,如果你想的话就不要了它以大小不等的行/列为中心。这就是CSS网格的用武之地。好吧,现在我们不讨论这个问题,因为OP询问HTML表,并且图像显示它们大小相等,但当然,如果愿意,也可以扭曲任何内容使其不起作用。问题是,我希望保持单元格的原样,即在我的l中eft图像总共保留4个td
。我希望这样做有两个原因:1)我需要