现在我有这个HTML代码:
<ul>
<li>
<input checked="checked" id="user_remember_me" name="user[remember_me]" type="checkbox" value="true">
<div class="login-link">
Запомнить меня
</div>
</li>
<li>
<a href="/users/sign_up" class="login-link">Регистрация</a>
</li>
<li>
<a href="/users/sign_up" class="login-link">Забыли пароль?</a>
</li>
</ul>
所有这里: http://jsfiddle.net/4GtKQ/
另见图片:
但为什么我在“Запомнитьменя”和“Регистрация”之间获得这样的空间?如何在普通的行网格中设置它们?
答案 0 :(得分:1)
复选框和相关文本会占用不同数量的垂直空间。您指向的额外空间是两个元素沿着框的上边缘排列的结果。
假设您希望文本和输入具有相同的基线和使文本与左边缘对齐并且复选框与右边缘对齐,则完成的标记和CSS将如下所示:
HTML:
<li class="remember">
<label>Запомнить меня
<input checked="checked" id="user_remember_me" name="user[remember_me]"
type="checkbox" value="true">
</label>
</li>
CSS:
li.remember {
text-align: left;
}
li.remember input {
float: right;
}
答案 1 :(得分:0)
显然是因为复选框,我确信你可以绕过它,但我建议你把它们分开来作为单独的元素,然后用CSS排队。复选框不一定要有与之关联的标签,只需确保它具有可访问性需求的用户的标题。
对不起,我不能给你一个确切的解决方案,如果你能提供一个真实的网址(完整的网页),我写的语言对你来说非常困难我认为在这种情况下你会得到更多我们可以使用Chrome的Inspect Element之类的回复。不要误解JSfiddle很好,但这是一个例外。
答案 2 :(得分:-3)
<li style="position:relative; top: -5px;">
<a href="/users/sign_up" class="login-link">Регистрация</a>
</li>