Как мне определить, какой тип мультимедиа css запрашивается на моей странице? - PullRequest
0 голосов
/ 15 октября 2010

Я пытаюсь изменить способ вывода моей веб-страницы asp .net в браузер в зависимости от используемого типа носителя css.

Хотя css обычно учитывает различия во внешнем виде между экраном и режимом печати, я также хотел бы внести некоторые незначительные изменения в разметку, когда требуется режим печати.Я бы просто опустил плавающую секцию вниз под его родным братом, а не как двухцветный подход, который должен использоваться при разметке экрана в браузере.

Ответы [ 4 ]

0 голосов
/ 30 октября 2013

Итак, вашей целью было представить страницу браузера, которая имитирует «Предварительный просмотр»? Как уже было сказано ранее, браузер не отображает тип мультимедиа, поэтому невозможно предварительно запросить его, чтобы изменить вывод в браузер. В вашем конкретном случае из документации W3C я понимаю, что тип носителя для печати only запускается для «постраничного материала и для документов, просматриваемых на экране в режиме предварительного просмотра». Это означает, что единственный способ активировать тип печатного носителя для отображения на экране - в любом случае выбрать «Предварительный просмотр».

Конечно, когда вы находитесь в «Предварительном просмотре», использование медиазапросов для просмотра измененного макета работает очень хорошо. Вот супер простой пример, который делает то, что вы хотели сделать:

Стили:

<style>
ul li {
    float:left;
    margin: 10px;
}
@media print {
    li#printfloat {
        clear:left;
    }
}
</style>

и HTML:

<ul>
    <li>Sibling 1</li>
    <li id="printfloat">Sibling 2</li>
</ul>
0 голосов
/ 15 октября 2010

Не очень хороший метод, но вы можете просто добавить его во всплывающую секцию ниже его родного брата и скрыть эту секцию в файле CSS экрана. Затем в файле «Печать CSS» вы можете показать этот скрытый раздел и скрыть другой, который вам больше не нужен, на странице печати. ​​

Это может привести к тому, что ваша страница будет иметь дополнительный html, но в зависимости от того, что это раздел с плавающей запятой, это может быть вариант.

0 голосов
/ 15 октября 2010

Если ваша разметка написана в том порядке, чтобы смещать столбец, но фактический формат документа имеет больший смысл, вам нужно исправить свою разметку и CSS на экране.MNarkup не должен зависеть от CSS.Сначала пометьте свой документ так, чтобы он имел смысл без CSS - который, читая между строк, является способом, которым вы хотите, чтобы он отображался для печати.Как только вы это сделаете, создайте стиль колонки на основе этого исходного порядка.

0 голосов
/ 15 октября 2010

Это невозможно. Ни один браузер не предоставляет эту информацию таким образом, чтобы вы могли изменить разметку на стороне сервера (т.е. перед отправкой в ​​браузер).

Браузер может определить, какой CSS использовать в зависимости от того, что он собирается делать с этой страницей (печать, отображение, чтение ...), но вы не можете знать, какой это будет.

Рассмотрите возможность изменения разметки, чтобы она хорошо работала как с экраном, так и с печатью CSS.

Другой вариант - создать ссылку print, которая будет ссылаться на оптимизированную для печати версию страницы.

...