2023-10-13 09:00:00

文本的轮廓效果

在CSS中有什么方法可以给不同颜色的文本提供轮廓吗?我想突出我的文本的一些部分,使其更直观-如名称,链接等。改变链接的颜色等是常见的现在,所以我想要一些新的东西。


当前回答

试一试:

<!DOCTYPE html> <html> <head> <style> h1 { text-shadow: 2px 2px; } h1.m1 { text-shadow: 2px 2px red; } h1.m2 { text-shadow: 2px 2px 5px red; } h1.m3 { color: white; text-shadow: 2px 2px 4px #000000; } h1.m4 { text-shadow: 0 0 3px #FF0000; } h1.m5{ color: #FFFFFF; background: #232323; text-shadow: 0 0 5px #FFF, 0 0 10px #FFF, 0 0 15px #FFF, 0 0 20px #49ff18, 0 0 30px #49FF18, 0 0 40px #49FF18, 0 0 55px #49FF18, 0 0 75px #49ff18; } h1.m6{ color: #FFFFFF; background: #FFFFFF; text-shadow: 2px 2px 0 #4074b5, 2px -2px 0 #4074b5, -2px 2px 0 #4074b5, -2px -2px 0 #4074b5, 2px 0px 0 #4074b5, 0px 2px 0 #4074b5, -2px 0px 0 #4074b5, 0px -2px 0 #4074b5; } h1.m7 { color: #444444; background: #FFFFFF; text-shadow: 1px 0px 1px #CCCCCC, 0px 1px 1px #EEEEEE, 2px 1px 1px #CCCCCC, 1px 2px 1px #EEEEEE, 3px 2px 1px #CCCCCC, 2px 3px 1px #EEEEEE, 4px 3px 1px #CCCCCC, 3px 4px 1px #EEEEEE, 5px 4px 1px #CCCCCC, 4px 5px 1px #EEEEEE, 6px 5px 1px #CCCCCC, 5px 6px 1px #EEEEEE, 7px 6px 1px #CCCCCC; } </style> </head> <body> <h1 class="m6">Text-shadow effect!</h1> <h1 class="m7">Text-shadow effect!</h1> <h1>Text-shadow effect!</h1> <h1 class="m1">Text-shadow effect!</h1> <h1 class="m2">Text-shadow effect!</h1> <h1 class="m3">Text-shadow effect!</h1> <h1 class="m4">Text-shadow effect!</h1> <h1 class="m5">Text-shadow effect!</h1> </body> </html>

其他回答

你可以尝试叠加多个模糊阴影,直到阴影看起来像笔画,如下所示:

.shadowOutline {
  text-shadow: 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black, 0 0 4px black;
}

这里有一个小提琴:http://jsfiddle.net/GGUYY/

我提到它只是为了以防有人感兴趣,尽管我不会称之为解决方案,因为它在很多方面都失败了:

它不能在旧的IE中工作 它在每种浏览器中的呈现方式都不一样 应用这么多阴影是非常沉重的处理:S

h1 { 颜色:黑色; -webkit-text-fill-color:白色;/*将覆盖颜色(不管顺序)*/ -webkit-text-stroke-width: 1 px; -webkit-text-stroke-color:黑色; } <标题>正确抚摸!< / h1 >

我正在寻找一个跨浏览器的文本笔画解决方案,工作时叠加在背景图像。我想我有一个解决方案,不涉及额外的标记,js和工作在IE7-9(我还没有测试6),也不会导致混淆问题。

这是一个使用CSS3文本阴影的组合,除了IE (http://caniuse.com/#search=text-shadow),它有很好的支持,然后使用IE过滤器的组合。目前CSS3文本笔画支持很差。

即过滤器

辉光滤镜(http://www.impressivewebs.com/css3-text-shadow-ie/)看起来很糟糕,所以我没有使用它。

大卫·休伊特的答案是在不同方向的组合上添加阴影滤镜。ClearType随后不幸被删除,因此我们最终得到了严重的别名文本。

然后我将useragentman上建议的一些元素与dropshadow滤镜结合起来。

把它们放在一起

这个例子是带有白色描边的黑色文本。顺便说一下,我使用条件html类的目标IE (http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/)。

#myelement {
    color: #000000;
    text-shadow:
    -1px -1px 0 #ffffff,  
    1px -1px 0 #ffffff,
    -1px 1px 0 #ffffff,
    1px 1px 0 #ffffff;
}

html.ie7 #myelement,
html.ie8 #myelement,
html.ie9 #myelement {
    background-color: white;
    filter: progid:DXImageTransform.Microsoft.Chroma(color='white') progid:DXImageTransform.Microsoft.Alpha(opacity=100) progid:DXImageTransform.Microsoft.dropshadow(color=#ffffff,offX=1,offY=1) progid:DXImageTransform.Microsoft.dropshadow(color=#ffffff,offX=-1,offY=1) progid:DXImageTransform.Microsoft.dropshadow(color=#ffffff,offX=1,offY=-1) progid:DXImageTransform.Microsoft.dropshadow(color=#ffffff,offX=-1,offY=-1);
    zoom: 1;
}

我也有这个问题,文本阴影不是一个选项,因为角落看起来很糟糕(除非我有很多很多阴影),我不想要任何模糊,因此我唯一的其他选择是做以下:有2个div,对于背景div,放一个-webkit-text-stroke,然后允许尽可能大的轮廓你喜欢。

div { 字体大小:200 px; 位置:绝对的; 空白:nowrap;} } .front { 颜色:蓝色; } .outline { -webkit-text-stroke: 30px红色; 用户选择:没有; } < div class = "大纲" > 大纲文本 < / div > < div class = "正面" > 大纲文本 < / div >

使用这种方法,我能够实现一个轮廓,因为如果你想让你的文本在非常大的轮廓下保持可读性,那么笔画宽度方法就不是一个选择(因为使用笔画宽度,轮廓将从字母内部开始,当宽度大于字母时,它就不容易读了。

注意:我需要这么粗的轮廓的原因是我在“谷歌地图”中模拟街道标签,我想在文本周围有一个白色的粗光晕。这个解决方案对我来说非常有效。

这里有一把小提琴展示了这个解

我们可以使用文本笔画

HTML

<h1>Sample Text</h1>

CSS

  h1{
    -webkit-text-stroke: 2px red;
    text-stroke: 2px red;
    }

小菜一碟。试试这个,而不是使用文本阴影