





Вы можете поместить элемент h1 и изображение в одно и то же место в источнике, и иметь изображение CSS display:none для печатных носителей, а для h1 установить значение display:none для экранных носителей.
Брайан, обычно в таких вещах, как логотипы, я все равно использую замену изображения для графики, поэтому сам логотип действительно находится в теге H1. Затем в моей таблице стилей печати. Я делаю что-то вроде этого ...
h1#logo a, h1#home-logo{
text-indent: 0 !important;
background-image: none !important;
font-size: 1.2em !important;
display: block !important;
height: 1em !important;
width: 100% !important;
text-decoration: none !important;
color: black !important;
}
Что убирает замену изображения и показывает текст. Разумеется, убедитесь, что вы вызываете эту таблицу стилей отдельно, используя media = "print".
Обычно я просто добавляю в свою таблицу стилей следующее:
.nodisplay
{
display: none;
}
@media print {
* {
background-color: white !important;
background-image: none !important;
}
.noprint
{
display: none;
}
}
А затем присвойте класс нет отпечатка элементам, которые не следует печатать:
<div class = "noprint">
</div>
И для вашего примера должно работать что-то вроде следующего:
<img src = "logo.png" class = "noprint" ...>
<h1 class = "nodisplay">Text Logo</h1>
Дополнение к решению Адама: если ваш текст исправлен («там был заголовок», а не «там была реклама такого-то и такого-то»), вы можете использовать : before или: after псевдоэлементы для вставки текста вместо того, чтобы текст был предварительно вставлен в HTML.
Я делаю ваш HTML легче, если вы заменяете много изображений одним и тем же текстом.
Я должен сказать, что мне не нравится эта функция CSS, но она есть, если вы хотите ее использовать.