如何在响应式页面的 div 内垂直和水平居中放置两个图像
How to vertically and horizontally center two images inside a div on a responsive page
我正在使用 Skeleton 和 Normalize css。我想在 div 容器内将两个图像垂直和水平并排居中。当页面变窄时,我想要第一个图像底部的第二个图像如下
Normal width:
img1 img2
Narrow view:
img1
img2
这是我的代码:
<div id="center">
<div class="left">
<img class="u-max-full-width" src="img1.jpg">
</div>
<div class="right">
<img class="u-max-full-width" src="img2.jpg">
</div>
</div>
这是我的 css:
#center {
width: 100%;
text-align: center;
position: relative;
display: table;
}
#center > div {
display: table-cell;
vertical-align: middle;
}
.left {
width: 50%;
height: 100%;
text-align: center;
}
.right {
width: 50%;
height: 100%;
text-align: center;
}
使用此代码,它们以正常宽度垂直居中,但我无法在较窄的视图中让图像彼此对齐。关于如何做到这一点有什么想法吗?
试试这个:
.container {
text-align: center;
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex;
display: flex;
justify-content: center;
flex-wrap: wrap;
-webkit-box-align: center;
-webkit-flex-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
height: 800px;
}
<div class='container'>
<img src="//placehold.it/300x300" class="thumbnail" alt="">
<img src="//placehold.it/300x300" class="thumbnail" alt="">
</div>
编辑:
Sry没有正确阅读..
如果页面变窄,这些不会分开。
正如 François 指出的那样,将此添加到 css:
flex-wrap: wrap;
另一个编辑:
显然 IE 对此有一些问题。在 .container (container_wrapper) 或其他东西周围做一个包装器。给它:
display: flex;
flex-direction: column;
height: 100%;
并确保您的 html 和 body 设置为 100% 高度
使用 Jip van Kakerken 的代码,只需添加 属性 :
flex-wrap: wrap;
.container {
text-align: center;
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex;
display: flex;
justify-content: center;
-webkit-box-align: center;
-webkit-flex-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
flex-wrap: wrap;
height: 800px;
}
<div class='container'>
<img src="//placehold.it/300x300" class="thumbnail" alt="">
<img src="//placehold.it/300x300" class="thumbnail" alt="">
</div>
我正在使用 Skeleton 和 Normalize css。我想在 div 容器内将两个图像垂直和水平并排居中。当页面变窄时,我想要第一个图像底部的第二个图像如下
Normal width:
img1 img2
Narrow view:
img1
img2
这是我的代码:
<div id="center">
<div class="left">
<img class="u-max-full-width" src="img1.jpg">
</div>
<div class="right">
<img class="u-max-full-width" src="img2.jpg">
</div>
</div>
这是我的 css:
#center {
width: 100%;
text-align: center;
position: relative;
display: table;
}
#center > div {
display: table-cell;
vertical-align: middle;
}
.left {
width: 50%;
height: 100%;
text-align: center;
}
.right {
width: 50%;
height: 100%;
text-align: center;
}
使用此代码,它们以正常宽度垂直居中,但我无法在较窄的视图中让图像彼此对齐。关于如何做到这一点有什么想法吗?
试试这个:
.container {
text-align: center;
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex;
display: flex;
justify-content: center;
flex-wrap: wrap;
-webkit-box-align: center;
-webkit-flex-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
height: 800px;
}
<div class='container'>
<img src="//placehold.it/300x300" class="thumbnail" alt="">
<img src="//placehold.it/300x300" class="thumbnail" alt="">
</div>
编辑: Sry没有正确阅读.. 如果页面变窄,这些不会分开。
正如 François 指出的那样,将此添加到 css:
flex-wrap: wrap;
另一个编辑: 显然 IE 对此有一些问题。在 .container (container_wrapper) 或其他东西周围做一个包装器。给它:
display: flex;
flex-direction: column;
height: 100%;
并确保您的 html 和 body 设置为 100% 高度
使用 Jip van Kakerken 的代码,只需添加 属性 :
flex-wrap: wrap;
.container {
text-align: center;
display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */
display: -moz-box; /* OLD - Firefox 19- (buggy but mostly works) */
display: -ms-flexbox; /* TWEENER - IE 10 */
display: -webkit-flex;
display: flex;
justify-content: center;
-webkit-box-align: center;
-webkit-flex-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
flex-wrap: wrap;
height: 800px;
}
<div class='container'>
<img src="//placehold.it/300x300" class="thumbnail" alt="">
<img src="//placehold.it/300x300" class="thumbnail" alt="">
</div>