Html “布局”;标签-价值“;不使用桌子而居中
因此,您通常会有许多标签(让我们使用名称、年龄、颜色)和每个标签的值 如果我把它们放在一个2列3行的表格中,我可以确保这些值(让我们使用Steve,19,红色)都从相同的水平位置开始 如果我想让那列左对齐,如果我也想让标签列右对齐。然后,这两列将在表的中心很好地相交Html “布局”;标签-价值“;不使用桌子而居中,html,css,tabular,Html,Css,Tabular,因此,您通常会有许多标签(让我们使用名称、年龄、颜色)和每个标签的值 如果我把它们放在一个2列3行的表格中,我可以确保这些值(让我们使用Steve,19,红色)都从相同的水平位置开始 如果我想让那列左对齐,如果我也想让标签列右对齐。然后,这两列将在表的中心很好地相交 如果不使用桌子,又不必设置固定的宽度,我怎么能这样做呢 我听到你在说什么,但我可以提醒你,表格可以用于表格数据 但要使用纯CSS实现这一点,您可以将标签和值向左浮动,然后清除,并将这两个元素设置为显示50%宽度的块。我想您需要jav
如果不使用桌子,又不必设置固定的宽度,我怎么能这样做呢 我听到你在说什么,但我可以提醒你,表格可以用于表格数据
但要使用纯CSS实现这一点,您可以将标签和值向左浮动,然后清除,并将这两个元素设置为显示50%宽度的块。我想您需要javascript来解决这个问题。我不相信有一个纯粹的CSS解决方案
事实上,在标签宽度可能不同的多语言网站中工作时,使用固定宽度可能是一个问题,或者宽度可能会根据浏览器设置(如文本大小)而变化…您将不得不解决为标签使用固定宽度的问题(如果使用纯CSS路线)以下是您想要完成的最低要求(从中提取) CSS: HTML: 我举了一个现场的例子
考虑到您所引用的用例,我实际上认为表格是更好的方式,但是我有一个。您可以使用UL LI列表来安排这个选项
<fieldset>
<legend>Sign-up Form</legend>
<form name="signup" action="index.html" method="post">
<ul>
<li> <label for="name">Name</label>
<input type="text" name="name" id="name" size="30" />
</li>
<li> <label for="email">Email</label>
<input type="text" name="email" id="email" size="30" />
</li>
<li> <label for="psw">Password</label>
<input type="text" name="psw" id="psw" size="30" />
</li>
<li> <label for="free">Free Subscrition</label>
<input type="radio" name="subscription" id="free"/>
</li>
<li><label for="submit"></label>
<button type="submit" id="submit">Send</button> </li>
<ul>
</form>
</fieldset>
css
fieldset ul, fieldset li{
border:0; margin:0; padding:0; list-style:none;
}
fieldset li{
clear:both;
list-style:none;
padding-bottom:10px;
}
fieldset input{
float:left;
}
fieldset label{
width:140px; // or you give width in % here
float:left;
}
报名表
- 名字
- 电子邮件
- 密码
- 免费订阅
-
发送
css
现场集ul,现场集li{
边框:0;边距:0;填充:0;列表样式:无;
}
李场集{
明确:两者皆有;
列表样式:无;
垫底:10px;
}
字段集输入{
浮动:左;
}
字段集标签{
宽度:140px;//或者在这里用%表示宽度
浮动:左;
}
我也听到了你说的话(lol),只是用表来表示一个值似乎不太合适,在我眼里,它更像是一个列表我不能有固定的宽度,因为标签将有可变的宽度和lo!当你谈论其他完全不同的东西时,当你提到一个HTML元素时,你会感到困惑。伙计们,这是“标签-值对”,而不是标签
-输入
我想我们在这里讨论的表单对。问题是“不必设置固定宽度”,所以你的宽度:140px
不起作用。感谢你的输入,无法设置宽度的原因是由于一个多语言网站。引用这些似乎不是css解决方案,我将把你的答案标记为我能看到的最接近的答案!谢谢
<form>
<div><label>Item 1</label><input /></div>
<div><label>Item 2</label><input /></div>
<div><label>Item 3</label><textarea></textarea></div>
</form>
var largestWidth = 0;
$('label').each(
function() {
if ($(this).width() > largestWidth) {
largestWidth = $(this).width();
}
});
$('label').each(
function() {
$(this).width(largestWidth);
});
<fieldset>
<legend>Sign-up Form</legend>
<form name="signup" action="index.html" method="post">
<ul>
<li> <label for="name">Name</label>
<input type="text" name="name" id="name" size="30" />
</li>
<li> <label for="email">Email</label>
<input type="text" name="email" id="email" size="30" />
</li>
<li> <label for="psw">Password</label>
<input type="text" name="psw" id="psw" size="30" />
</li>
<li> <label for="free">Free Subscrition</label>
<input type="radio" name="subscription" id="free"/>
</li>
<li><label for="submit"></label>
<button type="submit" id="submit">Send</button> </li>
<ul>
</form>
</fieldset>
css
fieldset ul, fieldset li{
border:0; margin:0; padding:0; list-style:none;
}
fieldset li{
clear:both;
list-style:none;
padding-bottom:10px;
}
fieldset input{
float:left;
}
fieldset label{
width:140px; // or you give width in % here
float:left;
}