javascript - 为什么在浏览器的新行上显示连续的 TABLE 元素?
问题描述
我有 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>
解决方案
这不是桌子的工作方式。
首先,每个<table>
元素都是一个块元素,所以除非明确告知不要,否则表格之后的下一个元素将显示在其下方。
在表格中,每个<tr>
代表一个表格行(它们相互堆叠)。在每一行中,每个<td>
代表该行的一列(它们在该行中彼此相邻显示)。
如果您真的想使用 a <table>
,则必须将标签放在第一个中<tr>
,将所有按钮放在第二个中。
您可能想探索其他选项(大多数人会说您绝对应该这样做,因为从语义上讲,这不是表格的用途)。您可以使用 4 divs
,每个都包含标签 + 按钮,并使它们float
彼此相邻,或使用flex
以达到相同的效果。
推荐阅读
- python - 每次我尝试从烧瓶中导入烧瓶时,它都会显示导入错误。我应该怎么办?
- android - Android:java.lang.NoSuchMethodError:没有静态方法decodeHex
- php - 使用 Laravel 5.7 将 Json 导入数据库时出错
- php - PHP/MYSQL 错误:mysqli_result 类的对象无法转换为字符串
- sqlite - 无法加载 SQLite3.dll!Autohotkey 未发现错误
- ocr - Nativescript OCR 失败并出现一般错误
- python - 如何根据 NaN 之后的下一个有效值等于上一个有效值的条件回填 NaN 值
- google-apps-script - 如果单元格的值低于某个值,则发送电子邮件
- c++ - C++ 模板模板参数
- mysql - 列表包含非聚合列“otpallet_pokemonpalet.p.id”