障眼法改变复选框样式

12 篇文章 0 订阅

复选框的可操作的样式只有width和height,如何做种定制化的复选框?

  • 思路:设置一个假盒子,通过伪类 :checked 规定复选框选中状态时假盒子的样式,达到操作复选框切换加盒子的目的
  • 关键:
  1. 复选框的透明度要为0
  2. 假盒子和复选框位置重叠,且宽高一样
  3. 复选框层级必须比假盒子高

例:

<input type="checkbox" name="" id="">
<div></div>
input[type="checkbox"] {
  width: 40px;
  height: 40px;
  float: left;
  opacity: 0;
}

input[type="checkbox"]:checked+div {
  /* 矢量图1*/
  background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23ededed%22%20stroke-width%3D%223%22/%3E%3C/svg%3E');
  background-repeat: no-repeat;
}

div {
  width: 40px;
  height: 40px;
  /* 矢量图2 */
  background-image: url('data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%22-10%20-18%20100%20135%22%3E%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2250%22%20fill%3D%22none%22%20stroke%3D%22%23bddad5%22%20stroke-width%3D%223%22/%3E%3Cpath%20fill%3D%22%235dc2af%22%20d%3D%22M72%2025L42%2071%2027%2056l-4%204%2020%2020%2034-52z%22/%3E%3C/svg%3E');
  background-repeat: no-repeat;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个实现无缝轮播和无缝滚动效果的示例代码: HTML代码: ``` <div class="slider-wrapper"> <div class="slider"> <img src="https://via.placeholder.com/800x400/FFA07A/000000" alt="image1"> <img src="https://via.placeholder.com/800x400/98FB98/000000" alt="image2"> <img src="https://via.placeholder.com/800x400/87CEFA/000000" alt="image3"> <img src="https://via.placeholder.com/800x400/FFC0CB/000000" alt="image4"> <img src="https://via.placeholder.com/800x400/9370DB/000000" alt="image5"> <img src="https://via.placeholder.com/800x400/F08080/000000" alt="image6"> </div> </div> ``` CSS代码: ``` .slider-wrapper { overflow: hidden; position: relative; } .slider { display: flex; animation: slide 20s linear infinite; } .slider img { width: 800px; height: 400px; margin-right: 20px; object-fit: cover; } /* 无缝滚动 */ @keyframes slide { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } } /* 无缝轮播 */ .slider img:last-child { position: absolute; left: 0; animation: rotate 20s linear infinite; } @keyframes rotate { 0% { transform: translateX(0); } 100% { transform: translateX(-800px); } } /* 过渡效果 */ .slider img { transition: transform 0.5s ease; } .slider img:hover { transform: scale(1.1); } ``` 解释: - 使用flex布局实现图片的横向排列。 - 使用animation调用滚动和轮播的动画。 - 使用position和absolute属性实现无缝轮播。 - 使用transition实现图片的缩放过渡效果。 - 使用:hover伪类实现鼠标悬停时的缩放效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值