今天,我们用纯CSS实现⭐️评级。
案例效果分析:正常情况下为空心的☆,鼠标hover时,变为实心黄色的★.
HTML分析div.star包裹5个span,每个span的内容为空心的☆.HTML代码如下:
<div class="star"> <span>☆</span><span>☆</span><span>☆</span><span>☆</span><span>☆</span> </div>CSS分析
1.分析:当我们hover时,我们用实心的★覆盖空心的☆,并给实心的★设置color:gold;.
要覆盖空心的☆,我们要利用为元素::before,并赋予content:'★'.同时为了实现覆盖,而不是在之前添加内容,我们需要为元素设置position:absolute;.
这时,当你hover时,hover的☆就变为实体黄色的⭐️了。
2.接下来,我们要实现当我hover某个☆时,不仅这一个,它前面的☆也都要变为黄色实体的⭐️。
首先,我们要用到通用兄弟选择器~
在使用 ~ 连接两个元素时,它会匹配第二个元素,条件是它必须跟(不一定是紧跟)在第一个元素之后,且他们都有一个共同的父元素 .
比如:div~p就会匹配与div同辈的且在div之后的所有p元素。
当我们hover某个☆时,我们利用通用兄弟选择器使后面的☆也同时变为黄色实体星⭐️。
span:hover::before,span:hover~span::before{ content:'★'; color:gold; position:absolute;}
这时,当你hover某个☆时,这个及其后面的☆都同时变为黄色实体星⭐️。
3.最后,我们利用unicode-bidi,direction属性,使文本由右向左显示。
The unicode-bidi CSS property together with the direction property relates to the handling of bidirectional text in a document.For example, if a block of text contains both left-to-right and right-to-left text then the user-agent uses a complex Unicode algorithm to decide how to display the text. This property overrides this algorithm and allows the developer to control the text embedding.
这样的话,当我们hover时,还是这个及其后面的☆都同时变为黄色实体星⭐️,但是由于此时从右向左显示,它的后面兄弟元素就变到“前面”来了。
.star{unicode-bidi: bidi-override;direction:rtl;}
对内联元素应用direction时要注意:
For the direction property to have any effect on inline-level elements, the unicode-bidi property's value must be embed or override.
OK.用纯CSS实现⭐️评级的效果就实现了!
CSS代码如下:
span:hover::before,span:hover~span::before{ content:'★'; color:gold; position:absolute;} .star{ unicode-bidi:bidi-overrride; direction:rtl;}用js实现评级效果
思路:当元素触发onmouseover事件时,赋予不同的class值。
代码如下:
<div class="heart"> <a href="" id="one" class="heart-off"></a> <a href="" id="two" class="heart-off"></a> <a href="" id="three" class="heart-off"></a> <a href="" id="four" class="heart-off"></a> <a href="" id="five" class="heart-off"></a> </div>
.heart-off,.heart-on,.heart-hover{ text-decoration:none;}.heart-off:before,.heart-on:before,.heart-hover:before{ content:'\2665';}.heart-off{color:rgba(150,150,150,.5);}.heart-on{color:rgba(255,0,0,.5);}.heart-hover{color:rgba(255,0,0,1);}
one.onmouseover=function(){ this.className="heart-hover"; two.className="heart-off"; three.className="heart-off"; four.className="heart-off"; five.className="heart-off";};two.onmouseover=function(){ this.className="heart-hover"; one.className="heart-on"; three.className="heart-off"; four.className="heart-off"; five.className="heart-off";};three.onmouseover=function(){ this.className="heart-hover"; one.className="heart-on"; two.className="heart-on"; four.className="heart-off"; five.className="heart-off";};four.onmouseover=function(){ this.className="heart-hover"; one.className="heart-on"; two.className="heart-on"; three.className="heart-on"; five.className="heart-off";};five.onmouseover=function(){ this.className="heart-hover"; one.className="heart-on"; two.className="heart-on"; three.className="heart-on"; four.className="heart-on";};参考资料
1.字符实体
2.字符集
3.[unicode-bidide的用法](https://developer.mozilla.org/en-US/docs/Web/CSS/unicode-bidi)

HTML的未来充满了无限可能。1)新功能和标准将包括更多的语义化标签和WebComponents的普及。2)网页设计趋势将继续向响应式和无障碍设计发展。3)性能优化将通过响应式图片加载和延迟加载技术提升用户体验。

HTML、CSS和JavaScript在网页开发中的角色分别是:HTML负责内容结构,CSS负责样式,JavaScript负责动态行为。1.HTML通过标签定义网页结构和内容,确保语义化。2.CSS通过选择器和属性控制网页样式,使其美观易读。3.JavaScript通过脚本控制网页行为,实现动态和交互功能。

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增强WebevebDevelopment。

HTML是构建网页结构的基石。1.HTML定义内容结构和语义,使用、、等标签。2.提供语义化标记,如、、等,提升SEO效果。3.通过标签实现用户交互,需注意表单验证。4.使用、等高级元素结合JavaScript实现动态效果。5.常见错误包括标签未闭合和属性值未加引号,需使用验证工具。6.优化策略包括减少HTTP请求、压缩HTML、使用语义化标签等。

HTML是一种用于构建网页的语言,通过标签和属性定义网页结构和内容。1)HTML通过标签组织文档结构,如、。2)浏览器解析HTML构建DOM并渲染网页。3)HTML5的新特性如、、增强了多媒体功能。4)常见错误包括标签未闭合和属性值未加引号。5)优化建议包括使用语义化标签和减少文件大小。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的作用是通过标签和属性定义网页的结构和内容。1.HTML通过到、等标签组织内容,使其易于阅读和理解。2.使用语义化标签如、等增强可访问性和SEO。3.优化HTML代码可以提高网页加载速度和用户体验。

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代码” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代码”代码“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

记事本++7.3.1
好用且免费的代码编辑器

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

WebStorm Mac版
好用的JavaScript开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),