html — Фоновая картинка поверх изображения, накладываемого hover
Вопрос задан
Изменён 4 года 1 месяц назад
Просмотрен 4k раз
Для ссылки пункта-меню задана фоновая картинка
<div> <ul> <li><a href="">Каталог изображений</a></li> </ul> </div>
при наведении мышки задано, что сверху накладывается другая картинка, и она перекрывает ту картинку, что задана бэкграундом http://jsfiddle.net/y8AJF/7/ . Подскажите, как сделать так, чтобы фоновая картинка пункта меню оставалась поверх того изображения, что накладывается hover’ом? Вносить изображение в теге img в ссылку не хотелось бы.
- html
- css
Почитайте про множественный background.
Можно тут http://habrahabr.ru/company/microsoft/blog/137705/ или тут http://htmlbook.ru/css/background-position
И поэксперериментируйте…
Или поменяйте условие
#nav ul li:hover { background: url('http://static.diary.ru/userdir/2/0/0/4/2004853/76652854.png') no-repeat; }
5
в CSS есть такое свойство: z-index: [значение] отображает последовательность отображения элементов.
1
Несколько background можно указывать через запятую вот так:
url('http://static.diary.ru/userdir/2/0/0/4/2004853/76652822.png') top center no-repeat, url('http://static.diary.ru/userdir/2/0/0/4/2004853/76652854.png') no-repeat;
#nav ul { display: inline-block; position: relative; z-index: 999; margin-top: 0; margin-left: 130px; } #nav ul li { display: inline-block; list-style-type: none; width: 116px; } #nav ul li a { display: inline-block; text-align: center; width: 116px; height: 145px; padding-top: 90px; text-transform: uppercase; font-family: 'Trebuchet MS', sans-serif; font-size: 12px; text-decoration: none; color: #5c5c5c; } #nav ul li a.item1 { background: url('http://static.diary.ru/userdir/2/0/0/4/2004853/76652822.png') top center no-repeat; position: relative; z-index: 9999; } #nav ul li a:hover { background: url('http://static.diary.ru/userdir/2/0/0/4/2004853/76652822.png') top center no-repeat, url('http://static.diary.ru/userdir/2/0/0/4/2004853/76652854.png') no-repeat; width: 116px; height: 145px; color: #ffffff; }
<div> <ul> <li><a href="">Каталог изображений</a></li> </ul> </div>
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
seodon.
ru | Учебник HTML — Изображения для фоновОпубликовано: 29.09.2010 Последняя правка: 08.12.2015
Изображения в качестве фонов используются в HTML не менее часто, чем просто изменения цвета фона, которые мы с вами уже проходили. И это вполне логично, ведь с помощью изображений можно сделать неоднотонный и более красочный фон.
Обычно, в качестве образца для фона применяются небольшие по размеру и объему (в килобайтах) рисунки, а все потому, что фоновые изображения браузеры обрабатывают иначе, чем обычные рисунки. Они берут эту маленькую картинку и замащивают ей, как кирпичиками, весь участок HTML-страницы или всю ее целиком.
В прошлых версиях HTML у некоторых тегов существовал специальный атрибут background, который позволял делать фоновое изображение. Но в том-то и дело, что только у некоторых, причем далеко не у всех, например у блочного тега <DIV> его не было. Сегодня я вам покажу способ, который можно применить абсолютно к любым HTML-тегам и опять мы используем стили (CSS), а точнее атрибут style.
<тег>…</тег>
Обязательно заключайте адрес картинки в одинарные кавычки, как показано. И если вы хотите сделать фоновый рисунок для всей страницы, то используйте style внутри тега <BODY>.
А скажите мне, это значение style вам ничего не напоминает? Да-да, вы уже сталкивались с подобным в уроке по изменению цвета текста и фона, только там мы меняли просто фоновый цвет HTML-элементов. А теперь давайте соединим наши знания и запишем все это вместе:
<тег>…</тег>
Обратите внимание, что точку с запятой посередине ставить не надо, так как оба значения относятся к фону. Вы спросите: «А для чего это делать, ведь браузер не сможет одновременно показывать фоновый цвет и фоновое изображение»? И будете совершенно правы! При такой записи браузер в первую очередь показывает фон-изображение, а не цвет. А теперь представьте, что у вас фоновое изображение — это рисунок в темных тонах, а цвет текста на странице вы сделали белым. И все отлично смотрится… Пока пользователь не отключит в браузере показ изображений. Тогда у него фон станет скорее всего белым, как и ваш цвет текста. Как говорится, без комментариев…
Поэтому всегда, слышите, ВСЕГДА указывайте фон-цвет и фон-изображение вместе, как показано в последнем варианте.
Пример создания фоновых изображений в HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251"> <title>Фоновые изображения в HTML</title> </head> <body> <p>Созвездия в заоблачной дали<br>Раздумьям тщетным многих обрекли.<br>Одумайся, побереги рассудок -<br>Мудрейшие и те в тупик зашли.<br><b>Омар Хайам.</b></p> </body> </html>
Созвездия в заоблачной дали
Раздумьям тщетным многих обрекли.
Одумайся, побереги рассудок —
Мудрейшие и те в тупик зашли.
Омар Хайам.
В данном примере для фона я использовал вот это изображение: Если же будет отключен показ изображений, то фон станет просто черным.
Домашнее задание.
- Создайте заголовок статьи и шесть параграфов. Подчеркните текст заголовка и выделите его цветом #9999CC.
- Сделайте в последнем параграфе ссылку на любой сайт и установите на странице цвет #9999CC для ссылок при наведении курсора мыши.
- Установите на всей странице изображение-фон.
- Установите для всех параграфов другую картинку в качестве фона. Но сделайте так, чтобы у первых трех параграфов цвет внешних полей (отступов) совпадал с фоном страницы, а у остальных — с фоном самих параграфов.
- Вставьте на страницу изображение и выровняйте его по левому краю, но так, чтобы его обтекали только последние три параграфа.
- Установите у изображения внешние поля по 10px снизу и справа, а также 5px слева.
Посмотреть результат → Посмотреть ответ
Изображения | ← Содержание → | Изображения — ссылки |
Фоны : Фоновое изображение — Учебник HTML
Если вы хотите добавить фоновое изображение вместо простого цвета, перед тем, как это сделать, следует учесть некоторые соображения:
После ответов на эти вопросы, если вы все еще хотите добавить фоновое изображение, вам нужно будет указать в теге , какое изображение должно использоваться в качестве фона.
Примечание: Если, скажем, вы хотите полосатый фон для своей страницы, вам не нужно делать для него огромное изображение. По сути, вы можете просто сделать изображение высотой два пикселя и шириной один пиксель. При вставке на страницу две точки будут скопированы, чтобы заполнить страницу, создавая таким образом то, что выглядит как полноэкранное полосатое изображение. Когда вы решите использовать фоновое изображение для страницы, всегда полезно также указать цвет фона.
Причина в том, что пока не загружено фоновое изображение, будет отображаться цвет фона. Если между цветом фона и фоновым изображением слишком большая разница, это будет выглядеть тревожно, когда браузер переключится с цвета фона на изображение. Поэтому рекомендуется указать цвет фона, который максимально соответствует цветам изображения. Возможно, вы заметили, что фоновые изображения прокручиваются вместе со страницей при использовании полосы прокрутки. Последняя страница в этом разделе научит вас, как добавить фиксированное изображение на вашу страницу …..
|
Альтернативный текст для фоновых изображений, доступность замещающего текста
Избегайте представления информационных изображений в фонах CSS
Если ваше изображение содержит важную информацию для конечного пользователя,
тогда он должен быть предоставлен в HTML
тег с правильным или
текст. Спецификация CSS говорит следующее:
Из соображений доступности авторы не должны использовать фон изображения как единственный способ передачи важной информации. См. Интернет Руководство по доступности контента F3 [WCAG20] . Изображения недоступны в неграфических презентациях, и фоновые изображения могут быть отключены в высококонтрастные режимы отображения. Источник .
Не могу избежать использования изображений CSS или хочу изменить текст для «неважные» фотографии окружения и т. д.?
Спецификация CSS делает это «СЛЕДУЕТ», а не «ОБЯЗАТЕЛЬНО», потому что бывают случаи, когда визуальный дизайн или существующий код затрудняет преобразование его в HTML-изображение без переделки интерфейса. В других случаях автор может захотеть чтобы предоставить альтернативный текст для фонового изображения, которое , а не «важно» для понимания содержания, но из вежливости для пользователей программ чтения с экрана, которые предпочитают знать, что находится на изображении. Вот подробная статья об эмбиенте изображения против чистого украшения против информационных изображений.
При предоставлении альтернативного текста для изображения CSS количество соображений
Если <дел>
внутри тега есть какой-либо контент, то роль = "изображение"
а также ария-этикетка
может скрыть внутреннее содержимое из-за доступного
расчет имени
, или вспомогательные технологии могут просто игнорировать ария-этикетка
.
Так что не помещайте фоновое изображение CSS в <дел>
который содержит любой контент. Лучше всего использовать пустой <диапазон>
и ария-этикетка
с роль = "изображение"
Сделайте это:
<дел>
<диапазон
role="img" aria-label="[разместите здесь замещающий текст]>
[весь остальной контент]
Не делайте этого:
[все остальные
моего содержания]
Что делать, если автор должен иметь CSS-изображение в div, который содержит контент
Иногда в стеке CSS есть зависимости и возня с это может привести к нарушению дизайна и верстки сайта или запросу изменить код мог зависнуть в одобрении от различных заинтересованные стороны. В случаях, когда автор должен иметь фон изображение в
<дел >
<диапазон
role="img" aria-label="[разместите здесь замещающий текст]>
[весь остальной контент]
Это хак, потому что семантически альтернативный текст не включен.
элемент, который на самом деле имеет изображение. Однако с экрана
точка зрения читателя <дел>
с фоновым изображением игнорируется, поэтому размещение <диапазон>
сразу после него будет предоставлять эту информацию таким образом, что
будет казаться, что альтернативный текст находится в том же месте, что и
фоновая картинка.
Резюме
- Старайтесь не использовать CSS для важных информационных изображений
- Для фоновых изображений, созданных с помощью CSS, рекомендуется
предоставить альтернативный текст. При этом поместите изображение в собственное
пустой
aria-label
иrole="изображение
Это также верно, в ситуации где CSS должен использоваться для информационного содержания.