[英]How to account for the span tag ASP uses to apply a style to input tag?
我有一个使用以下CSS的自定义复选框
.yesNoBox {
display: none;
}
.yesNoBox + label {
border-radius: 10px;
display: inline-block;
padding: 2px 10px;
cursor: pointer;
}
.yesNoBox + label:after {
padding-left: 8px;
color: gray;
content: "NO";
vertical-align: middle;
}
.yesNoBox:checked + label:after {
color: green;
content: "YES";
font-weight: bold;
}
.yesNoBox + label > span {
height: 16px;
border-radius: 8px;
width: 16px;
background-color: lightgray;
display: inline-block;
vertical-align: middle;
}
.yesNoBox:checked + label > span {
background-color: green;
}
CSS是为以下html设计的
<input id="General_Vehicles" name="General_Vehicles" type="checkbox">
<label for="General_Vehicles"><span></span></label>
但是,由于我正在使用ASP Checkbox控件,ASP控件将<input>
包装在<span>
,而是提供以下html:
<span class="yesNoBox"><input id="General_Vehicles" name="General_Vehicles" type="checkbox"></span>
<label for="General_Vehicles"><span></span></label>
我设置了以下两个小提琴,显示每个html块的行为:
如何使用额外的跨度在我的ASP页面上运行? 我不想要JavaScript解决方案或代码隐藏解决方案。
如果你无法更新标记本身,那么我不完全确定这将是纯粹通过CSS的可能性。
CSS缺少任何类型的父母选择器 ,这需要定位:checked
元素的父元素,以便可以通过+
或~
运算符来定位adjecent元素。 如果存在一个这样的运算符,您只需要:
/* If your yesNobox is the parent of a :checked element, then target the next label */
.yesNoBox:has(:checked) + label:after { ... }
您可能需要求助于基于Javascript的解决方案,或者能够明确地编辑标记以便可能实现这一点,正如您所提到的那样似乎是不可能的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.