如何对齐多个表单元素?

发布于 2024-10-22 02:06:00 字数 391 浏览 0 评论 0原文

我对设计一无所知,我正在尝试让一个简单的 HTML 表单看起来像这样:

基本上,它是一个具有三个 输入字段和一个 提交按钮的表单。

关于输入字段,有两个在上面一个在下面。我希望它们彼此完全中心对齐,并且第二个拉伸到与上面的宽度相同。

关于提交按钮,我希望它与输入字段在水平和垂直方向上完全居中对齐,但位于这些字段的右侧。

我不太担心它不能完全跨浏览器。

感谢您的指点!

编辑:我更喜欢使用 CSS 完成而不是基于表格。 (我听说基于表格的做法简直就是邪恶。)

I've no clue at design, and I'm trying to get a simple HTML form to look like this:
.

Basically, it's a form with three input fields and one submit button.

Regarding the input fields, there are two on top and one below. I'd like these to be perfectly centre-aligned with each other and the second one to stretch to be the same width as the ones above.

Regarding the submit button, I'd like it to be perfectly center-aligned, both horizontally and vertically, with the input fields, but be to the right of these.

I'm not too worried about it not being fully cross-browser.

Thanks for any pointers!

Edit: I'd prefer if it were done with CSS rather than be table-based. (I hear table-based is just plain evil.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凉世弥音 2024-10-29 02:06:01

你可以用一张桌子。 :) 这是为您准备好的代码:

<table>
  <tbody>
    <tr>
      <td><input type="text" /></td>
      <td><input type="text" /></td>
      <td rowspan="2" style="vertical-align:middle;"><input type="submit" /></td>
    </tr>
    <tr>
      <td colspan="2"><input style="width:100%" type="text" /></td>
    </tr>
  </tbody>
</table>

You could use a table. :) Here's the code ALL ready for ya:

<table>
  <tbody>
    <tr>
      <td><input type="text" /></td>
      <td><input type="text" /></td>
      <td rowspan="2" style="vertical-align:middle;"><input type="submit" /></td>
    </tr>
    <tr>
      <td colspan="2"><input style="width:100%" type="text" /></td>
    </tr>
  </tbody>
</table>
情定在深秋 2024-10-29 02:06:00

用纯 CSS 来做这样的事情怎么样?顺便说一句......您知道有关输入字段和搜索按钮的具体尺寸吗?如果我知道一些尺寸,我可能可以做得更干净一些。不管怎样,看看演示...

http://jsfiddle.net/zxSFp/1/

HTML

<div id="wrap">
    <div id="fields">
        <input type="text" id="left" />
        <input type="text" id="right" />
        <div class="clear"></div>
        <input type="text" id="bottom" />
    </div>
    <input type="button" value="Search" id="search-button" />
</div>

CSS

#wrap {
    min-width: 375px;
    position: relative;
}
#fields {
    float: left;
    position: relative;
}
#left {
    height: 15px;
    width: 150px;
    float: left;
    position: relative;
}
#right {
    height: 15px;
    width: 150px;
    margin-left: 5px;
    float: left;
    position: relative;
}
#bottom {
    height: 15px;
    width:309px;
    margin-top: 5px;
    position: relative;
}
#search-button {
    position: relative;
    left: 15px;
    top: 12px;
}
.clear {
    clear: both;
}

我希望这有帮助。

How about something like this with pure CSS? By the way... do you know specific dimensions regarding your input fields and the search button? I could probably do this a little cleaner if I knew some dimensions. Anyway, check out the demo...

http://jsfiddle.net/zxSFp/1/

HTML

<div id="wrap">
    <div id="fields">
        <input type="text" id="left" />
        <input type="text" id="right" />
        <div class="clear"></div>
        <input type="text" id="bottom" />
    </div>
    <input type="button" value="Search" id="search-button" />
</div>

CSS

#wrap {
    min-width: 375px;
    position: relative;
}
#fields {
    float: left;
    position: relative;
}
#left {
    height: 15px;
    width: 150px;
    float: left;
    position: relative;
}
#right {
    height: 15px;
    width: 150px;
    margin-left: 5px;
    float: left;
    position: relative;
}
#bottom {
    height: 15px;
    width:309px;
    margin-top: 5px;
    position: relative;
}
#search-button {
    position: relative;
    left: 15px;
    top: 12px;
}
.clear {
    clear: both;
}

I hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文