css限制字体三行_讲道理,仅3行核心css代码的rate评分组件,我被自己秀到头皮发麻...

(给100素材网点亮★号,提升开发技能)

851fb80ae0cbfd58ac386501e612e370.png像rate评分组件一般都用javascript写,所以这次将是一个全新的尝试,用css实现一个rate评分 ❗ 核心代码也就三行?01效果图688eeb5bde2053dab94995c20de8d75f.gif02原理主要是借助radio单选框,梳理如下:
  • 去找个好看的iconfont;

  • 借用5个radio单选框,把默认样式都去掉,显示默认的星星;

  • 用checked伪类监听用户选中✅,由默认的星星变成高亮的星星;

  • 然后配合~兄弟操作符把当前选中的所有兄弟元素都一起高亮?;

  • 把5个radio单选框反向排列❗;

03代码这是我事先生成好的iconfont:
"stylesheet" href="//at.alicdn.com/t/font_1356455_c5d3d3ohlbq.css">
一个很简洁的布局:
"rate-content"> type="radio" name="rate"> type="radio" name="rate"> type="radio" name="rate"> type="radio" name="rate"> type="radio" name="rate">

先把默认的星星显示出来:

// 去掉默认样式input {  -webkit-appearance: none;  border: none;  outline: none;  cursor: pointer;}.rate-content {$main: #ffa822; // 高亮颜色$basic: #999; // 默认颜色  // 单个星星  input[name="rate"] {    font-family: "iconfont"; // 之前引入的iconfont字体    font-size: 30px;    padding-right: 10px;    // 默认显示的星星    &::after {      content: "\e645";      color: $basic;      transition: color .4s ease; // 加点颜色过渡效果    }  }}
效果如下:aa9d44557fcf6ea9f2015a8a31dc8cbf.png

实现选中单个星星:

input[name="rate"] {  // 高亮的星星  &:checked {    &::after {      content: "\e73c";      color: $main;    }  }}
效果如下:f42c4d263c31c45e9d5564d85705a089.gif

实现连同兄弟元素一起高亮:

input[name="rate"] {  // 高亮的星星  &:checked,  &:checked ~ input[name="rate"] {    ...  }}
效果如下:2afd7c8791fdffe99c6ab770875437eb.gif

然后把星星反向排列:

.rate-content {  display: flex;  flex-flow: row-reverse;}
效果如下:da1709acd6dfcaed7352fd73e303ad88.gif

鼠标移入预览选中效果:

罗嗦版:
input[name="rate"] {  // 高亮的星星  &:checked,  &:checked ~ input[name="rate"],  &:hover,  &:hover ~ input[name="rate"] {    ...  }}
优化版:
input[name="rate"] {  // 高亮的星星  &:checked,  &:hover {    &::after {      content: "\e73c";      color: $main;    }    // 兄弟元素一起高亮    & ~ input[name="rate"] {      &::after {        content: "\e73c";        color: $main;      }    }  }}
效果如下:7f9a46aabbb240c02c0818cd0477e7c3.gif

加入放大动画:

input[name="rate"] {  transition: transform .2s ease; // 加入过渡效果  // 高亮的星星  &:checked,  &:hover {    ...  }  // 鼠标移入使星星放大  &:hover {    transform: scale(1.2);  }}
效果如下:688eeb5bde2053dab94995c20de8d75f.gif04总结核心代码其实就是这两段,其他都是可选的?元素反向排列:
display: flex;flex-flow: row-reverse;
兄弟元素操作:
input:checked ~ input
如果不用flex反向排列,还可以用rotateZ:
.rate-content {  display: flex;  // flex-flow: row-reverse;  transform: rotateZ(180deg);}
效果如下:742fd4cf73a0c5bed0eac460a0cb9c72.pngz轴旋转180deg之后发现星星的头跟尾巴反过来了,那么子元素也旋转180deg即可:
.rate-content {  input[name="rate"] {    transform: rotateZ(180deg);}}
效果如下:2a1508d35e2813dbc635fe4ec74d2eb1.png05需要注意的细节这里用的是内边距:
input[name="rate"] {  // padding-right: 10px;  margin-right: 10px;}
如果用外边距的话,那么会出现以下情形:f46ce6e32548c33206cc6d79ece91ac8.gif内边距的作用是保持元素连贯性以及扩大点击范围?19ad2fb7743c69800421fed725dcdfeb.gif

eb03c8989ef8e95f77e25f4d4c0d32be.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/398224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab GUI之自定义菜单小结

自定义菜单 1.uimenu对象 huimenu(PropertyName,ProperValue) huimenu(parent,PropertyName,ProperValue) 常见属性: 1.1标签 label uimenu(label,&Open) 1.2快捷键 Accelerator uimenu(Accelerator,E) 快捷键位 ctrlE 注意以下三个是系统保留的Accelerator…

把cpp编译为so_基于VSCode和CMake进行C/C++开发第三讲GCC编译器

3.0 本讲目录本系列视频,B站首发,up主: xiaobing1016前言:GCC 编译器支持编译 Go、Objective-C,Objective-C ,Fortran,Ada,D 和 BRIG(HSAIL)等程序;Linux 开发C/C 一定要熟悉 GCCVS…

CSS快速入门-箭头和图标

一、三步搞懂箭头产生的原理 在前面的盒子模型一文中&#xff0c;我们已经知道了一个元素空间占位。为了弄明白箭头的产生&#xff0c;我们可以三步走&#xff1a; #demo12 {border: 100px solid;border-color:green blue orange red;width:100px;height:100px;}<div id&quo…

自动清理归档日志_从MYSQL 数据库归档 到 归档设计

到数据归档&#xff0c;很多人的第一个概念就是&#xff0c;不就是无用的数据&#xff0c;换个地方放吗&#xff0c;直接拷贝&#xff0c;删除不就得了&#xff0c;有那么麻烦。我见到过的&#xff0c;听到过的数据库归档的方法有以下几种1 数据通过人工的手段来进行清理&…

Android支付宝SDK开发笔记

一、准备工作 〉1、下载开发包 https://b.alipay.com/order/productDetail.htm?productId2014110308141993&tabId4#ps-tabinfo-hash 压缩包下的“支付宝钱包支付接口开发包”中即有Andoid使用支付宝的JAR和Demo 〉2、创建支付宝应用 在支付宝开放平台申请创建应用 https:/…

一天一个类,一点也不累之HashSet

最近忙着一个小项目结题&#xff0c;故没能按时完成【一天一个类&#xff0c;一点也不累】&#xff0c;还好项目优秀&#xff0c;算是对自己一点点的安慰和鼓励。~~~ 今天要说的是HashSet 既然是继承自Set&#xff0c;那么就必须有Set的一些属性&#xff0c;比如不能容许有相同…

[BZOJ1502]月下柠檬树(自适应辛普森积分)

1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 1387 Solved: 739[Submit][Status][Discuss]Description 李哲非常非常喜欢柠檬树&#xff0c;特别是在静静的夜晚&#xff0c;当天空中有一弯明月温柔地照亮地面上的景物时&#xff0c;他必会悠闲地…

擎天出口退税软件_新版申报系统退税申报注意事项

前言&#xff1a;随着税务信息化建设“后金三”时代的不断深入,2019年年底国家税务总局启动出口退税管理系统整合(进入金税三期)项目&#xff0c;经过广东、大连两个地区试点&#xff0c;即将于今年年底前在全国完成金税三期审核系统的上线工作&#xff0c;至此&#xff0c;出口…

pcie 的function_PCIe扫盲——BDF与配置空间

前面的文章中介绍过&#xff0c;每一个PCIe设备可以只有一个功能(Function)&#xff0c;即Fun0。也可以拥有最多8个功能&#xff0c;即多功能设备(Multi-Fun)。不管这个PCIe设备拥有多少个功能&#xff0c;其每一个功能都有一个唯一独立的配置空间(Configuration Space)与之对应…

dubbo接口快速测试技巧

在分布式系统的开发中&#xff0c;用到了dubbozookeeper技术&#xff0c;最近遇到一个问题&#xff0c;产品上线后&#xff0c;我负责的模块出了问题&#xff0c;某个bean中某个字段的值一直为null&#xff0c;而这个bean是我调用注册在zookeeper上的一个服务查询到的&#xff…

IISASP.NET 站点IP跳转到域名

前言&#xff1a;先到微软的 https://www.iis.net/downloads/microsoft/url-rewrite 下载URL Rewrite 目标&#xff1a;输入ip跳转到域名所在的网站 比如58的115.159.231.173 跳转到https://passport.58.com/login 先看下58的例子 我们在地址栏输入ip之后 箭头指向的地方是跳转…

mysql emoji表情_让MySQL支持Emoji表情 mysql 5.6

最近在做微信相关的项目&#xff0c;其中MySQL 要存储emoji表情&#xff0c;因此发现我们常用的utf8 字符集根本无法存储表情。网上有不少替代方案。本人还是采用了修改MySQL字符集的方案简单快捷。首先将我们数据库默认字符集由utf8 更改为utf8mb4&#xff0c;对应的表默认字符…

::selection

改变浏览器文字选中背景 ::selection CSS的伪类选择器 只有一小部分CSS属性可以用于::selection选择器&#xff1a; color, background-color, cursor, outline, text-decoration, text-emphasis-color和text-shadow。 要特别注意的是&#xff0c;background-image会如同其他属…

python3中的正则模块

本文引至: 正则模块 与正则最相关的应该算是字符串, 但是,在内置的py的str类型中, 并没有内置的正则方法. 我们可以看一下str的基本方法:我觉得最有用的,应该算find,len,split,join 这4个方法了. 但对于字符串操作来说, 这简直too too simple. 所以, py提供了我们一个Re 模块, …

wamserver怎么把mysql找回来_将php连接wampserver自带的MySQL数据库 所遇到各种问题解决办法...

将php连接到MySQL数据库的方法有很多&#xff0c;在这里我使用的是mysqli_connect方法&#xff0c;此博客所解答的问题汇总&#xff1a;1.wampserver服务器离线但图标为正常绿&#xff1b;2.wampserver 2/3服务正常运行&#xff0c;3个服务分别是哪些&#xff1f;3.wampserver …

问题总结2015/05/05

1、第三方提供的库不能使用。 调查方法&#xff1a;差分编译&#xff0c;对比连接后和编译后的差分情况&#xff1b;Debug单步调试&#xff0c;定位出错代码&#xff1b;由于是第三方库不能使用的原因&#xff0c;反编译辅助调查。 调查结果&#xff1a;本机编译后的R文件中的资…

js的下拉刷新和上拉加载,基于iScroll v4.2.5

html部分 <div id"wrapper" style"height: 100%"><div id"scroller"><div id"pullDown"></div><ul id"thelist"><li>我是三冰 1</li><li>我是三冰 2</li><li>…

java声明和初始化数组_Java 中初始化数组

数组是一种有用的数据类型&#xff0c;用于管理在连续内存位置中建模最好的集合元素。下面是如何有效地使用它们。-- Chris Hermansen&#xff08;作者&#xff09;有使用 C 或者 FORTRAN 语言编程经验的人会对数组的概念很熟悉。它们基本上是一个连续的内存块&#xff0c;其中…

Java第二次实验报告——Java面向对象程序设计

北京电子科技学院&#xff08;BESTI&#xff09;实 验 报 告课程名称&#xff1a;java程序设计实验 班级&#xff1a;1352 姓名&#xff1a;洪韶武 学号&#xff1a;20135219成绩&#xff1a; 指导教师&#xff1a;娄嘉鹏…

IOS 多线程04-GCD详解 底层并发 API

IOS 多线程04-GCD详解 底层并发 API 注&#xff1a;本人是翻译过来&#xff0c;并且加上本人的一点见解。 前言 想要揭示出表面之下深层次的一些可利用的方面。这些底层的 API 提供了大量的灵活性&#xff0c;随之而来的是大量的复杂度和更多的责任。在我们的文章常见的后台实践…