【发布时间】:2018-08-03 07:56:20
【问题描述】:
.left-col {
width:25%; }
label {
width:100%;
position:relative; }
input[type="checkbox"] + div::before {
right:-35px !important;
left: auto !important; }
input[type="checkbox"] + div::after {
left: auto !important;
right: -33px !important;
width: auto; }
<div class="left-col"> <label>
<span>text</span>
<input type="checkbox">
<div></div>
</label> </div>
我有两列表格。我在标签内有带有 div 伪类的复选框。我需要将复选框定位在右列中并且仍然在标签内。 问题是,我不能这样改变它,该复选框将在标签内,并且在调整窗口大小时会保持在同一位置。
我可以保留带有负右属性的复选框,这样它在调整大小时不会改变位置,但是它在标签之外并且不可点击。
我可以更改标签的宽度 - 但是在调整大小时复选框会跳转。
有没有办法用 CSS 解决这个问题?
调整大小时没有负数的复选框位置:
我需要的复选框位置:
【问题讨论】:
-
为什么需要将输入放在标签内?
-
因为相同的checkbox html模型用在app的不同部分,如果用户可以点击标签的文本和“激活”复选框,会很方便。
-
好吧,但是给输入一个
id并使用标签的for属性更方便。这样你就可以把标签放在你想要的任何地方。这甚至可能适用于您的情况,试试吧。 -
是的,它已经在使用(使用 Angular)——每个复选框的“for”和“id”都不同。
标签: html forms css checkbox position