#html #css
#HTML #css
Вопрос:
Пытаюсь использовать адаптивный размер для моего изображения героя. Все выглядит так, как должно, и организовано правильно, но я заметил, что независимо от того, какой ширины браузер, он всегда захватывает одно и то же изображение (самого низкого качества). Я проверяю это, изменяя размер экрана, щелкая правой кнопкой мыши и выбирая «открыть изображение на новой вкладке», затем проверяя разрешение там.
Разрешение экрана 1366×768 Браузер Brave (Chromium) Разрешения изображений указаны в именах файлов
Я надеюсь, что вы сможете определить, в чем проблема.
<head>
<meta charset='UTF-8' />
<title>Title</title>
<link rel='stylesheet' href='styles.css' />
<link href="https://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet">
<meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0' />
</head>
<body>
<div class='page'>
<div class='menu'>
</div>
<div class='section hero-image'>
<div class='photo'>
<picture>
<source media='(min-width: 601px)' srcset='images/Dam-Hero-image 1959x1306.jpg'/>
<source media='(max-width: 600px)' srcset='images/Dam-Hero-image 800x1100.jpg'/>
<img src='images/Dam-Hero-image 980x653.jpg'/>
</picture>
</div>
</div>
/* Page styles */
.page {
display: flex;
flex-wrap: wrap;
}
/* Hero styles */
.hero-image {
height: auto;
justify-content: inherit;
align-items: inherit;
}
.photo img {
width: 100%;
display: block;
}
/* Mobile Styles */
@media only screen and (max-width: 600px) {
.hero-message {
width: 100%;
}
}
/* Tablet Styles */
@media only screen and (min-width: 601px) and (max-width: 960px) {
}
/* Desktop Styles */
@media only screen and (min-width: 961px) {
.page {
width: 960px;
}
}
It should change the image being used when the browser crosses the given pixel threshold, but I suppose its something else like the images are too big or the browser needs to be refreshed each time (although I've tried this already). Thanks for your help!
Ответ №1:
Возможно, из-за ваших имен файлов? srcset='images/Dam-Hero-image 1959x1306.jpg'
Лично я ненавижу использовать пробелы в именах файлов, поскольку это всегда вызывает проблемы. Попробуйте изменить его на _
Также ваш <img src='images/Dam-Hero-image 980x653.jpg'/>
крошечный. Это переход для браузеров, которые не поддерживают srcset. Таким образом, возможно, ваш код поврежден именами файлов srcset с пробелами, поэтому по умолчанию используется img (который крошечный)
Комментарии:
1. Спасибо, это определенно были имена файлов.
Ответ №2:
.photo img {
width: 100%;
display: block;
возможно, ваша проблема в .photo img {
…. Я думаю, вы хотите .photo, img {
Редактировать:
Я только что заметил, что у вас есть @media only screen
. Я думаю, что это должно быть просто @media screen
.