Я пытаюсь создать новое изображение баннера для моего сайта, где текст баннера нависает над изображением баннера, а изображение баннера является ссылкой.Текст баннера не имеет ссылки.Я пытаюсь сделать так, чтобы этот баннер работал в адаптивном макете.Ранее я использовал комбинацию элементов блока и позиционирования, но я пытаюсь реализовать более элегантное решение, используя сетку CSS или flexbox.
Мой старый код:
header {
display: block;
position: relative;
}
header img {
display: block;
position: relative;
height: 100%;
width: 100%;
}
header a {
display: block;
position: relative;
width: 100%;
}
h1 {
font: normal 2.8em "verdana", sans-serif;
color: #ddd;
position: absolute;
right: 2vw;
bottom: 4vh;
}
<header>
<a href="index"><img src="https://www.placebear.com/800/200" alt="Banner Image" /></a>
<h1>website title</h1>
</header>
Новый код попытки (метод flexbox + background-image):
header {
display: flex;
height: 10vh;
background-image: url("https://www.placebear.com/800/200");
background-size: cover;
padding: 2rem 0;
color: #fff;
text-shadow: 0px 1px 6px rgba(0, 0, 0, 0.6);
}
h1 {
font-family: Arial, sans-serif;
width: 80%;
margin: 0 auto;
line-height: 1.1em;
font-size: 2rem;
}
@media (min-width: 500px) {
h1 {
font-size: 4rem;
}
}
<a href="index">
<header>
<h1>
example text
</h1>
</header>
</a>
Проблема, с которой я столкнулся, заключается в том, что тег ссылки не может применяться к просто изображению в методе flexbox + background-image.Текст также включен, но это не то, что мне нужно.
Новый код попытки (сетка + ссылка):
header {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: repeat(3, 1fr);
}
header img {
grid-column: 1;
grid-row: 1 / 3;
width: 100%;
height: 100%;
overflow: hidden;
}
header p {
grid-column: 1;
grid-row: 2;
align-self: center;
justify-self: center;
z-index: 1;
}
<header>
<a href="#"><img src="https://www.placebear.com/800/200"></a>
<p>SOME TEXT OVER IMAGE</p>
</header>
Метод grid + link не работает, поскольку тег link разрывает сетку и заставляет себя создать еще один элемент сетки под изображением баннера.
Я действительно рисую здесь соломинки, чтобы понять, как правильно это реализовать.Если у кого-нибудь есть какой-нибудь совет, это было бы замечательно.Спасибо за тонну!