章节
问答
课签
笔记
评论
占位
占位

CSS3选择器 :checked选择器

在表单元素中,单选按钮和复选按钮都具有选中未选中状态。(大家都知道,要覆写这两个按钮默认样式比较困难)。在CSS3中,我们可以通过状态选择器“:checked”配合其他标签实现自定义样式。而“:checked”表示的是选中状态。

示例演示:

通过“:checked”状态来自定义复选框效果。

HTML代码

<form action="#">
  <div class="wrapper">
    <div class="box">
      <input type="checkbox" checked="checked" id="usename" /><span>√</span>
    </div>
    <lable for="usename">我是选中状态</lable>
  </div>
  
  <div class="wrapper">
    <div class="box">
      <input type="checkbox"  id="usepwd" /><span>√</span>
    </div>
    <label for="usepwd">我是未选中状态</label>
  </div>
</form> 

CSS代码:

form {
  border: 1px solid #ccc;
  padding: 20px;
  width: 300px;
  margin: 30px auto;
}

.wrapper {
  margin-bottom: 10px;
}

.box {
  display: inline-block;
  width: 20px;
  height: 20px;
  margin-right: 10px;
  position: relative;
  border: 2px solid orange;
  vertical-align: middle;
}

.box input {
  opacity: 0;
  position: absolute;
  top:0;
  left:0;
}

.box span {
  position: absolute;
  top: -10px;
  right: 3px;
  font-size: 30px;
  font-weight: bold;
  font-family: Arial;
  -webkit-transform: rotate(30deg);
  transform: rotate(30deg);
  color: orange;
}

input[type="checkbox"] + span {
  opacity: 0;
}

input[type="checkbox"]:checked + span {
  opacity: 1;
}

结果演示

任务

在CSS编辑器的第47行输入正确的代码,实现自定义单选按钮的效果。

?不会了怎么办

思考一下,我们刚讲过的选择器

||
1
2
<!DOCTYPE html>
<html>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
2
form {
border: 1px
      solid
      #ccc;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
提交
重置代码
||

请验证,完成请求

由于请求次数过多,请先验证,完成再次请求

加群二维码

打开微信扫码自动绑定

您还未绑定服务号

绑定后可得到

  • · 粉丝专属优惠福利
  • · 大咖直播交流干货
  • · 课程更新,问题答复提醒
  • · 账号支付安全提醒

收藏课程后,能更快找到我哦~

使用 Ctrl+D 可将课程添加到书签

邀请您关注公众号
关注后,及时获悉本课程动态

举报

0/150
提交
取消
全部 精华 我要发布

最新回答 / 漠里
+ 也是选择器,选择相邻兄弟元素

最新回答 / 慕码人3488445
因为div是块元素,块元素都是占一行的,而且使用流动模型排序的,所以不会重叠

最新回答 / 慕瓜2570278
我一开始也是这么想的,但是你仔细看一下input的代码,是没有设置背景颜色的

已采纳回答 / 苍澄
更具子绝父相排版  子元素绝对定位会根据相对定位的父元素 进行自身位置的定位,left 和top都是定位input的,根据网页的排版规则,浏览器会默认从上到下 从左到右排列,代码中写的上左0px 不过就是个固定一下,去掉也无所谓 ,第二个你说的 按钮样式被覆盖掉,这代码里写的是单选按钮吧,代码里有一个opacity样式,这个是修饰元素的透明度的,你改成1,可以看见  满值为1  看不见为0,

最新回答 / ly今夕何夕
把span设置的和 .box 一样大就好了,然后取消位置绝对位移就好了,因为都一样大,位置没有偏差的余地,margin也可以取消。.box span {   display: block;  width: 30px;  height: 30px;  border-radius: 100%;  /*position: absolute;*/  background: #fff;  /*top: 50%;*/  /*left:50%;*/  /*margin: -5px 0  0 -5px;*/  z-ind...

最赞回答 / qq_姬曲漓江畔透殇_mtvBDM
这行代码在这个程序中的意思是:将名为box的div强制转换为行显示,使得div与label元素在同一行。运行的效果就是,前面橙色的圆和‘男’这个文字在同一行。

最新回答 / weixin_慕九州2307197
display:block 可以行转块元素   span标签是行元素  行元素不可以设置宽高  宽高是由内容撑开的  块元素才可以设置宽高

最新回答 / yunyun123456
行内元素,用<a>也行

最赞回答 / ssmisgreatpeople
span就是中间那个白色的圆点,表示选中。

已采纳回答 / 慕的地9089738
name相同才能建立互斥关系,一个选中另一个就取消选中;如果不相同,他们就没有任何关系了,互相之间是独立的

最赞回答 / 神崎彰人
<label> 标签为 input 元素定义标注(标记)。其中label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。(<label> 标签的 for 属性应当与相关元素的 id 属性相同。)

最赞回答 / 大年糕
<...图片...>因为 input和span 都定义了position:absolute;即:脱离文本文档流,浮动了起来(飘起来了)在垂直方向上span 在input上边,所以你点击方框的时候点到的是span ,为了能点到input 就把 input的垂直坐标定义为100(z-index:100),span的垂直坐标定义为1(z-index:1),这样点击方框的时候就能点击到input标签里面的复选框了.不知道我解释的明不明白?

最赞回答 / 好吃的蛋包饭
+号是相邻兄弟选择器的结合符,选择紧接在另一个元素后的元素,而且二者有相同的父元素。比如这个选择的是type="radio"的input标签被选中时,后面紧跟的span标签。也就是改变的是这个span标签的样式

最赞回答 / cRpeDiem
top 50% left50%  只是将span的左上角的点定位在box的中心 

最新回答 / 一斤斤斤斤
问题是什么?
全部 我要发布
最热 最新
只看我的

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

账号登录 验证码登录

遇到问题
忘记密码

代码语言