但是,我有一个问题,在图像上创建的阴影效果不是响应性的。我想要的是随着我的图像变小,阴影也应该随图像高度变小。或者它应该表现得很敏感 我该怎么做?
HTML
<body>
<div class=" background-img">
<img src="img/learning.jpg" class="img-responsive">
<div class="overlay">
</div>
</div>
</body>
的CSS
.background-img{
max-width: 100%;
height: auto;
}
.overlay{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10;
background-color: black;
opacity: 0.5;
}
@media only screen and (min-width:320px) and (max-width:767px){
.background-img{
width: 426px !important;
height: 320px !important ;
}
.overlay{
position:fixed;
top: 0;
left: 0;
width: 30% !important;
height: 25%!important;
z-index: 10;
position: absolute;
background-color: black;
opacity: 0.5;
}
答案 0 :(得分:2)
您可以尝试使用此代码,而不需要查询以使其响应: https://jsfiddle.net/52ms14gf/1/
.background-img .overlay{
position: absolute;
overflow: hidden;
top: 0;
left: 0;
}
.background-img .overlay {
opacity: 1;
width: 100%;
height: 100%;
background-color: rgba(255, 51, 51, 0.5);
}
.container{position:relative;
}
.container img{width:100%;
display:block;
}
答案 1 :(得分:1)
尝试使用此CSS:
.background-img {
max-width: 100%;
height: auto;
position: relative;
}
.overlay {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
z-index: 10;
background-color: black;
opacity: 0.5;
}
@media only screen and (min-width:320px) and (max-width:767px) {
.background-img{
width: 426px !important;
height: 320px !important ;
}
}
答案 2 :(得分:1)
我们通常使用略高的值(当你使用10时)将一个z-index声明应用于popout div,以及一个位置:relative;声明导致应用z-index值。 如果你按照我理解的方式改变了代码:
@media only screen and (min-width:320px) and (max-width:767px){
.background-img{
position:relative;
max-width: 100%;
height: auto;
}
.overlay {
position: relative;
top: 0;
left: 0;
width: 100% !important;
height: 100% !important;
z-index: 10;
background-color:black;
opacity: 0.5;
}
答案 3 :(得分:0)
因为您在叠加的高度和宽度上使用%
。
在px
.overlay{
position:fixed;
top: 0;
left: 0;
width: 100px !important; // set accordinly
height: 100px !important;// set accordinly
z-index: 10;
position: absolute;
background-color: black;
opacity: 0.5;
}
%
中声明的宽度和高度将根据父级的高度和宽度工作。如果您不希望孩子改变其高度和宽度,只需在px
中为所有屏幕定义它。
答案 4 :(得分:0)
我像这样使用 CSS 网格:
.container {
display: grid;
grid-template-columns: 1fr;
grid-template-rows: 1fr;
}
.img-responsive {
grid-column: 1/2;
grid-row: 1/2;
width: 100%;
}
.overlay {
grid-column: 1/2;
grid-row: 1/2;
width: 100%;
}
这在所有屏幕宽度上都运行良好。