Определите изображение в CSS, а не в HTML

У меня проблема, и я не совсем понимаю, что не так.

У меня есть HTML-страница, и мои изображения в настоящее время связаны как таковые.

<span class = "tribar" onclick = "openNav()"><img src = "url_here"></span>

Я пытался удалить все URL-адреса изображений из исходного кода HTML и сохранить их в CSS. Это то, что я пробовал.

<span class = "tribar" onclick = "openNav()"></span> // HTML

.tribar {
display: inline-block;
background-image: url("image_url") no-repeat top left;
width: 220px;
height: 220px;
}

Но мой HTML-фрагмент становится пустым, и я не могу его понять.

Это должно быть простой ошибкой.

no=repeat недействителен в css
לבני מלכה 14.11.2018 12:22

Моя ошибка, это была опечатка в SO, мой код этого не отражает. По-прежнему возникает та же проблема.

Ronald LaPlante 14.11.2018 12:23

Используйте no-repeat вместо no=repeat

Sruthi Varghese 14.11.2018 12:24

Не делай этого. Вам нужно что-то, на что люди могут щелкнуть, чтобы что-то сделать. Это <button>, а не <span>. Кнопки - это интерактивные элементы управления (они отображаются как таковые в программах чтения с экрана, вы можете перейти к ним, если не можете использовать мышь и т. д.). Вы также хотите, чтобы люди говорили о том, что будет делать нажатие на кнопку. Это Контент, а не Презентация. Правильное место для размещения контента - это HTML, а не CSS. Используйте <img> и присвойте ему атрибут alt.

Quentin 14.11.2018 12:25

См. Мой комментарий выше, в моем коде есть no=repeat. no=repeat здесь был опечаткой.

Ronald LaPlante 14.11.2018 12:25
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
5
124
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я бы рекомендовал сделать это с <button>:

function opennav() {
  alert("Hello!");
}
.nav-button {
  border: none;
  background: none;
  font-size: 0; /*hide alt text*/
}

.nav-button:before {
  display: inline-block;
  content: url(http://placekitten.com/220/220);
  width: 220px;
  height: 220px;
  cursor: pointer;
}
<button class = "nav-button" onclick = "opennav()">Alt text for screen readers</button>

См. Также CodePen.

Вы не можете использовать значение "не повторять" внутри свойства "фоновая картинка:". Вместо этого вы должны добавить эти две строки в свой стиль CSS:

background-position: top left;
background-repeat: no-repeat;

Если вы хотите сделать это одной строкой, вы должны использовать свойство "задний план:":

background: url("image_url") no-repeat top left;

номер
https://www.w3schools.com/cssref/pr_background-image.asp
https://www.w3schools.com/cssref/css3_pr_background.asp

Сохранять источник изображения в css можно до тех пор, пока на странице хранится URL-адрес ссылки или код кнопки.

Рекомендую такой способ:

a {
  display: block;
  width: 220px;
  height: 220px;
}

.tribar {
  display: block;
  background-image: url("https://jobadder.com/wp-content/uploads/stackoverflow.com-300.jpg");
  background-size: contain;
  width: 100%;
  height: 100%;
}
<a href = "#"><span class = "tribar" /></a>

Другие вопросы по теме