Есть два основных недостатка:
- вы теряете удобство сопровождения кода
- если этот CSS влияет на какой-либо элемент перед ним, вы можете получить FOUC .
Теоретически, есть и незначительные потери производительности, но они незначительны: рендеринг приостанавливается, когда встречается новый ресурс таблицы стилей. Должно быть сделано четкое различие между «блокировкой рендеринга» и выполнением сценария или блокировкой построения DOM. Браузер будет продолжать делать все возможное и будет блокировать любой сценарий, запрашивающий repaint (), до тех пор, пока ресурс не разрешится, после чего CSSOM будет перестроен, все существующие элементы DOM будут проверены на соответствие новому CSSOM, и все сценарии паузы будут продолжены.
Если ваш <style>
относится к исключению, встречающемуся только в этом конкретном представлении / компоненте / странице, имеет смысл добавить его там, до того, как элемент будет затронут правилами. Но если вы сделаете из этого привычку, рано или поздно вам захочется, чтобы все ваши стили были в одном месте; Ваш проект станет труднее поддерживать.
По общим принципам не стоит этого делать.
Это также сильно зависит от масштаба вашего проекта. На небольших проектах это не имеет значения. В огромных проектах, в которых участвуют большие команды, это полностью запрещено, так как никто не вспомнит ваше исключение . Так что иногда это может быть основанием для потери вашей позиции или, по крайней мере, вашего положения.ツ
И последнее, но не менее важное, особенно если вас не считают экспертом, это то, что может быть истолковано против вашего интереса людьми, оценивающими вашу работу (например, люди, знающие меньше, чем вы, могут воспринимать это как признак вы не выполняете свою работу должным образом).
С учетом вышесказанного браузер не заботится. Если он проверяется, он применяется и отображается.
Другая незначительная техническая проблема (в случае тегов <style>
, а не <link>
s) заключается в том, что встроенный CSS кэшируется никогда . Он загружается каждый раз вместе с разметкой, в то время как обычный CSS в загруженных таблицах стилей больше не потребляет пропускную способность. Но, опять же, если мы говорим несколько строк кода, это не имеет значения.