使用CSS table-row 实现表单布局

效果图:

里面的表单分为左右两块,以中间为分割,左边靠右对齐,右边靠左对齐。
使用 table-row 可以方便的实现。

HTML代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<form class="" action="index.html" method="post">
<div class="tableRow">
<p>请输入邮箱地址:</p>
<p>
<input class="right" type="text" name="" value="" placeholder="这是一个文本输入框"> <br>
<span class="tips">邮箱地址请按格式输入</span>
</p>
</div>
<div class="tableRow">
<p>请输入密码:</p>
<p>
<input class="right" type="text" name="" value="" placeholder="这是一个文本输入框">
</p>
</div>
<div class="tableRow">
<p>请重复输入密码:</p>
<p>
<input class="right" type="text" name="" value="" placeholder="这是一个文本输入框"> <br>
<span class="tips">密码请为6-16位英文数字</span>
</p>
</div>
<div class="tableRow">
<p>性别:</p>
<p>
<input class="right" type="radio" name="gender" value="man">
<input type="radio" name="gender" value="woman">
</p>
</div>
<div class="tableRow">
<p>城市:</p>
<p>
<select class="city right" name="">
<option value="beijing">北京</option>
<option value="shanghai">上海</option>
<option value="guangzhou">广州</option>
<option value="shenzhen">深圳</option>
</select>
</p>
</div>
<div class="tableRow">
<p>爱好:</p>
<p>
<input type="checkbox" name="hobby" value="">游泳
<input type="checkbox" name="hobby" value="">跑步
<input type="checkbox" name="hobby" value="">阅读
</p>
</div>
<div class="tableRow">
<p>个人描述:</p>
<p>
<textarea class="right" name="name" rows="8" cols="80" placeholder="这是一个多行输入框"></textarea>
<button class="sub" type="button" name="button">确认提交</button>
</p>
</div>
</form>

在页面中每一行使用div包起来,然后左侧和右侧分别放在p标签中。设置div为table-row布局,子元素p为table-cell布局。
CSS

1
2
3
4
5
6
7
8
9
10
11
12
13
div.tableRow {
display: table-row;
}
div.tableRow p {
display: table-cell;
width: 200px;
vertical-align: top;
padding: 4px;
}
div.tableRow p:first-child {
text-align: right;
}

其中第一个子元素可通过伪元素设置右对齐。

如果对您有帮助,可以请我喝咖啡