6

所以,我在建立一个网站设计师的过程中,我遇到了一些奇怪的事情,如果你在一个元素上设置了阴影,我做了一个小提琴,这在FIDDLEtext-shadow: 0 0 0 someColor很清楚。

这是一个错误吗? 在此处输入图像描述

4

5 回答 5

4

这不是错误,因为它不是规范的错误实现;该规范暗示只要计算的值不是none. 唯一可以计算的值nonenoneinitial

文本阴影的绘制类似于框阴影。因此,文本阴影的大部分行为都遵循box shadows的规范。在任何一个规范中都没有声明全零的值不应该产生阴影。它只是说任何一个属性都可以采用以下两个可能值之一:none,或者一个或多个<shadow>值组的逗号分隔列表,每个值组对应于一组值:在 的情况下text-shadow,它[ <length>{2,3} && <color>? ]#其自身中给出规格_ 只要您的值不是none,任一规范都假定将绘制阴影并基于该假设指定所有行为。

对于这两个属性,即使您没有指定颜色,两个规范都说明currentColor应该使用(它在散文中说它是“从color属性中获取的”或“它阴影的墨水的结果颜色”;结果代码是currentColor)。

由于阴影总是为 以外的值绘制none,并且零长度会导致阴影与文本大小完全相同,因此这里发生的情况可能是由于抗锯齿合成两层或多层半透明像素的结果字形和阴影(如评论中所述)。这不仅适用于文本阴影,也适用于盒子阴影,一个典型的例子是带有圆角的盒子,其中抗锯齿的唯一提示是圆角本身,而不是盒子的直边. 这也发生在所有浏览器中,至少基于测试和先前的经验。

尽管如此,如果你绝对不能接受none作为一个值,你总是可以指定transparent颜色。阴影仍将被绘制,但由于它是完全透明的,您将看不到它

于 2013-09-20T18:31:48.083 回答
1

如果要删除文本阴影,我建议设置 text-shadow: none;

text-shadow:none;
于 2013-09-19T14:50:00.773 回答
0

可选的。这是一个值。如果不指定,则默认为0。此值越高,模糊越大;阴影变得更宽更亮。

blur 属性在设置为零时不表示没有模糊。 https://developer.mozilla.org/en-US/docs/Web/CSS/text-shadow

于 2013-09-15T20:07:22.293 回答
0

文字阴影:0px 0px 0px #FFFFFF; 这些属性不用于隐藏或显示。上下移动阴影,左右移动阴影,模糊级别 0 清晰。

如果你想隐藏阴影然后:写“text-shadow:;” 但不要设置任何值,它应该为空。

抱歉英语不好:)

于 2013-09-19T13:10:43.427 回答
0

如果您正在构建页面构建器并想要初始“空”值(它们不是空的,前两个零表示定位,最后一个表示模糊程度)您可能只想将颜色设置为元素的默认值背景颜色。或者您可以将模糊值更改为 -1。

text-shadow: 0 0 -1px red;

我能想到的另一个选择是让他们启用文本阴影,然后使用 if else 语句放入你的 0 0 0 红色。伪代码:

if text-shadow option is checked
    use text-shadow:0 0 0 red;

else
    use text-shadow:none;

祝你好运。

于 2013-09-20T17:51:26.480 回答