用css / js响应重叠图像

时间:2017-08-03 22:04:38

标签: javascript html css

我在一个与div重叠的全宽div中有一个图像,因此当浏览器调整大小时,会显示/隐藏更多的图像,但图像本身不会调整大小。我得到它的宽度,但我怎样才能达到相同的高度效果?

这是我的测试: https://jsfiddle.net/g8h8umt3/

我的宽度与css一起使用:

#img-header{
    margin-left: 50%;
    transform: translateX(-50%);
}

修改

以下是关于它如何工作的图像: Image

背景中的图像应保持其大小,父div应根据屏幕大小变小或变大。我得到了宽度的行为,但我不知道如何为图像的高度做这件事。

我也尝试添加

#img-header{
    margin-top: 50%;
    margin-left: 50%;
    transform: translate(-50%,-50%);
}

但这似乎不起作用

2 个答案:

答案 0 :(得分:0)

我不知道我是否明白你想做什么 我举一个我理解的例子



#img-header-container{
  width: 100%;
}

#img-header{
  max-width:100%;
}

<div style="min-height:50px">Conent Before</div>
<div id="img-header-container">
  <img src="https://clsimplex.com/images/releases/headers/quality-code.jpg" id="img-header"/>
</div>
<div style="min-height:50px">Conent After</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果您希望图片保持其大小并且在父级尺寸更改时隐藏在所有角落,请对图像使用absolute定位,并使用left: 50%; top: 50%; transform: translate(-50%,-50%)的组合来放置图像在父级的中心,父级将在图像的所有边上缩放。

$(document).ready(function () {
	
	$('#img-header-container').height($( window ).width()/3);
	
    $( window ).resize(function() {
		onResized();
	});
});

function onResized(){
	$('#img-header-container').height($( window ).width()/3);
}
#img-header-container{
  width: 100%;
	overflow: hidden;
  position: relative;
}

#img-header{
  position: absolute;
	left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="min-height:50px">Conent Before</div>
<div id="img-header-container">
  <img src="https://clsimplex.com/images/releases/headers/quality-code.jpg" id="img-header"/>
</div>
<div style="min-height:50px">Conent After</div>

对于它的价值,您不必使用jquery将容器设置为窗口高度的1/3。您可以将视口单元(vh)与calc()一起使用。

#img-header-container {
  height: calc(100vh / 3);
  overflow: hidden;
  position: relative;
}

#img-header {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
<div style="min-height:50px">Conent Before</div>
<div id="img-header-container">
  <img src="https://clsimplex.com/images/releases/headers/quality-code.jpg" id="img-header" />
</div>
<div style="min-height:50px">Conent After</div>

而FWIW v2.0,您可以使用背景图像执行此操作,然后img将不会阻止页面加载,并且它的标记/ css更少。

#img-header-container {
  height: calc(100vh / 3);
  background: url('https://clsimplex.com/images/releases/headers/quality-code.jpg') center center no-repeat;
}
<div style="min-height:50px">Conent Before</div>
<div id="img-header-container">
</div>
<div style="min-height:50px">Conent After</div>