标题 | 纯CSS实现设置半个字符的样式 |
范文 | 这篇文章主要介绍了纯CSS实现设置半个字符的样式,分别实现了水平和垂直一半、水平和垂直三分之一等效果,需要的朋友可以参考下。 在stackoverflow上看到的问题怎么给半个字符设置样式,很多大神给出了答案。我就等就来学习围观吧。 一:基本解决方案: html: 代码如下: <spanclass=”halfStyle”data-content=”X”>X</span> <spanclass=”halfStyle”data-content=”Y”>Y</span> <spanclass=”halfStyle”data-content=”Z”>Z</span> <spanclass=”halfStyle”data-content=”A”>A</span> css: 代码如下: .halfStyle{ position:relative; display:inline-block; font-size:80px;/*oranyfontsizewillwork*/ color:black;/*ortransparent,anycolor*/ overflow:hidden; white-space:pre;/*topreservethespacesfromcollapsing*/ } .halfStyle:before{ display:block; z-index:1; position:absolute; top:0; left:0; width:50%; content:attr(data-content);/*dynamiccontentforthepseudoelement*/ overflow:hidden; color:#f00; } 效果如图: ![]() 这种方法用于任何动态文本或单个字符,并且都是自动适用的。所有你需要做的就是在目标文本上添加一个class,剩下的就解决了。 同时,保留了原文的可访问性,可以被盲人或视障人士使用的屏幕阅读器识别。 单个字符的实现: 纯CSS。所有你需要做的就是把.halfStyleclass用在每个你想要渲染一半样式字符的元素上。 对于每个包含字符的span元素,你可以添加一个data属性,比如data-content=”X”,并且在伪元素上使用content:attr(data-content);这样,.halfStyle:beforeclass将会是动态的,你不需要为每个实例进行硬编码 以下其它效果自行测试了。。。 二:左右开弓,两边都设置样式 更改CSS: 代码如下: .halfStyle{ position:relative; display:inline-block; font-size:80px;/*oranyfontsizewillwork*/ color:transparent;/*hidethebasecharacter*/ overflow:hidden; white-space:pre;/*topreservethespacesfromcollapsing*/ } .halfStyle:before{/*createstheleftpart*/ display:block; z-index:1; position:absolute; top:0; width:50%; content:attr(data-content);/*dynamiccontentforthepseudoelement*/ overflow:hidden; pointer-events:none;/*sothebasecharisselectablebymouse*/ color:#f00;/*fordemopurposes*/ text-shadow:2px-2px0px#af0;/*fordemopurposes*/ } .halfStyle:after{/*createstherightpart*/ display:block; direction:rtl;/*veryimportant,willmakethewidthtostartfromright*/ position:absolute; z-index:2; top:0; left:50%; width:50%; content:attr(data-content);/*dynamiccontentforthepseudoelement*/ overflow:hidden; pointer-events:none;/*sothebasecharisselectablebymouse*/ color:#000;/*fordemopurposes*/ text-shadow:2px2px0px#0af;/*fordemopurposes*/ } 三:设置水平一半的样式 CSS: 代码如下: .halfStyle{ position:relative; display:inline-block; font-size:80px;/*oranyfontsizewillwork*/ color:transparent;/*hidethebasecharacter*/ overflow:hidden; white-space:pre;/*topreservethespacesfromcollapsing*/ } .halfStyle:before{/*createsthetoppart*/ display:block; z-index:2; position:absolute; top:0; height:50%; content:attr(data-content);/*dynamiccontentforthepseudoelement*/ overflow:hidden; pointer-events:none;/*sothebasecharisselectablebymouse*/ color:#f00;/*fordemopurposes*/ text-shadow:2px-2px0px#af0;/*fordemopurposes*/ } .halfStyle:after{/*createsthebottompart*/ display:block; position:absolute; z-index:1; top:0; height:100%; content:attr(data-content);/*dynamiccontentforthepseudoelement*/ overflow:hidden; pointer-events:none;/*sothebasecharisselectablebymouse*/ color:#000;/*fordemopurposes*/ text-shadow:2px2px0px#0af;/*fordemopurposes*/ } 四:水平三分之一的样式 css: 代码如下: .halfStyle{/*basecharandalsothebottom1/3*/ position:relative; display:inline-block; font-size:80px;/*oranyfontsizewillwork*/ color:transparent; overflow:hidden; white-space:pre;/*topreservethespacesfromcollapsing*/ color:#f0f; text-shadow:2px2px0px#0af;/*fordemopurposes*/ } .halfStyle:before{/*createsthetop1/3*/ display:block; z-index:2; position:absolute; top:0; height:33.33%; content:attr(data-content);/*dynamiccontentforthepseudoelement*/ overflow:hidden; pointer-events:none;/*sothebasecharisselectablebymouse*/ color:#f00;/*fordemopurposes*/ text-shadow:2px-2px0px#fa0;/*fordemopurposes*/ } .halfStyle:after{/*createsthemiddle1/3*/ display:block; position:absolute; z-index:1; top:0; height:66.66%; content:attr(data-content);/*dynamiccontentforthepseudoelement*/ overflow:hidden; pointer-events:none;/*sothebasecharisselectablebymouse*/ color:#000;/*fordemopurposes*/ text-shadow:2px2px0px#af0;/*fordemopurposes*/ } 五:垂直三分之的样式 css: 代码如下: .halfStyle{/*basecharandalsotheright1/3*/ position:relative; display:inline-block; font-size:80px;/*oranyfontsizewillwork*/ color:transparent;/*hidethebasecharacter*/ overflow:hidden; white-space:pre;/*topreservethespacesfromcollapsing*/ color:#f0f;/*fordemopurposes*/ text-shadow:2px2px0px#0af;/*fordemopurposes*/ } .halfStyle:before{/*createstheleft1/3*/ display:block; z-index:2; position:absolute; top:0; width:33.33%; content:attr(data-content);/*dynamiccontentforthepseudoelement*/ overflow:hidden; pointer-events:none;/*sothebasecharisselectablebymouse*/ color:#f00;/*fordemopurposes*/ text-shadow:2px-2px0px#af0;/*fordemopurposes*/ } .halfStyle:after{/*createsthemiddle1/3*/ display:block; z-index:1; position:absolute; top:0; width:66.66%; content:attr(data-content);/*dynamiccontentforthepseudoelement*/ overflow:hidden; pointer-events:none;/*sothebasecharisselectablebymouse*/ color:#000;/*fordemopurposes*/ text-shadow:2px2px0px#af0;/*fordemopurposes*/ } |
随便看 |
|
在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。