Effetto contorno al testo


329

Ci sono modi in CSS di dare contorni al testo con colori diversi? Voglio evidenziare alcune parti del mio testo per renderlo più intuitivo - come i nomi, i collegamenti, ecc. Al giorno d'oggi cambiare i colori dei collegamenti ecc. È comune, quindi voglio qualcosa di nuovo.


17
@Dan Better implica diverso. Il tuo consiglio è generalmente buono ma può anche soffocare la sperimentazione creativa. Inoltre, di solito non è "comune = buono" ... piuttosto, è "comune = a malapena abbastanza buono".
Konrad Rudolph,

7
@Dan Grossman: il mondo si evolve da nuove idee, non tutto ciò che è nuovo è spregevole.
yoda,

7
@yoda La tua sintassi è insolita. / EDIT non importa, ti ha confuso con qualcun altro ... piccolo amico verde.
Konrad Rudolph,

Puoi descrivere ciò di cui hai bisogno in modo più dettagliato. Non sono esattamente sicuro di cosa intendi quando dici che vuoi "dare contorni al testo con colori diversi"
Yi Jiang

1
possibile duplicato del bordo del carattere CSS?
Adam Jensen,

Risposte:


453

Esiste una proprietà webkit sperimentale chiamata text-strokeCSS3, ho cercato di farlo funzionare per un po 'di tempo ma finora non ho avuto successo.

Quello che ho fatto invece è usare la text-shadowproprietà già supportata (credo in Chrome, Firefox, Opera e IE 9 credo).

Usa quattro ombre per simulare un testo tracciato:

.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>

Ho fatto una demo per te qui

E un esempio al passaggio del mouse è disponibile qui


Come Jason C ha menzionato nei commenti, la text-shadowproprietà CSS è ora supportata da tutti i principali browser, ad eccezione di Opera Mini. Laddove questa soluzione funzionerà per compatibilità con le versioni precedenti (in realtà non è un problema relativo ai browser che si aggiornano automaticamente), credo che il text-strokeCSS dovrebbe essere usato.


12
Purtroppo, IE non supporta text-shadowfino a IE10. Stranamente, IE9 supporta box-shadowma non text-shadow.
Web_Designer il

14
Ecco un riepilogo del supportotext-shadow del browser per . Sembra che attualmente (3 anni dopo che questa risposta è stata pubblicata) sia supportata da tutti i principali browser ad eccezione di Opera Mini, che mostra "supporto parziale" (ignora blur-radius).
Jason C

3
Questo aggiunge un effetto più sottile:text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
BeauCielBleu,

29
Nome di classe fantastico
conn conn,

4
Jason C ha sottolineato il text-shadowsupporto, no text-stroke. Che al momento è supportato solo da webkit.
Gregoire D.

100

Modifica: text-stroke ora è abbastanza maturo e implementato nella maggior parte dei browser . È più facile, più nitido e più preciso. Se il tuo pubblico di browser può supportarlo, ora dovresti usare text-strokeprima invece di text-shadow.


Puoi e dovresti farlo solo con l' text-shadoweffetto senza alcun offset:

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

Perché? Quando compensi più effetti ombra, inizierai a notare angoli sgraziati e frastagliati: Gli offset dell'effetto ombra generano evidenti angoli frastagliati.


avere effetti di ombra del testo in una sola posizione elimina gli offset, il che significa che se ritieni che sia troppo sottile e preferisci un contorno più scuro, nessun problema: tu può ripetere lo stesso effetto (mantenendo la stessa posizione e sfocatura), più volte. Così:

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;

Ecco un esempio di un solo effetto (in alto) e lo stesso effetto ripetuto 14 volte (in basso):


Testo di esempio reso con text-shadow

Nota anche: poiché le linee diventano così sottili, è una buona idea disattivare il rendering sub-pixel usando
-webkit-font-smoothing: antialiased.


Risposta interessante, grazie. Non capisco davvero cosa intendi per "ripetere" l'effetto.
edzillion

Grazie per l' font-smoothingopzione, ha notevolmente migliorato l'output in Chrome!
Meki,

1
Prendo atto del commento aggiunto alla risposta secondo cui il tratto di testo è ora supportato nella maggior parte dei browser, ma caniuse lo è ancora (agosto 2016) e lo mostra come non supportato in tutte le versioni di IE e Edge e necessita di -webkit-text-stroke con il layout .css.prefixes.webkit flag abilitato in Firefox. Pensa che non sia abbastanza diffuso il supporto per i siti pubblici.
Nick Rice,

1
Penso che ripetere 14 volte un'ombra di testo potrebbe avere qualche problema di prestazioni. Soprattutto quando si scorre su dispositivi mobili.
Kaosmos,

2
AFAIK text-strokenon è la stessa struttura di via text-shadow. text-strokenon ha alcuna opzione per far apparire il contorno al di fuori del testo, il che significa che il contorno sanguina nel testo rendendolo spesso davvero orribile. In altre parole, text-strokenon è un sostituto text-shadowper i contorni
gman

90

Facile! SVG in soccorso.

Questo è un metodo semplificato:

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>

Ecco una demo più complessa .


6
Questa è un'ottima soluzione e non ha nessuno dei problemi di prestazioni associati a text-shadow. La differenza di prestazioni tra questo approccio e l'accumulo di più ombre di testo è enorme per la mia particolare applicazione (IE 10 su schermi di grandi dimensioni).
djskinner,

3
Questo mi ha dato un effetto molto migliore rispetto alle ombre di testo, perché avevo bisogno di una linea spessa. Grazie!
Andrea,

2
Questo è oro puro amico !! Approccio molto professionale e competente, perfetto ha risposto alla domanda! Questa soluzione è anticipata dal W3 Council o da Google o qualsiasi altra cosa, congratulazioni!
Heitor

Questa soluzione sarebbe stata perfetta anche per me se non avessi aggiunto il tratto a una textarea :(
Brandito

36

Potresti provare a impilare più ombre sfocate fino a quando le ombre sembrano un tratto, in questo modo:

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

Ecco un violino: http://jsfiddle.net/GGUYY/

Lo cito solo nel caso qualcuno fosse interessato, anche se non lo definirei una soluzione perché fallisce in vari modi:

  • non funziona nel vecchio IE
  • viene visualizzato in modo abbastanza diverso in ogni browser
  • applicare così tante ombre è molto pesante da elaborare: S

1
Questa è un'idea davvero semplice e geniale!

1
Grazie, il problema è rappresentato dalle prestazioni, utilizzate con cura :)
brohr,

1
È fantastico. Gli strati extra di ombreggiatura aggiungono davvero una certa profondità ad esso, e funziona in IE11, FF36 e Chrome 41.
RockiesMagicNumber

17

Stavo cercando una soluzione di tracciamento del testo tra browser che funzioni quando sovrapposta alle immagini di sfondo. penso di avere una soluzione per questo che non comporta mark-up extra, js e funziona in IE7-9 (non ho testato 6) e non causa problemi di aliasing.

Questa è una combinazione dell'uso di CSS3 text-shadow, che ha un buon supporto tranne IE ( http://caniuse.com/#search=text-shadow ), quindi utilizza una combinazione di filtri per IE. Al momento, il supporto per il tratto di testo CSS3 è scarso.

Filtri IE

Il filtro bagliore ( http://www.impressivewebs.com/css3-text-shadow-ie/ ) sembra terribile, quindi non l'ho usato.

La risposta di David Hewitt riguardava l'aggiunta di filtri per ombretti in una combinazione di direzioni. Purtroppo ClearType viene quindi rimosso, quindi finiamo con un testo fortemente aliasato.

Ho quindi combinato alcuni degli elementi suggeriti su useragentman con i filtri dropshadow.

Mettendolo insieme

Questo esempio sarebbe il testo nero con un tratto bianco. Sto usando le classi html condizionali a proposito di IE target ( 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;
}

Questo funziona anche con IE più vecchi:filter: glow(color=white,strength=1);
mch

16

Sto solo aggiungendo questa risposta. "Accarezzare" il testo non è lo stesso di "Delineare"

Delineare sembra fantastico. Accarezzare sembra orribile.

La soluzione SVG elencata altrove presenta lo stesso problema. Se vuoi uno schema devi inserire due volte il testo. Una volta accarezzato e di nuovo non accarezzato.

L'acconciatura NON viene delineata

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: Mi piacerebbe sapere come rendere SVG della dimensione corretta di qualsiasi testo arbitrario. Ho la sensazione che sia abbastanza complicato coinvolgere generare lo svg, interrogarlo con javascript per ottenere l'estensione e quindi applicare i risultati. Se c'è un modo non semplice più semplice, mi piacerebbe saperlo.


1
Eccellente questo è il metodo corretto, delineare, non accarezzare. Funziona magnificamente ed è pulito e facile da vedere.
MitchellK,

7

Ho ottenuto risultati migliori con 6 ombre diverse:

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

Volevo un'ombra più grande e ho dovuto aggiungere un paio di righe extra .... 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

Questo mixin per SASS darà risultati fluidi, usando 8 assi:

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

E CSS normale:

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

Lavorare con tratti più spessi diventa un po 'confuso, se hai il piacere di provare questo mixin, non perfetto e in base al peso del tratto genera una buona quantità di 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
Questo mixin non ha funzionato per me ma questo ha funzionato: gist.github.com/nathggns/2984123
akirk

0

Ombre di testo multiple ..
Qualcosa del genere:

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);

Demo: http://jsfiddle.net/punosound/gv6zs58m/


0

Generatore di ombre di testo

Ci sono molte grandi risposte qui. Sembrerebbe che l'ombra del testo sia probabilmente il modo più affidabile per farlo. Non entrerò nei dettagli su come farlo con l'ombra del testo poiché altri lo hanno già fatto, ma l'idea di base è che crei più ombre di testo attorno all'elemento di testo. Più grande è il contorno del testo, più ombre di testo avrai bisogno.

Tutte le risposte inviate (a partire da questo post) forniscono soluzioni statiche per l'ombra del testo. Ho adottato un approccio diverso e ho scritto questo JSFiddle che accetta i valori di colore, sfocatura e larghezza del contorno come input e genera la proprietà di ombra del testo appropriata per il tuo elemento. Basta compilare gli spazi vuoti, controllare l'anteprima e fare clic per copiare il CSS e incollarlo nel foglio di stile.


Inutile Appendice

Apparentemente, le risposte che includono un collegamento a un JSFiddle non possono essere pubblicate se non contengono anche codice. Se lo desideri, puoi ignorare completamente questa appendice. Questo è il JavaScript del mio violino che genera la proprietà text-shadow. Si noti che non è necessario implementare questo codice nelle proprie opere:

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

Ho avuto anche questo problema, e text-shadownon era un'opzione perché gli angoli avrebbero avuto un aspetto negativo (a meno che non avessi molte ombre) e non volevo alcuna sfocatura, quindi la mia unica altra opzione era quella di fare quanto segue: 2 div, e per il div di sfondo, mettici -webkit-text-strokesopra, che ti consente di ottenere un contorno grande quanto desideri.

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>  

Usando questo, sono stato in grado di raggiungere un fuori linea, perché il stroke-widthmetodo non era un'opzione se si desidera che il testo rimanga leggibile con un grande contorno (perché con stroke-widthil contorno inizierà all'interno del lettering, che lo rende non leggibile quando la larghezza diventa più grande delle lettere.

Nota: il motivo per cui avevo bisogno di un contorno così grosso era che stavo emulando le etichette delle strade in "google maps" e volevo un alone bianco grasso intorno al testo. Questa soluzione ha funzionato perfettamente per me.

Ecco un violino che mostra questa soluzione

inserisci qui la descrizione dell'immagine


-15

Ecco il file CSS spero che otterrai ciò che vuoi

/* ----- 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
Si prega di elaborare la soluzione. Anche se funziona, non abbiamo idea di come usarlo.
Patrick Hofman,

3
Spero che le soluzioni giuste non debbano prendere 200 righe di CSS.
Dardub,

2
Questa risposta non ha assolutamente senso.
superluminario,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.