Мне трудно поверить, что не существует стандартного и простого (и независимого от браузера) способа поместить эффект обводки вокруг текста с помощью CSS.
У нас есть -webkit-text-stroke
но по какой-то странной причине обводка сосредоточена вокруг границы текста, а не за ее пределами, как здесь оплакивается.
Таким образом, я пытаюсь реализовать обходной путь, основанный на этой идее, который помещает заштрихованный текст в псевдоэлемент позади оригинального заштрихованного текста. Я продемонстрировал это в этом jsfiddle со следующим кодом:
var jQueryAttr = function(selector, attr, setterFunction) {
document.querySelectorAll(selector).forEach((el, i) => {
el.setAttribute(attr, setterFunction.call(el, i, attr));
});
};
jQueryAttr('.myclass', 'data-myclass', function(index, attr) {
return this.innerHTML;
});
body {
background: none;
}
.basic {
color: rgba(186, 218, 85, 1);
font: 2.5em Georgia, serif;
}
.myclass {
position: relative;
background: transparent;
z-index: 0;
}
.myclass::before {
content: attr(data-myclass);
position: absolute;
-webkit-text-stroke: 0.2em rgba(0, 0, 0, 1);
z-index: -1;
}
.anotherclass {
-webkit-text-stroke: 0.2em rgba(0, 0, 0, 1);
}
<p class="basic">Text without any stroke</p>
<p class="myclass basic">Text with outer stroke</p>
<p class="anotherclass basic">Without the trick applied</p>