【问题标题】:Webform Layout: Table or something else网络表单布局:表格或其他
【发布时间】:2009-02-21 02:17:57
【问题描述】:

我必须创建一个看起来像这样的网络表单

列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列列 标签:输入 - 标签:输入 标签:输入 - 标签:输入 - 标签:输入 标签:输入 - 标签:输入 标签:输入 标签:输入 - 标签:输入 标签:输入-标签:输入-标签:输入-输入:标签

等等。

现在最好的方法是什么? 我一直在尝试使用 css 完成的方法,但我一次又一次地失败了。

我应该继续使用表格,还是有一个简单的方法可以用 css 做到这一点?

【问题讨论】:

    标签: css layout webforms xhtml html-table


    【解决方案1】:

    只需使用表格即可。表格适用于表格数据,例如具有列和行的内容......就像您的情况一样!

    【讨论】:

    • 在这里。在 HTML 和 CSS 的狂野世界中,做任何看起来正确的事情,最终都会变成 hack ;)
    【解决方案2】:

    这样的事情怎么样?

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <style type="text/css">
        .column {
          width: 200px;
          float: left;
        }
    
        .column label {
          clear: both;
          float: left;
          margin-right: 10px;
          margin-bottom: 5px;
          text-align: right;
          width: 75px;
        }
    
        .column input {
          float: left;
          width: 100px;
        }
      </style>
    </head>
    
    <body>
      <div class="column">
        <label>Label 1:</label> <input type="text" />
        <label>Label 2:</label> <input type="text" />
        <label>Label 3:</label> <input type="text" />
        <label>Label 4:</label> <input type="text" />
      </div>
    
      <div class="column">
        <label>Label 5:</label> <input type="text" />
        <label>Label 6:</label> <input type="text" />
        <label>Label 7:</label> <input type="text" />
        <label>Label 8:</label> <input type="text" />
      </div>
    </body>
    </html>
    

    如果您喜欢这样,您可以考虑使用字段集而不是列的 div。他们的风格很好,更语义化。不过,无论哪种方式都很好。

    【讨论】:

    • 非常感谢!这正是我想要的。
    • 这种方法除了最简单的形式外,还能用吗?
    • 对于较大的表单,您需要更多的样式规则,但是这种方法确实有效,是的。特别是,fieldset 元素非常适合将大型表单分解为更小、更容易解决的问题。将字段集块组合在一起似乎比将几十个表单元素组合在一起更容易。
    【解决方案3】:

    您的示例格式没有采用吗?如果您只想要一个标签、输入控件和一个空格,只需将控件添加到页面,无需任何格式。 HTML 会以这种方式布局。

    但是,我假设您需要某种列。你有几种可能性。最不灵活的是绝对定位控件(标记)。

    您可以使用表格,这是最直接的。但是,纯粹主义者会争辩说,表格是用于数据的,而不是用于布局的。

    您还可以使用浮动一系列 DIV 来表示列:一列表示标签,一列表示输入,第三列表示标签,第四列表示输入,等等。

    编辑:如果您不担心标签与标签垂直排列并且输入与输入垂直排列,只需在每列中放置一个标签 + 输入对,无论您选择哪种方法。

    【讨论】:

    • 你碰巧有一个左浮动 div 的例子吗?我试过弄乱浮点数,有些东西在 Firefox 和 chrome 中有效,而另一些则没有。不过谢谢!
    • Column1
      Column2
      .. .等等
    猜你喜欢
    • 1970-01-01
    • 2018-01-25
    • 2011-10-28
    • 2013-04-24
    • 2019-10-04
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多