Javascript – CSS steuert, dass das Div immer horizontal und vertikal zentriert ist, und die Größe dieses Div ist unterschiedlich
欧阳克2017-06-26 10:52:35
0
10
1189
Das CSS-Steuerelement fügt ein p mit einem einheitlichen Klassennamen hinzu. Die Größe des p ist jedoch unterschiedlich, sodass das CSS nicht korrigiert werden kann.
flex布局吧
一种是使用flex布局,使子元素水平垂直居中;另一种是使用绝对定位加transform移动位置。
.flex {
display: flex;
align-items: center;
justify-content: center;
}
.one {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
传送门
垂直居中:
表格布局法 行内块法
绝对定位法
视口居中
基于flexbox 的方案
老生常谈的问题,国外已经有人整理了各种情况的垂直居中:https://css-tricks.com/center...
甚至直接给你生成代码,还考虑是否兼容IE:http://howtocenterincss.com/
也可以看看翻译过的版本:https://github.com/chenjsh36/...
看完再也不怕各种垂直居中问题 23333
父元素加display:flex,align-items:center
上面使用弹性布局可以,但是不支持低级浏览器,
可以使用绝对定位来使p垂直水平居中
同样建议 flex布局
各种弹层?各种计算?左右居中很简单,只需要
margin:0 auto;
即可,但是上下就稍微麻烦点了。虽然麻烦很多方式啊
1,js判断,这个比较笨重,就不说了,简单会js的朋友都会
2,disable:table. 这个需要两个dom配合,不推荐,主要兼容性也一般
3,利用transfrom,这个如果不考虑兼容,不知道高度,极力推荐。大概方式如下:
.dom{
宽自己定义
position: absolute;
transform: translate(-50%, -50%);
left: 50%;
top: 50%;
}
知道宽度,不知道高度 推荐这个
4,如果知道宽高,那就不用上面了,因为上面不兼容啊,这个狂兼容,代码如下:
.dom{
宽高自己定义
position: absolute;
margin: auto;
top:0;
right: 0;
bottom:0;
left: 0;
}
5,flex 布局,除了兼容,其他都没问题。
<p class="mask">
</p>
.mask{
}
.mask-con{
}
6, 如果考虑兼容====>请回看第一条。【都什么年代了 还考虑IE789 主要IE7 DOM1 支持都不大好,所以。。。】
7,其他没啥了。以上几种绝对够用了。有好的,请给予补充
父元素
子元素
再补充三个方法。
采用绝对或固定定位居中一个已知宽度和高度的元素:
采用
display: table
布局居中元素,支持不确定的宽度和高度,并且兼容 IE8+ 和其他现代浏览器::before
伪元素撑开行高 (AmazeUI 在 modal 组件中使用的办法,并且支持不确定的宽度和高度, IE8+):