memory_limit

#hero-container {
display: flex;
position: relative;
height: 520px;
}
.hero {
position: absolute;
left: 0;
top: 0;
}
#text {
z-index: 100;
position: absolute;
color: white;
font-size: 3vw;
font-weight: bold;
left: 150px;
top: 40px;
}
#text2 {
z-index: 100;
position: absolute;
color: white;
font-size: 2vw;
font-weight: bold;
left: 150px;
top: 70px;
}
#hero-container img {
display: flex;
width: 100%;
}

我在固定容器中有一张宽度:100%的图像。由于我的图像调整大小,文本不会跟随并保持在相同的位置,从而移动到容器上。
如何使文本保持在图像的中心(垂直)和左侧,使用几个像素填充(水平)而不添加1000个媒体查询?
答案 0 :(得分:2)
您可以大大简化CSS:
div
和translateY(-50%)
。position:relative
。
#hero-container {
position: relative;
}
#center-text {
z-index: 100;
position: absolute;
color: white;
font-weight: bold;
left: 15%;
top: 50%;
transform: translateY(-50%);
}
#text {
font-size: 3vw;
margin: 0;
}
#text2 {
font-size: 2vw;
margin: 0;
}
#hero-container img {
width: 100%;
height: auto;
}

<div id="hero-container">
<img class="hero" src="https://vreauperle.ro/images/banners/hero-image.jpg" />
<div id="center-text">
<p id="text">
First text here
</p>
<p id="text2">
Secondary
</p>
</div>
</div>
&#13;
如果您使用更多标准字体大小(而非-ms-transform
),则无论您的分辨率如何,这都将完全响应并且应该在IE10 +(或带有vw
前缀的IE9 +)中工作。
答案 1 :(得分:0)
如果您使用&#39;%&#39; 而不是来应用左和顶部 css属性&#39; px&#39; 然后你会得到结果。 Fiddle Is Here
#hero-container {
display: flex;
position: relative;
height: 520px;
}
.hero {
position: absolute;
left: 0;
top: 0;
}
#text {
z-index: 100;
position: absolute;
color: white;
font-size: 3vw;
font-weight: bold;
left: 30%;
top: 0;
}
#text2 {
z-index: 100;
position: absolute;
color: white;
font-size: 2vw;
font-weight: bold;
left: 30%;
top: 11%;
}
#hero-container img {
display: flex;
width: 100%;
}
&#13;
<html>
<head>
</head>
<body>
<div id="hero-container">
<img class="hero" src="https://vreauperle.ro/images/banners/hero-image.jpg"></img>
<div class='txt_wrap'>
<p id="text">
First text here
</p>
<p id="text2">
Secondary
</p>
</div>
</div>
</body>
</html>
&#13;
答案 2 :(得分:0)
将元素垂直和水平对齐的代码。
p {
position : absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
在您的情况下,由于您只想垂直居中,请删除左:50%并使用translateY(-50%)。
答案 3 :(得分:0)
您可以将图片显示为background-image
的{{1}}。
然后您无需在文本上使用#hero-container
。
您可以使用百分比值将position: absolute
添加到容器中 - 这将比固定像素更好地缩放。您可以将我在代码段中使用的值编辑为适合您的内容。
padding
#hero-container {
display: flex;
flex-direction: column;
height: 520px;
background: url(https://vreauperle.ro/images/banners/hero-image.jpg);
background-size: contain;
background-repeat: no-repeat;
padding: 5%;
}
#hero-container p {
color: white;
font-weight: bold;
margin: 0;
}
#text {
font-size: 3vw;
}
#text2 {
font-size: 2vw;
}