запросы печатных сми игнорируются в chrome?

<p>я создаю некоторые стили печати, используя следующие:</p><pre><code>@media print { /* styles */ } </code></pre><p>поскольку мы используем sass, все стили скомпилированы в одну таблицу стилей <code>styles.css</code> во время выполнения, которая объявлена в <code><head></code> документа следующим образом:</p><pre><code><link rel='stylesheet' href='/assets/css/styles.css'> </code></pre><p>теперь, когда я печатаю из chrome (ctrl + p), он полностью игнорирует мои стили печати, но firefox (30.0) - это нормально. ie (11) ужасен, но это потому, что у нас много панелей отображения/скрытия, которым ie не нравится / </p><p>не могу на всю жизнь понять, что происходит. если я эмулирую печатные носители в chrome, то они прекрасно загружают стили, но когда я действительно пытаюсь печатать, это не работает. я пробовал множество вещей, добавление атрибутов <code>media=</code>, двойных кавычек, изменение порядка <code>href</code> и т.д., но все безрезультатно !!</p><p>обратите внимание, что мы больше не используем <code>type</code>, так как я думал, что вам больше не нужно это использовать. я попытался добавить это в любом случае, но это все еще не работает!</p><p>я даже попробовал это: <a href="http://lawrencenaman.com/optimisation/print-media-queries-not-working/">http://lawrencenaman.com/optimisation/print-media-queries-not-working/</a> но это все равно не работает. это сводит меня с ума, есть идеи?</p><p>обновление: итак, я заметил, что когда я нажимаю <code>ctrl + p</code>, чтобы напечатать страницу, предварительный просмотр, который я вижу, использует некоторые стили из таблицы стилей печати, но, похоже, отображает все с помощью мобильного медиа-запроса? я думаю, что может быть некоторый конфликт с точкой останова, будет обновляться, когда я получу шанс.</p><p>обновление 2: я вижу, что таблица стилей печати загружается внизу, так что теоретически это должно перезаписать все другие медиа запросы (по крайней мере те, которые я пытаюсь перезаписать)?</p>

<p>вы можете попробовать установить остальные атрибуты media таблиц стилей как</p><p><code>media="screen"</code> и распечатайте таблицу стилей в <code>media="print"</code>.</p><p>это предотвратит применение браузером правил из таблиц стилей, помеченных как «screen».</p>

<p>я тоже столкнулся с этой проблемой и обнаружил, что это связано с настройками рендеринга в chrome. при тестировании предварительного просмотра я установил тип печатного носителя для эмуляции. когда я приступил к тестовой печати, я установил эмуляцию носителя на «экран». я должен был установить, чтобы это было "без эмуляции". когда это было на «экране», предварительный просмотр печати игнорировал все запросы печатных сми и все еще рассматривал страницу как экран. когда я наконец установил его обратно в режим «без эмуляции», он начал вести себя так, как и следовало ожидать.</p>

<p>проблема, с которой я столкнулся, заключалась в том, что <code>rel='stylesheet'</code> не был указан в ссылке print css. добавление этого решило проблему.</p>

<p>еще один способ сделать это: ошибки css перед стилями печати. так как у всех нас, кажется, есть импульс поставить стили печати последними, они более уязвимы для этого. когда css имеет ошибку, он не жалуется ... он просто отбрасывает остальную часть таблицы стилей. </p><p>предоставление стилям печати их собственной таблицы стилей - даже просто отдельного встроенного тега - может решить эту проблему, а также ошибку тега media-spec'd-in-style-tag.</p>