怎么修改单选框radio默认样式

怎么修改单选框radio默认样式

苏生不惑苏生不惑  5.6k 2014年05月27日 提问
  •  1 关注
  •  3 收藏,27.4k 浏览
0

默认radio的样式为:

怎么改为图片替代,并能获取选中的值

3 个回答

1
采纳
StephenLee 5.7k  2014年05月27日 回答 · 2014年05月28日 更新

苏生兄你标签选的 jQuery,那么我就用 jQuery 尝试实现下这个效果,因为 jQuery 学得不深,因此不一定是最佳方案,背景图直接从网上找到。:)
先把 HTML 码好:

<div>
  <input type="radio" id="nba" checked="checked" name="sport" value="nba">
  <label name="nba" class="checked" for="nba">NBA</label>
  <input type="radio" id="cba" name="sport" value="cba">
  <label name="cba" for="cba">CBA</label>
</div>

接着是 CSS:

input[type="radio"] {
  margin: 3px 3px 0px 5px;
  display: none;
}
label {
  padding-left: 20px;
  cursor: pointer;
  background: url(bg.gif) no-repeat left top;
}
label.checked {
  background-position: left bottom;
}

再就是 jQuery 代码了:

$(function() {
  $('label').click(function(){
    var radioId = $(this).attr('name');
    $('label').removeAttr('class') && $(this).attr('class', 'checked');
    $('input[type="radio"]').removeAttr('checked') && $('#' + radioId).attr('checked', 'checked');
  });
});
### 自定义或修改 ElementUI Radio 单选框组件的样式 为了自定义或修改 ElementUI 中 `Radio` 组件的样式,可以采用多种方法来确保样式仅应用于特定实例而不影响全局或其他组件。 #### 方法一:使用 `/deep/` 或者 `>>>` 当使用 scoped CSS 文件时,默认情况下无法直接覆盖子组件中的样式。通过使用 `/deep/` 关键字(对于 Vue CLI 3 及以上版本推荐使用 `::v-deep`),可以直接穿透作用域链并应用到子组件上[^2]。 ```scss <style lang="scss" scoped> .el-radio { ::v-deep .el-radio__input.is-checked+.el-radio__label { color: red; } ::v-deep .el-radio__inner::after { width: 8px; /* 修改选中标记大小 */ height: 8px; } &.is-checked { ::v-deep .el-radio__inner { border-color: blue; background: blue; } } } </style> ``` 此代码片段展示了如何改变已选状态下的标签颜色以及内部圆圈的颜色和尺寸。 #### 方法二:利用额外类名 另一种更为灵活的方式是在模板中给目标 `Radio` 添加自定义 class 属性,并基于该类编写特异性更高的 CSS 规则: ```html <template> <div> <el-radio v-for="(item,index) in options" :key="index" :label="item.value" class="custom-radio"> {{ item.label }} </el-radio> </div> </template> <style lang="scss" scoped> .custom-radio { // 定义自己的样式规则... } </style> ``` 这种方法允许更精确地控制哪些元素受到影响,同时也更容易维护。 #### 方法三:创建独立样式表 如果项目中有多个地方需要用到相同的定制化风格,则考虑将这些公用样式抽取出来形成单独的 SCSS/SASS 文件引入到相应页面中也是一个不错的选择。这有助于保持项目的整洁有序并且便于后续调整统一的设计主题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值