Risposte:
Usa più ombre di testo:
text-shadow: 2px 0 0 #fff, -2px 0 0 #fff, 0 2px 0 #fff, 0 -2px 0 #fff, 1px 1px #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff;

body {
font-family: sans-serif;
background: #222;
color: darkred;
}
h1 {
text-shadow: 2px 0 0 #fff, -2px 0 0 #fff, 0 2px 0 #fff, 0 -2px 0 #fff, 1px 1px #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff;
}
<h1>test</h1>
In alternativa, puoi usare il tratto di testo, che funziona solo in webkit:
-webkit-text-stroke-width: 2px;
-webkit-text-stroke-color: #fff;

body {
font-family: sans-serif;
background: #222;
color: darkred;
}
h1 {
-webkit-text-stroke-width: 2px;
-webkit-text-stroke-color: #fff;
}
<h1>test</h1>
Sicuro. Potresti usare CSS3 text-shadow:
text-shadow: 0 0 2px #fff;
Tuttavia non verrà visualizzato immediatamente in tutti i browser. Tuttavia, l' utilizzo di una libreria di script come Modernizr aiuterà a farlo bene nella maggior parte dei browser.
Non mi piacciono molte soluzioni basate sulla moltiplicazione delle ombre del testo, non è molto flessibile, potrebbe funzionare per un tratto di 2 pixel in cui le direzioni da aggiungere sono 8, ma con soli 3 pixel le direzioni del tratto diventano 16 e così via .. Non proprio comodo da gestire.
Lo strumento giusto esiste, è SVG <text>
Il problema di supporto del browser non vale nulla in questo caso, perché anche l'uso di text-shadow ha il suo problema di supporto,
filter: progid:DXImageTransformpuò essere utilizzato o IE <10 ma spesso non funziona come previsto.
Per me la soluzione migliore rimane SVG con un fallback nel testo non tratteggiato per browser meno recenti:
Questo tipo di approccio funziona praticamente su tutte le versioni di Chrome e Firefox, Safari dalla versione 3.04, Opera 8, IE 9
Rispetto ai text-shadowcui supporti sono: Chrome 4.0, FF 3.5, IE 10, Safari 4.0, Opera 9, risulta ancora più compatibile.
.stroke {
margin: 0;
font-family: arial;
font-size:70px;
font-weight: bold;
}
svg {
display: block;
}
text {
fill: black;
stroke: red;
stroke-width: 3;
}
<p class="stroke">
<svg xmlns="http://www.w3.org/2000/svg" width="700" height="72" viewBox="0 0 700 72">
<text x="0" y="70">Stroked text</text>
</svg>
</p>