我正在尝试以与典型表格相同的方式排列3个fieldset元素的标题,但我无法按照我想要的方式获取它。这非常接近,但是......
<label style="vertical-align:top;">Title1</label>
<fieldset style="display:inline; border:none; padding:0px; margin:0px; vertical-align:middle;">
<input value="Lorem Ipsum" /><br />
<input value="Lorem Ipsum" /><br />
<input value="Lorem Ipsum" />
</fieldset>
<label style="vertical-align:top;">Title2</label>
<fieldset style="display:inline; border:none; padding:0px; margin:0px; vertical-align:middle;">
<input value="Lorem Ipsum" />
</fieldset>
<label style="vertical-align:top;">Title3</label>
<fieldset style="display:inline; border:none; padding:0px; margin:0px; vertical-align:middle;">
Lorem Ipsum
</fieldset>
如果有一种方法我没有在我的PHP代码中为title和fieldset元素运行if语句,我可能已经使用了表。另外,就漂亮代码而言,使用fieldset来表示我在这里所做的事情似乎是一个更好的选择。
对于与上述代码类似的任何建议? 澄清:http://anony.ws/di-FJKD.jpg
答案 0 :(得分:2)
你可以做的是从流中删除label
,这样它们就不会与输入/文本垂直对齐..通过绝对定位它们来做这个...这将需要一个父元素它上面有position: relative;
- 我假设上面的整个代码都在form element
中,但为了一个演示,我只是将所有代码都包装在div中。
HTML:
<div id="form">
<label>Title1</label>
<fieldset>
<input value="Lorem Ipsum" /><br />
<input value="Lorem Ipsum" /><br />
<input value="Lorem Ipsum" />
</fieldset>
<label>Title2</label>
<fieldset>
<input value="Lorem Ipsum" />
</fieldset>
<label>Title3</label>
<fieldset>
Lorem Ipsum
</fieldset>
</div>
CSS:
#form {
position: relative; /* labels need this on the their parent element */
}
fieldset {
margin: 0;
padding: 0;
border: 0;
padding-top: 30px; /* leave a space to position for the labels */
}
fieldset {display: inline-block; vertical-align: middle;}
fieldset {display: inline !ie7; /* IE6/7 need display inline after the inline-block rule */}
label {
position: absolute;
top: 5px;
left: auto;
margin-left: 5px;
font-weight: bold;
}
添加
因为评论中没有足够的空间,这里是我想的代码label
没有定位,要做到这一点,label
需要进入垂直对齐的字段集
#form {
position: relative; /* labels need this on the their parent element */
}
fieldset {
margin: 0;
padding: 0;
border: 0;
}
fieldset {display: inline-block; vertical-align: middle; background: #eee;}
fieldset {display: inline !ie7;}
label {
display: block;
font-weight: bold;
}
HTML:
<fieldset>
<label>Title1</label>
<input value="Lorem Ipsum" /><br />
<input value="Lorem Ipsum" /><br />
<input value="Lorem Ipsum" />
</fieldset>
<fieldset>
<label>Title2</label>
<input value="Lorem Ipsum" />
</fieldset>
<fieldset>
<label>Title3</label>
Lorem Ipsum
</fieldset>
答案 1 :(得分:2)
喜欢这个
.divTable {
display: table;
width: 50%;
}
.divRow {
display: table-row;
}
.cellOne,
.cellTwo {
display: table-cell;
padding: 20px;
width: 30%;
}
<fieldset id="fileConnSet">
<legend>File:</legend>
<div class="divTable">
<!--Table start-->
<div class="divRow">
<!--1st row, like <tr>-->
<div class="cellOne">
<!--1st column, like <td>-->
<label>Name:</label>
</div>
<div class="cellTwo">
<!--2nd column-->
<input type="text" />
</div>
</div>
<div class="divRow">
<!--2nd row, like <tr>-->
<div class="cellOne">
<label>Age:</label>
</div>
<div class="cellTwo">
<input type="text" />
</div>
</div>
<div class="divRow">
<!--3rd row, like <tr>-->
<div class="cellOne">
<label>Company:</label>
</div>
<div class="cellTwo">
<input type="text" />
</div>
</div>
</div>
<!--Table end-->
</fieldset>