文字轮廓效果


329

CSS中有什么方法可以为不同颜色的文本提供轮廓?我想突出显示文本的某些部分以使其更直观-例如名称,链接等。更改链接颜色等现在很普遍,因此我需要一些新的东西。


17
@丹更好暗示不同。您的建议通常很好,但也可能扼杀创意实验。此外,通常不是“普通=良好”……而是“普通=勉强够好”。
康拉德·鲁道夫

7
@丹·格罗斯曼(Dan Grossman):世界是从新观念演变而来的,并不是所有新事物都是卑鄙的。
yoda

7
@yoda您的语法不寻常。/ EDIT没关系,让您与其他人混淆……小家伙。
康拉德·鲁道夫

您能否更详细地描述您的需求。我不完全明白你的意思,当你说你要“给轮廓与不同颜色的文字”
姜毅

Answers:


452

text-stroke在CSS3中有一个实验性的webkit属性,我一直在尝试使其工作一段时间,但到目前为止仍未成功。

相反,我使用的是已经受支持的text-shadow属性(我相信Chrome,Firefox,Opera和IE 9 支持该属性)。

使用四个阴影来模拟描边文本:

.strokeme {
  color: white;
  text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
}
<div class="strokeme">
  This text should have a stroke in some browsers
</div>

在这里为你做了一个演示

和悬停的例子可以在这里找到


正如Jason C在评论中提到的那样text-shadow,除Opera Mini外,所有主流浏览器都支持CSS属性。我认为text-stroke应该使用CSS来解决此问题,以实现向后兼容(实际上并不是与自动更新的浏览器有关的问题)。


12
可悲的是,IE text-shadow直到IE10 才支持。奇怪的是,IE9支持box-shadow但不支持text-shadow
Web_Designer 2011年

14
以下是浏览器对的支持text-shadow摘要。似乎当前(发布此答案后的3年),除Opera Mini(显示“部分支持” blur-radius)外,所有主流浏览器都支持它(忽略)。
2014年

3
这增加了更薄的效果:text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
BeauCielBleu 2014年

29
很棒的班级名称
公民conn

4
杰森C指出text-shadow支持,而不是text-stroke。目前只有webkit支持。
Gregoire D.

100

编辑: text-stroke 现在已经相当成熟,并且已在大多数浏览器中实现。它更容易,更清晰,更精确。如果您的浏览器受众可以支持它,则现在应text-stroke先使用而不是text-shadow


您可以并且应该仅使用text-shadow没有任何偏移的效果来执行此操作:

.outline {
    color: #fff;
    text-shadow: #000 0px 0px 1px;
    -webkit-font-smoothing: antialiased;
}

为什么?当您偏移多个阴影效果时,您会开始不舒服地注意到锯齿状的拐角: 阴影效果偏移会导致明显的锯齿状拐角。


仅将文本阴影效果放在一个位置就可以消除偏移,这意味着如果您觉得它太薄并且希望使用较暗的轮廓,那么没问题-您可以重复几次相同的效果(保持相同的位置和模糊)。像这样:

text-shadow: #000 0px 0px 1px,   #000 0px 0px 1px,   #000 0px 0px 1px,
             #000 0px 0px 1px,   #000 0px 0px 1px,   #000 0px 0px 1px;

这是一个效果的样本(顶部),相同的效果重复了14次(底部):


用文本阴影渲染的示例文本

另请注意:由于线条太细了,因此最好使用关闭子像素渲染
-webkit-font-smoothing: antialiased


有趣的答案,谢谢。我真的不明白您所说的“重复”效果是什么意思。
edzillion 2014年

感谢您的font-smoothing选择,它大大改善了chrome的输出!
梅基2014年

1
我注意到在答案中添加的评论是大多数浏览器现在都支持text-stroke,但caniuse仍(2016年8月)显示它在所有版本的IE和Edge中均不受支持,并且需要使用-webkit-text-stroke进行布局在Firefox中启用了.css.prefixes.webkit标志。Methink认为,对于一般公共站点的支持还不够广泛。
尼克·赖斯

1
我认为重复14次文本阴影可能会导致性能问题。尤其是在手机上滚动时。
kaosmos

2
AFAIK text-stroke与的轮廓不同text-shadowtext-stroke没有办法使轮廓显示在文本的外部,这意味着轮廓会渗入文本,使其看起来通常很恐怖。换句话说,text-stroke这不能代替text-shadow轮廓
gman

90

简单!SVG来了。

这是一种简化的方法:

svg{
  font: bold 70px Century Gothic, Arial;
  width: 100%;
  height: 120px;
}

text{
  fill: none;
  stroke: black;
  stroke-width:0.5px;
  // stroke-dasharray: 2,2;
  stroke-linejoin: round;
  animation: 2s pulsate infinite;
}

@keyframes pulsate {
  50%{ stroke-width:4px; }
}
<svg viewBox="0 0 450 50">
  <text y="40">Scalable Title</text>
</svg>

这是一个更复杂的演示


6
这是一个很好的解决方案,并且没有与文本阴影相关的性能问题。对于我的特定应用程序(大屏幕显示器上的IE 10),此方法与堆叠多个文本阴影之间的性能差异非常大。
djskinner 2015年

3
这给了我比文本阴影更好的效果,因为我需要粗线。谢谢!
Andrea

2
那是纯金家伙!非常专业和熟练的方法,完美回答了问题!恭喜,此解决方案领先于W3理事会或Google或其他公司!
Heitor

如果我没有将笔画添加到文本区域,此解决方案对我来说也将是完美的:(
Brandito

36

您可以尝试堆叠多个模糊的阴影,直到阴影看起来像笔触一样,如下所示:

.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

1
这真是一个简单而挑剔的想法!

1
谢谢,虽然这是性能的问题,但请小心使用:)
brohr

1
这是太棒了。阴影的额外层确实增加了一定的深度,并且可以在IE11,FF36和Chrome 41中使用
。– RockiesMagicNumber

17

我一直在寻找一种跨浏览器的文本笔划解决方案,该解决方案可以覆盖背景图像。我认为我有一个解决方案,它不涉及额外的标记,js,并且可以在IE7-9中使用(我还没有测试过6),并且不会引起混叠问题。

这是使用CSS3文本阴影(对IE(http://caniuse.com/#search=text-shadow)除外)具有良好支持的一种组合,然后对IE使用过滤器的组合。目前CSS3笔画支持不佳。

IE过滤器

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

大卫·休伊特(David Hewitt)的答案包括在多个方向上添加阴影过滤器。不幸的是,然后清除了ClearType,因此最终导致别名错误的文本。

然后,我将在useragentman上建议的一些元素与dropshadow过滤器结合在一起。

把它放在一起

此示例将是带有白色笔划的黑色文本。我通过使用条件html类来定位IE(http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-ntwo/)。

#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;
}

这也适用于较旧的IE:filter: glow(color=white,strength=1);
mch 2015年

16

只需添加此答案。“描边”文本与“概述”不同

概述看起来很棒。抚摸看起来很可怕。

其他地方列出的SVG解决方案也存在相同的问题。要获得轮廓,您需要将文本放置两次。一旦中风,再次不中风。

抚摸不是概述

body {
  font-family: sans-serif;
  margin: 20px;
}

.stroked {
  color: white;
  -webkit-text-stroke: 1px black;
}

.thickStroked {
  color: white;
  -webkit-text-stroke: 10px black;
}

.outlined {
  color: white;
  text-shadow:
    -1px -1px 0 #000,
     0   -1px 0 #000,
     1px -1px 0 #000,
     1px  0   0 #000,
     1px  1px 0 #000,
     0    1px 0 #000,
    -1px  1px 0 #000,
    -1px  0   0 #000;
}

.thickOutlined {
  color: white;
text-shadow: 0.0px 10.0px 0.02px #000, 9.8px 2.1px 0.02px #000, 4.2px -9.1px 0.02px #000, -8.0px -6.0px 0.02px #000, -7.6px 6.5px 0.02px #000, 4.8px 8.8px 0.02px #000, 9.6px -2.8px 0.02px #000, -0.7px -10.0px 0.02px #000, -9.9px -1.5px 0.02px #000, -3.5px 9.4px 0.02px #000, 8.4px 5.4px 0.02px #000, 7.1px -7.0px 0.02px #000, -5.4px -8.4px 0.02px #000, -9.4px 3.5px 0.02px #000, 1.4px 9.9px 0.02px #000, 10.0px 0.8px 0.02px #000, 2.9px -9.6px 0.02px #000, -8.7px -4.8px 0.02px #000, -6.6px 7.5px 0.02px #000, 5.9px 8.0px 0.02px #000, 9.1px -4.1px 0.02px #000, -2.1px -9.8px 0.02px #000, -10.0px -0.1px 0.02px #000, -2.2px 9.8px 0.02px #000, 9.1px 4.2px 0.02px #000, 6.1px -8.0px 0.02px #000, -6.5px -7.6px 0.02px #000, -8.8px 4.7px 0.02px #000, 2.7px 9.6px 0.02px #000, 10.0px -0.6px 0.02px #000, 1.5px -9.9px 0.02px #000, -9.3px -3.6px 0.02px #000, -5.5px 8.4px 0.02px #000, 7.0px 7.2px 0.02px #000, 8.5px -5.3px 0.02px #000, -3.4px -9.4px 0.02px #000, -9.9px 1.3px 0.02px #000, -0.8px 10.0px 0.02px #000, 9.6px 2.9px 0.02px #000, 4.9px -8.7px 0.02px #000, -7.5px -6.7px 0.02px #000, -8.1px 5.9px 0.02px #000, 4.0px 9.2px 0.02px #000, 9.8px -2.0px 0.02px #000, 0.2px -10.0px 0.02px #000, -9.7px -2.3px 0.02px #000, -4.3px 9.0px 0.02px #000, 7.9px 6.1px 0.02px #000
}

svg {
  font-size: 40px;
  font-weight: bold;
  width: 450px;
  height: 70px;
  fill: white;
}

.svgStroke {
  fill: white;
  stroke: black;
  stroke-width: 20px;
  stroke-linejoin: round;
}
<h1 class="stroked">Properly stroked!</h1>
<h1 class="outlined">Properly outlined!</h1>

<h1 class="thickStroked">Thickly stroked!</h1>
<h1 class="thickOutlined">Thickly outlined!</h1>

<svg viewBox="0 0 450 70">
  <text class="svgStroke" x="10" y="45">SVG Thickly Stroked!</text>
</svg>
<svg viewBox="0 0 450 70">
  <text class="svgStroke" x="10" y="45">SVG Thickly Outlined!</text>
  <text class="svgText" x="10" y="45">SVG Thickly Outlined!</text>
</svg>

PS:我很想知道如何使SVG成为任意文本的正确大小。我觉得涉及到生成svg,使用javascript查询以获取范围然后应用结果是相当复杂的。如果有更简单的非js方式,我想知道。


1
好的,这是正确的方法,概述而不是抚摸。作品精美,眼睛整洁,轻松。
MitchellK

7

使用6种不同的阴影可以获得更好的效果:

.strokeThis{
    text-shadow:
    -1px -1px 0 #ff0,
    0px -1px 0 #ff0,
    1px -1px 0 #ff0,
    -1px 1px 0 #ff0,
    0px 1px 0 #ff0,
    1px 1px 0 #ff0;
}

我想要一个更大的阴影,并且不得不添加一些额外的行。...3px 0px 0#343a7e,-3px 0px 0#343a7e
Jayden Lawson

7

h1 {
   color: black;
   -webkit-text-fill-color: white; /* Will override color (regardless of order) */
   -webkit-text-stroke-width: 1px;
   -webkit-text-stroke-color: black;
}
<h1>Properly stroked!</h1>


6

使用8轴时,此用于SASS的mixin将提供平滑的结果:

@mixin stroke($size: 1px, $color: #000) {
  text-shadow:
    -#{$size} -#{$size} 0 $color,
     0        -#{$size} 0 $color,
     #{$size} -#{$size} 0 $color,
     #{$size}  0        0 $color,
     #{$size}  #{$size} 0 $color,
     0         #{$size} 0 $color,
    -#{$size}  #{$size} 0 $color,
    -#{$size}  0        0 $color;
}

和普通的CSS:

text-shadow:
  -1px -1px 0 #000,
   0   -1px 0 #000,
   1px -1px 0 #000,
   1px  0   0 #000,
   1px  1px 0 #000,
   0    1px 0 #000,
  -1px  1px 0 #000,
  -1px  0   0 #000;

4

使用较粗的笔触会有点混乱,如果您乐于使用Sass,请尝试此混音,这不是很完美,根据笔触的重量,它会生成相当数量的CSS。

 @mixin stroke($width, $colour: #000000) {
      $shadow: 0 0 0 $colour; // doesn't do anything but I couldn't work out how to create a blank string and maintain commas
      @for $i from 0 through $width {
          $shadow: $shadow,
          -$i + px -$width + px 0 $colour,
          $i + px -$width + px 0 $colour,
          -$i + px $width + px 0 $colour,
          $i + px $width + px 0 $colour,
          -$width + px -$i + px 0 $colour,
          $width + px -$i + px 0 $colour,
          -$width + px $i + px 0 $colour,
          $width + px $i + px 0 $colour,
      }
      text-shadow: $shadow;
}

1
这个mixin不适用于我,但是这个对我有用
akrk

0

多个文本阴影..
类似这样的东西:

var steps = 10,
    i,
    R = 0.6,
    x,
    y,
    theStyle = '1vw 1vw 3vw #005dab';
for (i = -steps; i <= steps; i += 1) {
    x = (i / steps) / 2;
    y = Math.sqrt(Math.pow(R, 2) - Math.pow(x, 2));
    theStyle = theStyle + ',' + x.toString() + 'vw ' + y.toString() + 'vw 0 #005dab';
    theStyle = theStyle + ',' + x.toString() + 'vw -' + y.toString() + 'vw 0 #005dab';
    theStyle = theStyle + ',' + y.toString() + 'vw ' + x.toString() + 'vw 0 #005dab';
    theStyle = theStyle + ',-' + y.toString() + 'vw ' + x.toString() + 'vw 0 #005dab';
}
document.getElementsByTagName("H1")[0].setAttribute("style", "text-shadow:" + theStyle);

演示:http//jsfiddle.net/punosound/gv6zs58m/


0

文字阴影生成器

这里有很多很棒的答案。看起来文本阴影可能是执行此操作的最可靠方法。因为其他人已经做到了,所以我不会详细介绍如何使用文本阴影,但是其基本思想是在文本元素周围创建多个文本阴影。文字轮廓越大,所需的阴影越多。

提交的所有答案(截至本发布之日)为文本阴影提供了静态解决方案。我采用了另一种方法,并编写了此JSFiddle该JSFiddle接受轮廓颜色,模糊和宽度值作为输入,并为您的元素生成适当的text-shadow属性。只需填充空白,检查预览,然后单击以复制css并将其粘贴到样式表中。


不需要的附录

显然,包含JSFiddle链接的答案不能发布,除非它们也包含代码。如果需要,您可以完全忽略此附录。这是我的小提琴产生的JavaScript,它生成了text-shadow属性。请注意,你不会需要在自己的作品来实现这样的代码:

function computeStyle() {
    var width = document.querySelector('#outline-width').value;
  width = (width === '') ? 0 : Number.parseFloat(width);
  var blur = document.querySelector('#outline-blur').value;
  blur = (blur === '') ? 0 : Number.parseFloat(blur);
  var color = document.querySelector('#outline-color').value;
  if (width < 1 || color === '') {
    document.querySelector('.css-property').innerText = '';
    return;
  }
    var style = 'text-shadow: ';
  var indent = false;
    for (var i = -1 * width; i <= width; ++i) {
    for (var j = -1 * width; j <= width; ++j) {
        if (! (i === 0 && j === 0 && blur === 0)) {
        var indentation = (indent) ? '\u00a0\u00a0\u00a0\u00a0' : '';
            style += indentation + i + "px " + j + "px " + blur + "px " + color + ',\n';
        indent = true;
      }
    }
  }
  style = style.substring(0, style.length - 2) + '\n;';
  document.querySelector('.css-property').innerText = style;

  var exampleBackground = document.querySelector('#example-bg');
  var exampleText = document.querySelector('#example-text');
  exampleBackground.style.backgroundColor = getOppositeColor(color);
  exampleText.style.color = getOppositeColor(color);
  var textShadow = style.replace(/text-shadow: /, '').replace(/\n/g, '').replace(/.$/, '').replace(/\u00a0\u00a0\u00a0\u00a0/g, '');
  exampleText.style.textShadow = textShadow;
}

-2

我也遇到了这个问题,这text-shadow不是一个选择,因为拐角看起来很糟(除非我有很多阴影),而且我也不想有任何模糊,因此,我唯一的选择是执行以下操作: 2个div,然后在背景div上放一个-webkit-text-stroke,然后根据需要允许轮廓尽可能大。

div {
  font-size: 200px;
  position: absolute;
  white-space: nowrap;
}

.front {
 color: blue;
}

.outline {
  -webkit-text-stroke: 30px red;
  user-select: none;
}
<div class="outline">
 outline text
</div>

<div class="front">
 outline text
</div>  

利用这一点,我是能够实现线,因为stroke-width如果你希望你的文字仍然清晰可辨具有非常大的轮廓(因为方法不是一种选择stroke-width轮廓会这使得它无法辨认的文字内开始时的宽度比字母大。

注意:之所以需要这样粗大的轮廓,是因为我正在模拟“谷歌地图”中的街道标签,并且希望文本周围有一个粗大的白色光晕。该解决方案对我来说非常有效。

这是显示此解决方案的小提琴

在此处输入图片说明


-15

这是CSS文件,希望您能得到想要的

/* ----- Logo ----- */

#logo a {
    background-image:url('../images/wflogo.png'); 
    min-height:0;
    height:40px;
    }
* html #logo a {/* IE6 png Support */
    background-image: none;
    filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src="../images/wflogo.png", sizingMethod="crop");
}

/* ----- Backgrounds ----- */
html{
    background-image:none;  background-color:#336699;
}
#logo{
    background-image:none;  background-color:#6699cc;
}
#container, html.embed{
    background-color:#FFFFFF;
}
.safari .wufoo input.file{
    background:none;
    border:none;
}

.wufoo li.focused{
    background-color:#FFF7C0;
}
.wufoo .instruct{
    background-color:#F5F5F5;
}

/* ----- Borders ----- */
#container{
    border:0 solid #cccccc;
}
.wufoo .info, .wufoo .paging-context{
    border-bottom:1px dotted #CCCCCC;
}
.wufoo .section h3, .wufoo .captcha, #payment .paging-context{
    border-top:1px dotted #CCCCCC;
}
.wufoo input.text, .wufoo textarea.textarea{

}
.wufoo .instruct{
    border:1px solid #E6E6E6;
}
.fixed .info{
    border-bottom:none;
}
.wufoo li.section.scrollText{
    border-color:#dedede;
}

/* ----- Typography ----- */
.wufoo .info h2{
    font-size:160%;
    font-family:inherit;
    font-style:normal;
    font-weight:normal;
    color:#000000;
}
.wufoo .info div{
    font-size:95%;
    font-family:inherit;
    font-style:normal;
    font-weight:normal;
    color:#444444;
}
.wufoo .section h3{
    font-size:110%;
    font-family:inherit;
    font-style:normal;
    font-weight:normal;
    color:#000000;
}
.wufoo .section div{
    font-size:85%;
    font-family:inherit;
    font-style:normal;
    font-weight:normal;
    color:#444444;
}

.wufoo label.desc, .wufoo legend.desc{
    font-size:95%;
    font-family:inherit;
    font-style:normal;
    font-weight:bold;
    color:#444444;
}

.wufoo label.choice{
    font-size:100%;
    font-family:inherit;
    font-style:normal;
    font-weight:normal;
    color:#444444;
}
.wufoo input.text, .wufoo textarea.textarea, .wufoo input.file, .wufoo select.select{
    font-style:normal;
    font-weight:normal;
    color:#333333;
    font-size:100%;
}
{* Custom Fonts Break Dropdown Selection in IE *}
.wufoo input.text, .wufoo textarea.textarea, .wufoo input.file{ 
    font-family:inherit;
}


.wufoo li div, .wufoo li span, .wufoo li div label, .wufoo li span label{
    font-family:inherit;
    color:#444444;
}
.safari .wufoo input.file{ /* Webkit */
    font-size:100%;
    font-family:inherit;
    color:#444444;
}
.wufoo .instruct small{
    font-size:80%;
    font-family:inherit;
    font-style:normal;
    font-weight:normal;
    color:#444444;
}

.altInstruct small, li.leftHalf small, li.rightHalf small,
li.leftThird small, li.middleThird small, li.rightThird small,
.iphone small{
    color:#444444 !important;
}

/* ----- Button Styles ----- */

.wufoo input.btTxt{

}

/* ----- Highlight Styles ----- */

.wufoo li.focused label.desc, .wufoo li.focused legend.desc,
.wufoo li.focused div, .wufoo li.focused span, .wufoo li.focused div label, .wufoo li.focused span label,
.safari .wufoo li.focused input.file{ 
    color:#000000;
}

/* ----- Confirmation ----- */

.confirm h2{
    font-family:inherit;
    color:#444444;
}
a.powertiny b, a.powertiny em{
    color:#1a1a1a !important;
}
.embed a.powertiny b, .embed a.powertiny em{
    color:#1a1a1a !important;
}

/* ----- Pagination ----- */

.pgStyle1 var, .pgStyle2 var, .pgStyle2 em, .page1 .pgStyle2 var, .pgStyle1 b, .wufoo .buttons .marker{
    font-family:inherit;
    color:#444444;
}
.pgStyle1 var, .pgStyle2 td{
    border:1px solid #cccccc;
}
.pgStyle1 .done var{
    background:#cccccc;
}

.pgStyle1 .selected var, .pgStyle2 var, .pgStyle2 var em{
    background:#FFF7C0;
    color:#000000;
}
.pgStyle1 .selected var{
    border:1px solid #e6dead;
}


/* Likert Backgrounds */

.likert table{
    background-color:#FFFFFF;
}
.likert thead td, .likert thead th{
    background-color:#e6e6e6;
}
.likert tbody tr.alt td, .likert tbody tr.alt th{
    background-color:#f5f5f5;
}

/* Likert Borders */

.likert table, .likert th, .likert td{
    border-color:#dedede;
}
.likert td{
    border-left:1px solid #cccccc;
}

/* Likert Typography */

.likert caption, .likert thead td, .likert tbody th label{
    color:#444444;
    font-family:inherit;
}
.likert tbody td label{
    color:#575757;
    font-family:inherit;
}
.likert caption, .likert tbody th label{
    font-size:95%;
}

/* Likert Hover */

.likert tbody tr:hover td, .likert tbody tr:hover th, .likert tbody tr:hover label{
    background-color:#FFF7C0;
    color:#000000;
}
.likert tbody tr:hover td{
    border-left:1px solid #ccc69a;
}

/* ----- Running Total ----- */

.wufoo #lola{
    background:#e6e6e6;
}
.wufoo #lola tbody td{
    border-bottom:1px solid #cccccc;
}
.wufoo #lola{
    font-family:inherit;
    color:#444444;
}
.wufoo #lola tfoot th{
    color:#696969;
}

/* ----- Report Styles ----- */

.wufoo .wfo_graph h3{
    font-size:95%;
    font-family:inherit;
    color:#444444;
}
.wfo_txt, .wfo_graph h4{
    color:#444444;
}
.wufoo .footer h4{
    color:#000000;
}
.wufoo .footer span{
    color:#444444;
}

/* ----- Number Widget ----- */

.wfo_number{
    background-color:#f5f5f5;
    border-color:#dedede;
}
.wfo_number strong, .wfo_number em{
    color:#000000;
}

/* ----- Chart Widget Border and Background Colors ----- */

#widget, #widget body{
    background:#FFFFFF;
}
.fcNav a.show{
    background-color:#FFFFFF;
    border-color:#cccccc;
}
.fc table{
    border-left:1px solid #dedede;  
}
.fc thead th, .fc .more th{
    background-color:#dedede !important;
    border-right:1px solid #cccccc !important;
}
.fc tbody td, .fc tbody th, .fc tfoot th, .fc tfoot td{
    background-color:#FFFFFF;
    border-right:1px solid #cccccc;
    border-bottom:1px solid #dedede;
}
.fc tbody tr.alt td, .fc tbody tr.alt th, .fc tbody td.alt{
    background-color:#f5f5f5;
}

/* ----- Chart Widget Typography Colors ----- */

.fc caption, .fcNav, .fcNav a{
    color:#444444;
}
.fc tfoot, 
.fc thead th,
.fc tbody th div, 
.fc tbody td.count, .fc .cards tbody td a, .fc td.percent var,
.fc .timestamp span{
    color:#000000;
}
.fc .indent .count{
    color:#4b4b4b;
}
.fc .cards tbody td a span{
    color:#7d7d7d;
}

/* ----- Chart Widget Hover Colors ----- */

.fc tbody tr:hover td, .fc tbody tr:hover th,
.fc tfoot tr:hover td, .fc tfoot tr:hover th{
    background-color:#FFF7C0;
}
.fc tbody tr:hover th div, .fc tbody tr:hover td, .fc tbody tr:hover var,
.fc tfoot tr:hover th div, .fc tfoot tr:hover td, .fc tfoot tr:hover var{
    color:#000000;
}

/* ----- Payment Summary ----- */

.invoice thead th, 
.invoice tbody th, .invoice tbody td,
.invoice tfoot th,
.invoice .total,
.invoice tfoot .last th, .invoice tfoot .last td,
.invoice tfoot th, .invoice tfoot td{
    border-color:#dedede;
}
.invoice thead th, .wufoo .checkNotice{
    background:#f5f5f5;
}
.invoice th, .invoice td{
    color:#000000;
}
#ppSection, #ccSection{
    border-bottom:1px dotted #CCCCCC;
}
#shipSection, #invoiceSection{
    border-top:1px dotted #CCCCCC;
}

/* Drop Shadows */

/* - - - Local Fonts - - - */

/* - - - Responsive - - - */

@media only screen and (max-width: 480px) {
    html{
        background-color:#FFFFFF;
    }
    a.powertiny b, a.powertin em{
        color:#1a1a1a !important;
    }
}

/* - - - Custom Theme - - - */

9
请详细说明您的解决方案。即使它确实起作用,我们也不知道如何使用它。
Patrick Hofman 2014年

3
我希望正确的解决方案不必占用200行CSS。
dardub '17

2
这个答案根本没有任何意义。
superluminary
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.