本文将通过一个实际的业务需求,来讲解极端场景下如何实现文字加粗加边框的效果,以及文字多重边框的效果。今天遇到这样一个有趣的问题:1.在显示文字的时候,我用font-weight:bold把文字加粗了,但是还是觉得不够粗。有没有办法让文字变粗?emm,如果不考虑兼容性的话,答案是可以利用文字的-webkit-text-stroke属性,让文字再次变成粗体。[MDN-webkit-text-stroke]("MDN-webkit-text-stroke"):该属性为文本字符添加边框(描边),指定边框的宽度和颜色,它是-webkit-text-stroke是-width和-webkit-text-stroke-color属性的缩写。看下面的DEMO,我们可以使用-webkit-text-stroke将文字加粗两次:
BoldtextCSS
BoldtextCSS
BoldtextCSS
CSS
p{??font-size:48px;letter-spacing:6px;}p:nth-child(2){font-weight:bold;}p:nth-child(3){-webkit-text-stroke:3pxred;}p:nth-child(4){-webkit-text-stroke:3px#000;}比较下面4种文字,最后一种使用font-weight:bold和-webkit-text-stroke,使文字变粗。CodePenDemo--font-weight:boldand-webkit-text-stroke双粗体文本[1]如何给双粗体文本添加边框?OK,上面的第一步就完成了,事情还没有结束,更可怕的问题来了。现在文本需要加粗两次,并添加不同颜色的边框。我们使用了-webkit-text-stroke属性,它可以为文本添加边框,所以事情变得有点棘手。这个问题也可以转化为,如何给文字添加2层不同颜色的边框?这并不容易,设计师们,请上图。当然,这不是强大CSS(SVG)的问题,我们来试试吧。尝试方法一:使用文本伪元素放大文字第一种尝试方法有点繁琐。我们可以对每段文字进行微调,利用文字的伪元素将文字稍微放大,将原文和Finder之后的文字粘贴在一起。将文本拆分为单独的元素。利用伪元素的attr()特性,可以实现使用伪元素同样的词放大。伪元素的词叠加在原文的下面。代码:TextBoldCSS
p{??font-size:48px;letter-spacing:6px;font-weight:bold;-webkit-text-stroke:1px#000;text-shadow:002pxred;}看效果:嗯,这个离边框太远了,是阴影。不过不用担心,text-shadow支持多重阴影。让我们多次叠加上面的文字阴影:p{font-size:48px;letter-spacing:6px;font-weight:bold;-webkit-text-stroke:1px#000;-text-shadow:002pxred;+text-shadow:002pxred,002pxred,002pxred,002pxred,002pxred,002pxred,002pxred,002pxred,002pxred,002pxred;}哇哦,不仔细看,用这种叠加多层文字-阴影的方式,真的很像边框!当然,如果我们放大,瑕疵会更明显,我们仍然可以看到它是一个阴影:CodePenDemo--Usetext-shadowtoaddborderstotext[3]我们是否用完了选项?不,还有终极杀手SVG。尝试方法三:使用SVGfeMorphology滤镜给文字加边框其实使用SVGfeMorphology滤镜可以完美满足这个需求。我对这项技术很感兴趣!本文也提到了不规则边界[4]的生成方案。借用feMorphology的扩展能力,为不规则形状添加边框。直接上传代码:粗体文本CSS