Html 无表格形式

标签 html css html-table

我有一个 html 页面的一部分,我想以类似表格的方式显示它。我一直听说不要使用 <table>布局。我得到了一般推理。

  1. 标记变得臃肿,因此下载需要更长的时间,

  2. 表格是一次性呈现的(因此它可能会延迟加载,直到所有表格都被读取)

  3. 可能有无数其他原因。

我倾向于“不要使用表格作为默认布局方法,但如果有意义就去做”

所以我想看看在没有表格的情况下如何完成以下任务。

<table>
  <tr>
    <td>First Name</td>
    <td><input type="text"/></td>
  </tr>
  <tr>
    <td>Last Name</td>
    <td><input type="text"/></td>
  </tr>
  <tr>
    <td>Phone Number</td>
    <td><input type="text"/></td>
  </tr>
</table>

所以要求是我想要所有 input s 垂直排列,这意味着第一个“列”必须拉伸(stretch)到所有“行”的最宽宽度

我不想明确指定任何列的宽度

我读过好几页都说 <table> 有多邪恶对于布局,我同意一些观点,但我认为添加一堆 div 来模仿表格也有点愚蠢。我的意思是,有一系列带有 clear:left 类的 div。它更难阅读。

无论如何,我真的很想“见光”。

更新:

作为对答案的回应,我认为对我来说最好的实现是这样的:

css(这基本上要求我只在最顶层的 div 上指定一个类):

div.table
{
    display:table
}

div.table div
{
    display:table-row
}

div.table div div
{
    padding:5px;
    display:table-cell;
}

然后有这样的标记:

<div class="table">
  <div>
    <div>First Name</div>
    <div><input type="text"/></div>
  </div>
  <div>
    <div>Last Name</div>
    <div><input type="text"/></div>
  </div>
  <div>
    <div>Phone Number</div>
    <div><input type="text"/></div>
  </div>
</div>

最佳答案

A List Apart有一篇关于这个问题的好文章。

他们使用

  • <ul></li>
  • <Fieldset>
  • <label>

元素——语义上非常正确,甚至源代码看起来也不错。

关于Html 无表格形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3301365/

相关文章:

html - 分享链接在 iphone 上不起作用,但在桌面上有效

javascript - 操作 HTML/CSS 的 VS 扩展

javascript - 在 ios+chrome 上输入输入框很慢/非常慢

javascript - 从列表标签和表格标签中删除 HTML 中的空白

javascript - 如何使用 google-appscripts 在我的电子邮件中将 google 幻灯片作为附件发送?

html - 我可以使用元素的属性来创建样式规则吗?

html - 居中和右对齐flexbox元素

html - 如何在div中居中动态变化的网格?

javascript - 如何在表的第一列和最后一列之间动态添加列

javascript - D3.js过滤现有的html表