AKTUALIZACJA
Oto mieszanka SCSS do generowania obrysu: http://codepen.io/pixelass/pen/gbGZYL
/// Stroke font-character
/// @param {Integer} $stroke - Stroke width
/// @param {Color} $color - Stroke color
/// @return {List} - text-shadow list
@function stroke($stroke, $color) {
$shadow: ();
$from: $stroke*-1;
@for $i from $from through $stroke {
@for $j from $from through $stroke {
$shadow: append($shadow, $i*1px $j*1px 0 $color, comma);
}
}
@return $shadow;
}
/// Stroke font-character
/// @param {Integer} $stroke - Stroke width
/// @param {Color} $color - Stroke color
/// @return {Style} - text-shadow
@mixin stroke($stroke, $color) {
text-shadow: stroke($stroke, $color);
}
TAK stare pytanie .. z zaakceptowanymi (i dobrymi) odpowiedziami ..
ALE ... Na wypadek, gdyby ktoś kiedykolwiek tego potrzebował i nie znosił pisania kodu ...
TO jest czarna ramka 2px z obsługą CrossBrowser (nie IE) Potrzebowałem tego dla czcionek @fontface, więc musiałem być czystszy niż poprzednie odpowiedzi ... Biorę piksel z każdej strony, aby upewnić się, że nie ma (prawie) żadnych przerw dla „ fuzzy "(handrawn lub podobne) czcionki. Można dodawać subpiksele (0,5 piksela), ale nie potrzebuję tego.
Długi kod dla samej granicy? ...TAK!!!
text-shadow: 1px 1px 0 #000,
-1px 1px 0 #000,
1px -1px 0 #000,
-1px -1px 0 #000,
0px 1px 0 #000,
0px -1px 0 #000,
-1px 0px 0 #000,
1px 0px 0 #000,
2px 2px 0 #000,
-2px 2px 0 #000,
2px -2px 0 #000,
-2px -2px 0 #000,
0px 2px 0 #000,
0px -2px 0 #000,
-2px 0px 0 #000,
2px 0px 0 #000,
1px 2px 0 #000,
-1px 2px 0 #000,
1px -2px 0 #000,
-1px -2px 0 #000,
2px 1px 0 #000,
-2px 1px 0 #000,
2px -1px 0 #000,
-2px -1px 0 #000;