我正试图在一些单选按钮周围设置一个鲜艳的红色边框,但它没有出现在Firefox最新版或最新版Chrome中。在IE9 / IE8中正常工作。
我需要的表单上的每个输入元素都有一个由MVC3输入的data-val-required属性。当我们有文本或textarea输入时,所有浏览器都会在红色边框中放入花花公子,但我正在努力使用单选按钮。对于IE,它可以工作,但其他浏览器不会在它周围放置红色边框。
的CSS:
input[data-val-required], select[data-val-required], textarea[data-val-required]
{
background-color: #F0FFFF;
border: 1px solid red;
}
视图源:
<label for="WaiveSelect">Do you waive confidentiality?</label><br />
<input data-val="true" data-val-number="The field WaiveSelect must be a number." data-val-required="Please select waive." id="WaiveSelect" name="WaiveSelect" type="radio" value="0" /> No, I do not waive confidentiality<br />
<input id="WaiveSelect_2" name="WaiveSelect" type="radio" value="2" /> Yes, I waive confidentiality<br />
<input id="WaiveSelect_3" name="WaiveSelect" type="radio" value="3" /> Yes, I waive confidentiality except to the client<br />
<span class="field-validation-valid" data-valmsg-for="WaiveSelect" data-valmsg-replace="true"></span>
在IE中它看起来像什么(Firefox和Chrome显示没有边框):
答案 0 :(得分:55)
input[type=radio]{
outline: 1px solid red
}
答案 1 :(得分:7)
你可以通过包装每个&lt; input type =“radio”/&gt;与&lt; div>标记并给它一个边框和一个浮动左边......像这样
<div style="border:1px solid red;float:left">
<input type="radio".. />
</div>
No, I do not waive confidentiality
答案 2 :(得分:7)
我知道这已经有四年了,但是我想出了一个使用CSS Pseudo元素的好解决方案。
我的要求是在验证中突出显示未选中的复选框或单选按钮。
<input type="radio" class="required" name="radio1"/>
/* Radio button and Checkbox .required needs an after to show */
input[type=radio].required::after, input[type=checkbox].required::after {
display: block;
width: 100%;
height: 100%;
background: transparent;
content: '';
border: 2px solid red !important;
box-sizing: border-box;
}
/* Radio buttons are round, so add 100% border radius. */
input[type=radio].required::after {
border-radius:100%;
}
答案 3 :(得分:2)
并非所有浏览器都支持单选按钮和复选框周围的边框。我在几年前投了一个错误,把它包含在Gecko中,但到目前为止他们还没有实现它。
答案 4 :(得分:2)
这可能会对您有所帮助:
.style {
border: 1px solid red;
width: 20px;
height: 20px;
text-align: center;
margin-top: 2px;
background-color: #f0ffff;
}
<div class="style">
<input type="radio" />
</div>
<div class="style">
<input type="radio" />
</div>
<div class="style">
<input type="radio" />
</div>
<div class="style">
<input type="radio" />
</div>
答案 5 :(得分:0)
使用jquery完成代码
https://jsfiddle.net/xcb26Lzx/
$(function(){
$('.layer').css('border',0);
$('input:radio').change(
function(){
if ($(this).is(':checked')) {
$('.layer').css('border','1px solid red');
}
});
});
答案 6 :(得分:0)
试试这个......
在输入周围放一个div,并为div分配一个类,如下所示:
<div class="custom"><input type="radio"></div>
然后打开自定义css文件并添加此CSS
.custom {border: 1px solid red; border-radius: 30px; padding: 3px 3px 0 3px; background: red;}
这应该在单选按钮周围创建一个漂亮的红色边框。如果您使用复选框,则只需从css中删除border-radius:30px即可。根据您可能需要稍微使用填充来使按钮居中,但这对我有用。
编辑:您还需要将以下CSS分配给div,以便正确排列。
.custom {display: inline;}