我正在尝试使用中间flex项目中的可调整大小的图像(带链接)构建一个flexbox布局。图像弹性项目应根据浏览器窗口进行缩放,其他项目与其内容一样大,但固定高度。
我希望图像在两个方向上居中,并且最大高度和最大宽度大约为95%,因此当浏览器窗口变小时会缩小。
HTML:
<div id="flexbox">
<div id="flex-1">1</div>
<div id="flex-2">2</div>
<div id="flex-3">
<div id="zoom">
<a href="http://xy.de">
<img src="http://250kb.de/u/140905/j/lCdCSjetSUXb.jpg" alt="x" />
</a>
</div>
</div>
<div id="flex-4">4</div>
</div>
的CSS:
html,body{
height:100%;
margin:0;
padding:0;
}
#flexbox {
display: flex;
display: -webkit-flex;
display: -moz-flex;
flex-direction: column;
height:100%;
width:100%;
background:red;
}
#flex-1{
border:1px solid lightblue;
}
#flex-2{
border:1px solid lime;
}
#flex-3 {
border:1px solid yellow;
flex:1;
justify-content:center;
}
#flex-4 {
border:1px solid pink;
}
#zoom{
background:white;
width:100%;
height:100%;
text-align:center;
}
#zoom a{
height:90%;
}
#zoom img{
max-width:90%;
max-height:90%;
}
这是一个jsfiddle: http://jsfiddle.net/haheute/67py8zez/4/
如何在firefox和chrome中获得最大高度和最大宽度,如何在两个方向上将链接与图像对齐?
答案 0 :(得分:2)
以下是一个解决方案:http://jsfiddle.net/mfwr0fcm/。
HTML:
<div id="flexbox">
<div id="flex-1">1</div>
<div id="flex-2">2</div>
<div id="flex-3">
<a href = "#"><img src="http://250kb.de/u/140905/j/lCdCSjetSUXb.jpg" alt="x" /></a>
</div>
<div id="flex-4">4</div>
</div>
CSS:
* {
margin: 0;
padding: 0;
}
html, body, #flexbox {
height:100%;
}
#flexbox {
display: -webkit-flex;
display: -moz-flex;
display: flex;
flex-direction: column;
background:red;
}
#flexbox > * {
flex: 0 0 auto;
border: 1px solid #000;
}
#flex-3 {
flex: 1 1 auto;
position: relative;
}
#flex-3 img {
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
max-width: 95%;
max-height: 95%;
}