【问题标题】:Why are sequential TABLE elements displayed on new lines in browser?为什么在浏览器的新行上显示顺序 TABLE 元素?
【发布时间】:2022-02-22 01:34:31
【问题描述】:

我有 4 个标签 + 单选按钮,我想在同一行并排显示:

+--------+ +--------+ +--------+ +--------+
|  NONE  | |   NO   | |   Yes  | |  N/A   |
+--------+ +--------+ +--------+ +--------+
| Button | | Button | | Button | | Button |
+--------+ +--------+ +--------+ +--------+

相反,每个 Label + Button 都会在浏览器(Chrome 或 MSIE 11)中单独一行。 HTML 中没有明确的换行元素。为什么他们要走自己的路线,我如何让他们在一起? 这是 COTS 产品中表格的一部分。我无法完全控制生成的 HTML、CSS 或 JS。

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

这是我用 jQuery 生成的 HTML:

<span id="F1538.wrapper" class="fieldWidget">
       <table><tbody>
          <tr><td><label for="F1538">(None)</label></td></tr>
          <tr><td><input type="radio" name="F1538" value="0" checked="checked"></td></tr>
       </tbody></table>
       <table><tbody>
          <tr><td><label for="F1538">No</label></td></tr>
          <tr><td><input type="radio" name="F1538" value="782"></td></tr>
       </tbody></table>
       <table><tbody>
          <tr><td><label for="F1538">Yes</label></td></tr>
          <tr><td><input type="radio" name="F1538" value="783"></td></tr>
       </tbody></table>
       <table><tbody>
          <tr><td><label for="F1538">N/A</label></td></tr>
          <tr><td><input type="radio" name="F1538" value="784"></td></tr>
       </tbody></table>
    </span>

【问题讨论】:

  • 当您使用 &lt;tr&gt;...&lt;/tr&gt; 时,您会将每个元素放入自己的行中,并且您已经创建了四个单独的表。
  • &lt;span&gt; 是内联元素,但 &lt;table&gt; 是块级元素。我想你会想要使用 CSS 的 display: flex; 作为父元素(应该是 &lt;div&gt;&lt;section&gt;)。

标签: javascript html jquery css html-table


【解决方案1】:

这不是表格的工作方式。

首先,每个&lt;table&gt; 都是一个块元素,所以除非明确告知不要这样做,否则表格之后的下一个元素将显示在其下方。

在表格中,每个&lt;tr&gt; 代表一个表格行(它们相互堆叠)。在每一行中,每个&lt;td&gt; 代表该行的一列(它们在该行中彼此相邻显示)。

如果你真的想使用&lt;table&gt;,你必须把标签放在第一个&lt;tr&gt;,然后把所有的按钮放在第二个。

您可能想要探索其他选项(大多数人会说您绝对应该这样做,因为从语义上讲,这不是表格的用途)。您可以使用 4 个 divs,每个都包含标签 + 按钮,并使它们彼此相邻 float,或者使用 flex 达到相同的效果。

【讨论】:

  • 很好的解释,涵盖了所有相关方面!
  • 感谢@Victoria Ruiz,我有一个“好吧,呃”的时刻。 (现在)显而易见的答案是 1 个表格,2 行(第一行的标签,第二行的按钮),每行 4 个单元格。由于时间限制,我对尝试基于 DIV / SPAN 或 CSS 的方法犹豫不决,我知道如何处理表格,并且解决方案必须在表格密集型 COTS 框架内工作。
猜你喜欢
  • 2015-05-15
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
  • 2014-05-07
  • 2013-03-15
  • 2019-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多