::first-letter
не работает с встроенными элементами, такими как span
. ::first-letter
работает над блочными элементами, такими как абзац, заголовок таблицы, ячейка таблицы, элемент списка или те, у которых их свойство display
установлено на inline-block
.
Поэтому лучше применить ::first-letter
к p
вместо span
.
p::first-letter {font-size: 500px;}
или если вы хотите селектор ::first-letter
в span
, тогда напишите его следующим образом:
p b span::first-letter {font-size: 500px !important;}
span {display:block}
MDN предоставляет логическое обоснование для этого неочевидного поведения:
Псевдоэлемент CSS
::first-letter
выбирает первую букву первой строки блока, если ему не предшествует какой-либо другой контент (например, изображения или встроенные таблицы) на его строке....
Первая строка имеет значение только в блоке-контейнере , поэтому псевдоэлемент
blockquote>::first-letter
влияет только на элементы сdisplay
значениемblock
,inline-block
,table-cell
,list-item
илиtable-caption
. Во всех других случаях::first-letter
не действует.Примеры
Ссылки
https://developer.mozilla.org/en-US/docs/Web/CSS/::first-letter http: //reference.sitepoint .com / CSS / pseudoelement-firstletter