Вы не можете включить правило @font-face в атрибут style (который является «встроенным CSS» в самом узком смысле). Согласно спецификации HTML 4.01, вы вообще не можете включать такое правило внутри элемента body («встроенный CSS» в более широком смысле, который включает styleэлементов). Но на практике это возможно.
На практике, если вы включаете элемент style внутрь body, он будет обрабатываться браузерами так же, как если бы он находился в синтаксически правильном месте, то есть внутри элемента head. Он даже работает «наоборот», воздействуя на элементы, появляющиеся перед ним.
Вы даже можете сделать этот подход, который следует использовать только в том случае, если вы не можете изменить head, формально правильным в соответствии с HTML5 CR. Он разрешает элемент style в начале любого элемента с потоковым содержимым в качестве модели содержимого. Текущие браузеры игнорируют атрибут scoped.
Обновление: следующее больше не актуально, так как ошибка валидатора была исправлена.
Однако существует ошибка в валидаторе разметки W3C и в validator.nu. : они запрещают style в начале body. Чтобы преодолеть эту ошибку и сделать ваш документ не только действительным, но и валидным, вы можете использовать дополнительный элемент div:
<body>
<div>
<style>
/* your @font-face and other CSS rules go here */
</style>
<!-- your document body proper goes here -->
</div>
</body>
person
Jukka K. Korpela
schedule
10.03.2013