Я работаю над веб-проектом, в котором у меня есть изображение в центре экрана. Поверх этого изображения у меня есть текст в поле. Когда экран на всю ширину, он у меня "почти" такой большой, как я хочу. Однако, когда я уменьшаю экран, текст перемещается повсюду.
У меня есть следующий код:
.imageFit {
padding-top: 5%;
width: 100%;
height: 100%;
}
.imageText span {
position: absolute;
top: 75%;
left: 40%;
padding: 10px;
text-align:center;
color: white;
background: rgba(0,0,0,0.7);
letter-spacing: -1px;
}
<div class="container">
<img class="imageFit" src="https://hd.unsplash.com/photo-1420593248178-d88870618ca0">
<div class="container">
<h1 class="imageText "><span>Begins with one step</span></h1>
</div>
</div>
Подсказка . Сообщите мне, если потребуется дополнительная информация.
3 ответа
Если вы хотите сохранить все css, вы можете удалить теги <h1>
и просто выполнить селектор :before
с содержимым:
https://jsfiddle.net/ukdt27oz/1/
<div class="container">
<img class="imageFit" src="https://hd.unsplash.com/photo-1420593248178-d88870618ca0">
</div>
.imageFit {
padding-top: 5%;
width: 100%;
height: 100%;
}
.container:before {
content: "Begins with one step";
color: black;
position: absolute;
top: 50%;
left: 35%;
padding: 10px;
text-align:center;
color: white;
background: rgba(0,0,0,0.7);
letter-spacing: -1px;
font-size: 5vw;
}
Ну вот. Я удалил ненужные теги, а также сделал ваш текст отзывчивым.
.imageFit {
padding-top: 5%;
width: 100%;
height: 100%;
}
.imageText {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
padding: 10px;
text-align:center;
color: white;
background: rgba(0,0,0,0.7);
letter-spacing: -1px;
font-size: 4vw;
}
.container {
position: relative;
}
<div class="container">
<img class="imageFit" src="https://pixabay.com/static/uploads/photo/2016/01/12/19/16/painting-1136443_960_720.jpg">
<h1 class="imageText ">Begins with one step</h1>
</div>
Всегда будет сложно заставить абсолютно позиционированные элементы перемещаться по DOM так, как вы ожидаете.
Позиционированные элементы absolute
выводятся из естественного потока документов, они не имеют отношения к другим элементам, перемещающимся вокруг них.
Мы можем контролировать это до некоторой степени, объявив position: relative;
для данного родительского элемента. Теперь это расположит его относительно этого родителя.
.imageFit {
width: 100%;
height: 100%;
}
.imageText span {
position: absolute;
left: 0;
right: 0;
max-width: 50%;
width: 100%;
display: block;
margin: auto;
top: 0;
bottom: 0;
box-sizing: border-box;
max-height: 65px;
padding: 10px;
text-align:center;
color: white;
background: rgba(0,0,0,0.7);
letter-spacing: -1px;
}
.container-wrapper {
position: relative;
}
<div class="container-wrapper">
<img class="imageFit" src="https://placeholdit.imgix.net/~text?txtsize=75&txt=800%C3%97500&w=800&h=500">
<div class="container">
<h1 class="imageText "><span>Begins with one step</span></h1>
</div>
</div>
Похожие вопросы
Новые вопросы
html
HTML (язык гипертекстовой разметки) — это язык разметки для создания веб-страниц и другой информации, отображаемой в веб-браузере. Вопросы относительно HTML должны включать минимальный воспроизводимый пример и некоторое представление о том, чего вы пытаетесь достичь. Этот тег редко используется отдельно и часто в паре с [CSS] и [JavaScript].