Html 为什么连续表元素在浏览器中显示在新行上?

Html 为什么连续表元素在浏览器中显示在新行上?,html,jquery,css,html-table,Html,Jquery,Css,Html Table,我有4个标签+单选按钮,我想在同一行上彼此相邻显示: +--------+ +--------+ +--------+ +--------+ | NONE | | NO | | Yes | | N/A | +--------+ +--------+ +--------+ +--------+ | Button | | Button | | Button | | Button | +--------+ +--------+ +--------+ +--------+ 取而

我有4个标签+单选按钮,我想在同一行上彼此相邻显示:

+--------+ +--------+ +--------+ +--------+
|  NONE  | |   NO   | |   Yes  | |  N/A   |
+--------+ +--------+ +--------+ +--------+
| Button | | Button | | Button | | Button |
+--------+ +--------+ +--------+ +--------+
取而代之的是,每个Label+按钮都会出现在浏览器中的单独一行(Chrome或MSIE 11)。HTML中没有显式的换行符元素。他们为什么要走自己的路线?我如何让他们走在一起? 这是COTS产品中表单的一部分。我不能完全控制生成的HTML、CSS或JS

作为一个额外的加分问题,为什么jQuery会自动在我的表中添加TBODY元素?我不会这么做的

以下是我使用jQuery生成的HTML:


(无)
不
对
不适用

表不是这样工作的

首先,每个
都是一个块元素,因此除非特别说明不要这样做,否则表后面的下一个元素将显示在它下面

在表中,每个
表示一个表行(它们堆叠在一起)。在每一行中,每个
表示该行的一列(它们在该行中彼此相邻显示)

如果确实要使用
,则必须将标签放在第一个
中,将所有按钮放在第二个


您可能希望探索其他选项(大多数人会说您绝对应该这样做,因为从语义上讲,这不是表的用途)。您可以使用4个
div
,每个div包含label+按钮,并使它们彼此相邻,或者使用
flex
实现相同的效果

当您使用
..
并创建了四个单独的表时,您将每个元素放入自己的行中。
是一个内联元素,而
是一个块级元素。我想你会想使用CSS的
display:flex(应该是
)。很好的解释涵盖了所有相关方面!多亏了@Victoria Ruiz,我才有了一个“嗯,嗯”的时刻。(现在)显而易见的答案是1个表格,2行(标签在第一行,按钮在第二行),每行4个单元格。由于时间限制,我不敢尝试基于DIV/SPAN或CSS的方法,我知道如何使用表,而且解决方案必须在表密集型COTS框架内工作。