html - 使用水平标签和垂直标签改进输入表单

标签 html css alignment label

你能看看 this link 后面的 HTML/CSS 代码和结果吗? ?

CSS 部分:

div2 {display: table-cell; vertical-align: middle; border: 0px solid red; }

input {margin: 5px; }
label1 {margin-left: 140px; }
label2 {margin-left: 100px; }
label3 {margin-left: 90px; }
label {margin-left: 10px; margin-right: 20px; }

HTML 部分:

<div1>
    <label1>First name</label1>
    <label2>Last name</label2>
    <label3>Date of birth</label3>
</div1>


<div2>
    <label for='name'>Person 1:</label>
    <input type='text' id='name' />
    <input type='text' id='name' />
    <input type='text' id='name' />
<br>
    <label for='name'>Person 2:</label>
    <input type='text' id='name' />
    <input type='text' id='name' />
    <input type='text' id='name' />
<br>
    <label for='name'>Person 3:</label>
    <input type='text' id='name' />
    <input type='text' id='name' />
    <input type='text' id='name' />
<br>
    <label for='name'>Person 4:</label>
    <input type='text' id='name' />
    <input type='text' id='name' />
    <input type='text' id='name' />
<br>
    <label for='name'>Person 5:</label>
    <input type='text' id='name' />
    <input type='text' id='name' />
    <input type='text' id='name' />  
</div2>

有没有办法自动对齐顶部的标签,使它们与下面的列完全匹配?期待您的建议。问候,彼得

最佳答案

使用display:tabletable

* {
    padding;
    0;
    margin: 0;
}
.wrapper {
    display: table;
    table-layout: fixed;
}
.row {
    display: table-row;
}
.cell {
    display: table-cell;
    vertical-align: middle;
    border: 0px solid red;
    padding: 5px 10px;
    vertical-align: middle;
}
.row:nth-child(1) {
    text-align: center;
}
.row:nth-child(1) .cell {
    padding-bottom: 0;
}
.row:nth-child(1) .cell label {
    margin-bottom: 0;
}
input, label {
    display: block;
    width:100%;
    margin: 5px 0;
}
label {
    margin-left: 5px;
    margin-right: 15px;
}
<div class="wrapper">
    <div class="row">
        <div class="cell"></div>
        <div class="cell">
            <label>First name</label>
        </div>
        <div class="cell">
            <label>Last name</label>
        </div>
        <div class="cell">
            <label>Date of birth</label>
        </div>
    </div>
    <div class="row">
        <div class="cell">
            <label for='name'>Person 1:</label>
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
    </div>
    <div class="row">
        <div class="cell">
            <label for='name'>Person 2:</label>
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
    </div>
    <div class="row">
        <div class="cell">
            <label for='name'>Person 3:</label>
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
    </div>
    <div class="row">
        <div class="cell">
            <label for='name'>Person 4:</label>
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
    </div>
    <div class="row">
        <div class="cell">
            <label for='name'>Person 5:</label>
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
        <div class="cell">
            <input type='text' id='name' />
        </div>
    </div>
</div>

关于html - 使用水平标签和垂直标签改进输入表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30601767/

相关文章:

php - 带有自定义媒体查询的 Bootstrap 移动菜单

html - Chrome 打印表格,有些行的高度是随机的?

css - 无法清除两个堆叠的奇点隔离跨度框,否则侧翼框会移动

android - 在 android.R.id.content 之上添加 View 并对齐

javascript - 在下拉列表中选择时显示无中断 chart.js

javascript - 如何在创建选项时更改选项的背景图像?

javascript - Foundation5 停止下拉菜单可点击

javascript - jquery .click 事件不适用于 chrome 扩展中的图像

css - 弹窗可编辑和不可编辑标签的对齐问题

html - 如何使垂直列表水平移动?