星级评分-纯CSS实现(个性化使用单选按钮)
时间:2023-03-30 19:27:29
CSS
本案例为班级学习成果,本文仅作为学习总结记录。欢迎学习交流。1.显示2.构思基本元素输入单选按钮+伪空间星+选中星—>iconfont实现效果鼠标悬停效果点击效果当出现以上两种效果时,前面的星会被链接到效果相同3.实现html部分的双层结构(rate-content+radio*5)
css部分(input(radio)+::before&after+input(radio):checked+hover)/*去掉默认样式单选框*/input{appearance:none;边框:无;大纲:无;游标:指针;}.rate-content{显示:flex;/*弹性容器,按比例继承宽高*/flex-flow:row-reverse;/*元素倒序排列*/float:left;边距顶部:200px;左边距:200px;}/*选择所有带有name属性的选择器*/input[name="rate"]{font-family:"iconfont";字体大小:30px;向右填充:10px;过渡:所有0.4s缓和;/*元素变化转换时间*/}input[name="rate"]::after{content:"\f2d3";颜色:#999;}input[name="rate"]:checked::after{content:"\e61a";颜色:#ffa822;}input[name="rate"]:hover{transform:scale(1.2);/*scale*/}input[name="rate"]:hover::after{content:"\e61a";颜色:#ffa822;}/*兄弟选择器选择下面的所有兄弟*/input[name="rate"]:checked~input[name="rate"]::after{content:"\e61a";颜色:#ffa822;}input[name="rate"]:hover~input[name="rate"]::after{content:"\e61a";颜色:#ffa822;}###四、总结清楚元素样式的三个属性{appearance:none;边框:无;outline:none;}flex布局与兄弟选择器结合使用:兄弟选择器选中某个元素后面的选择器,将flex-flow:row-reverse排列到最前面,达到想要的效果display:flex;/*柔性容器,按比例继承宽高*/flex-flow:row-reverse;/*元素倒序排列*/属性选择器基本使用input[name="rate"]表示选择所有为name属性的选择器属性选择器+伪类input[name="rate"]::after属性选择器+伪类+stateinput[name="rate"]:checked::属性选择器后+:hover实现与选中效果一致的缩放效果``input[name="rate"]:hover``~(兄弟选择器):查找指定元素
后面的所有兄弟节点/兄弟选择器选择下面的所有兄弟节点/↓选择所有选中的名为rate的输入框所有名为rateinput[的输入框的伪类兄弟name="rate"]:checked~input[name="rate"]::之后