Может ли jQuery изменить CSS для определенного типа носителя?
Возможно ли, чтобы jQuery изменил CSS для определенного типа носителя (например, для печати)?
Моя особая проблема заключается в том, что я использую анимацию для элемента и переопределяю таблицу стилей печати, которая разрушает мой макет печати. Хотя моя проблема несколько отличается от поставленного общего вопроса, я думаю, что ответ должен помочь мне решить мою проблему. Также были бы полезны любые возможные обходные пути. Очень важно.
Ответы
Ответ 1
Вам не нужно делать это с помощью Javascript. Просто используйте правило @media
в вашем документе css.
Вы можете написать все эти материалы только в одном файле css. Вот конкретная Документация W3C
@media screen {
/* all your fancy screen css with a bunch of animation stuff*/
}
@media print {
/* all your fancy print css just plain */
}
Вы можете написать очень конкретные объявления и сопоставить все элементы с вашими потребностями. Btw он поддерживал до IE6. Работает как прелесть в наших проектах.
@media print {
body { font-size: 10pt }
}
@media screen {
body { font-size: 13px }
}
@media screen, print {
body { line-height: 1.2 }
}
Ответ 2
Добавьте css для вашего носителя (печать) с определенным правилом, которое скрывает элемент (например, #div {display: none;})
В вашем script, если это:
$('#div').is(':visible')
истинно, тогда вы находитесь на печатном носителе (печать).