如何按比例降低元素包含图像的高度?
How to proportionately reduce the height of element contains images?
HTML, CSS
为了制作类似下面的图片,我写了一个CSS (result).
<div id="ulWrapWrap">
<div id="ulWrap">
<ul>
<li>
<div class="imgWraps"><img src="http://i.imgur.com/QW18s8F.png" alt=""></div>
</li>
<li>
<div class="imgWraps"><img src="http://i.imgur.com/QW18s8F.png" alt=""></div>
</li>
</ul>
</div>
</div>
‖
html, body { height: 100%; }
body { background-color: DodgerBlue; }
#ulWrapWrap { display: table; height: 100%; margin: 0 auto; }
#ulWrapWrap #ulWrap { display: table-cell; max-height: 100%; vertical-align: middle; }
#ulWrapWrap #ulWrap ul { max-width: 90%; max-height: 90%; margin: 0 auto; padding: 10% 20%; background-color: HotPink; }
#ulWrapWrap #ulWrap ul:after { display: block; clear: both; content: ''; }
#ulWrapWrap #ulWrap ul li { float: left; display: table; max-width: 45%; height: 100%; margin-right: 10%; }
#ulWrapWrap #ulWrap ul li:last-child { margin-right: 0; }
#ulWrapWrap #ulWrap ul li .imgWraps { display: table-cell; vertical-align: middle; }
#ulWrapWrap #ulWrap ul li .imgWraps img { max-width: 100%; max-height: 100%; }
最好的结果
(1) 当我水平调整 window 大小时。
(2) 当我垂直调整 window 大小时。
当前结果
它适用于 (1),但不适用于 (2)。我怎样才能让它发挥作用? ;)
(1) 当我水平调整 window 大小时。
(2) 当我垂直调整 window 大小时。
你可以看看这个问题:
基本上,您需要为所有元素指定高度百分比。当与百分比值一起使用时,CSS 高度 属性 是根据元素的包含块计算的。
希望这对您有所帮助。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1">
<style>
html, body { padding:0px; margin:0px; }
body { background-color: DodgerBlue; height:100%; width:100%; }
.ulWrapWrap
{
box-sizing:border-box;
padding:20px;
margin:0px auto;
text-align:center;
background-color:HotPink;
display:block;
height:calc(90vmin);
width:calc(90vmin);
margin-top: calc(100vh * 0.5 - 90vmin * 0.5);
margin-left: calc(100vw * 0.5 - 90vmin * 0.5);
}
.dimage
{
box-sizing:border-box;
width:40%;
height:100%;
display:inline-block;
padding-right:10px;
background:url('http://i.imgur.com/QW18s8F.png') 50% 50% no-repeat;
background-size:contain;
}
</style>
<title>JS Bin</title>
</head>
<body>
<div class="ulWrapWrap">
<div style="width:100%; height:100%; position:relative; display:block;">
<div class="dimage"></div>
<div class="dimage"></div>
</div>
</div>
</body>
</html>
HTML, CSS
为了制作类似下面的图片,我写了一个CSS (result).
<div id="ulWrapWrap">
<div id="ulWrap">
<ul>
<li>
<div class="imgWraps"><img src="http://i.imgur.com/QW18s8F.png" alt=""></div>
</li>
<li>
<div class="imgWraps"><img src="http://i.imgur.com/QW18s8F.png" alt=""></div>
</li>
</ul>
</div>
</div>
‖
html, body { height: 100%; }
body { background-color: DodgerBlue; }
#ulWrapWrap { display: table; height: 100%; margin: 0 auto; }
#ulWrapWrap #ulWrap { display: table-cell; max-height: 100%; vertical-align: middle; }
#ulWrapWrap #ulWrap ul { max-width: 90%; max-height: 90%; margin: 0 auto; padding: 10% 20%; background-color: HotPink; }
#ulWrapWrap #ulWrap ul:after { display: block; clear: both; content: ''; }
#ulWrapWrap #ulWrap ul li { float: left; display: table; max-width: 45%; height: 100%; margin-right: 10%; }
#ulWrapWrap #ulWrap ul li:last-child { margin-right: 0; }
#ulWrapWrap #ulWrap ul li .imgWraps { display: table-cell; vertical-align: middle; }
#ulWrapWrap #ulWrap ul li .imgWraps img { max-width: 100%; max-height: 100%; }
最好的结果
(1) 当我水平调整 window 大小时。
(2) 当我垂直调整 window 大小时。
当前结果
它适用于 (1),但不适用于 (2)。我怎样才能让它发挥作用? ;)
(1) 当我水平调整 window 大小时。
(2) 当我垂直调整 window 大小时。
你可以看看这个问题:
基本上,您需要为所有元素指定高度百分比。当与百分比值一起使用时,CSS 高度 属性 是根据元素的包含块计算的。
希望这对您有所帮助。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1">
<style>
html, body { padding:0px; margin:0px; }
body { background-color: DodgerBlue; height:100%; width:100%; }
.ulWrapWrap
{
box-sizing:border-box;
padding:20px;
margin:0px auto;
text-align:center;
background-color:HotPink;
display:block;
height:calc(90vmin);
width:calc(90vmin);
margin-top: calc(100vh * 0.5 - 90vmin * 0.5);
margin-left: calc(100vw * 0.5 - 90vmin * 0.5);
}
.dimage
{
box-sizing:border-box;
width:40%;
height:100%;
display:inline-block;
padding-right:10px;
background:url('http://i.imgur.com/QW18s8F.png') 50% 50% no-repeat;
background-size:contain;
}
</style>
<title>JS Bin</title>
</head>
<body>
<div class="ulWrapWrap">
<div style="width:100%; height:100%; position:relative; display:block;">
<div class="dimage"></div>
<div class="dimage"></div>
</div>
</div>
</body>
</html>