div自适应水平垂直居中的方法
1.Flexbox布局:
display:flex;
justify-content:center;
align-items:center;
width:100%;
2.Bootstrap栅格布局
一共12格,分成3块,每块占4列。居中的内容写在中间的那一块。
3.圣杯/双飞翼(水平自适应居中的基础上)
第一步:居中的div写在最前面,width:100%撑满一整行。三个div都向左浮动float:left;
<div class="main">Main</div>
<div class="left">Left</div>
<div class="right">Right</div>
第二步:让三个div显示在同一行
div.left { marin-left:100%}
div.right{ marin-left:自身的宽度}
第三步:让中间的div能够自适应
圣杯布局的做法:
div.main{
padding-left:左div的宽度;
padding-right:右div的宽度;
}
双飞翼布局的做法:
在div.main内部再添加一个div.mc:
然后设置div.mc的margin值
margin-left:左div的宽度;
margin-right:右div的宽度;
现在,水平居中已经实现了;
第四步:垂直居中

在div.left,div.right,div.main外面再加一个div.wrap,
然后对div.con设置 display:table,对div.wrap设置
display:table-cell;
vertical-align:middle;
4.relative/positive + top/left+tarnsform
父元素:
position:relative
子元素:
position:absolute;
top:50%;
left:50%;
transform: translate(-50%, -50%);
transform: translate(-50%, -50%);意思是向右移动自身50%的宽度,向下移动自身50%的高度。
为什么有了top:50%;left:50%还要 transform: translate(-50%, -50%);
最初:

加了top:50%;left:50%后:

还需要再往左、往上挪一挪:

5.relative/positive + top/left+left + margin
和方法4一样,用top和left挪到中间:

这之后用margin-left和margin-right进行处理:
先给div.child设置宽度,然后设置margin:

6.用top,left,bottom,right

计算公式:
top + div.child 的 height +bottom = div.parent 的 height
left + div.child 的 width +right = div.parent 的 width
如果子元素是行内元素,如<p>,要注意一开始就要去掉margin和padding
方法4、5、6有的demo,详见 github
div自适应水平垂直居中的方法的更多相关文章
- div盒子水平垂直居中的方法推荐
父盒子是position:relative 方法一:(宽高确定) div绝对定位水平垂直居中[margin 负间距], 方法二: (宽高确定) div绝对定位水平垂直居中[margin:auto实现绝 ...
- div盒子水平垂直居中的方法
这个问题比较老,方法比较多,各有优劣,着情使用. 一.盒子没有固定的宽和高 方案1.Transforms 变形 这是最简单的方法,不仅能实现绝对居中同样的效果,也支持联合可变高度方式使用.内容块定义t ...
- DIV文字水平垂直居中的方法
水平居中 text-align:center 垂直居中(vertical-align) vertical-align:middle; vertical-align时而没效果 然而真实使用的时候,我们会 ...
- div盒子水平垂直居中方法
文章转载自:div盒子水平垂直居中的方法 - 雪明瑶 这个问题比较老,方法比较多,各有优劣,着情使用. 一.盒子没有固定的宽和高 方案1.Transforms 变形 这是最简单的方法,不仅能实现绝对居 ...
- 一个div在另一个div中水平垂直的方法
html <div id="main"> <div id="box"> 一个div在另一个div中垂直居中实现方法 </div&g ...
- 53.CSS---CSS水平垂直居中常见方法总结
CSS水平垂直居中常见方法总结 1.元素水平居中 当然最好使的是: margin: 0 auto; 居中不好使的原因: 1.元素没有设置宽度,没有宽度怎么居中嘛! 2.设置了宽度依然不好使,你设置的是 ...
- Div实现水平垂直居中
在实际应用中很多地方不仅要求实现元素的水平居中或者垂直居中效果,还可能会在水平方向和垂直方向上都要实现居中效果,下面就简单介绍几种元素水平垂直居中的方法(注:不同的方法会存在一些优缺点以及兼容性问题) ...
- css3 flex 详解,可以实现div内容水平垂直居中
先说一下flex一系列属性: 一.flex-direction: (元素排列方向) ※ flex-direction:row (横向从左到右排列==左对齐) ※ flex-direction:row- ...
- css的div动态水平垂直居中
div动态水平垂直居中,思路如下: (1)先定位.如果相对于距离最近的父元素,用absolute:如果相对于body,用fixed. (2)然后,top和left都设为50%. (3)要居中的di ...
随机推荐
- 怎么让textarea的光标靠左对齐
1.怎么让textarea的光标靠左对齐: 把<textarea></textarea>之间空隙去掉就可以了. 2.怎么限制textarea的字数,利用maxlength属性限 ...
- 洛谷P3960 列队(动态开节点线段树)
题意 题目链接 Sol 看不懂splay..,看不懂树状数组... 只会暴力动态开节点线段树 观察之后不难发现,我们对于行和列需要支持的操作都是相同的:找到第\(k\)大的元素并删除,在末尾插入一个元 ...
- Python学习系列-----第二章 操作符与表达式
2.1 数学运算和赋值的简便方法 例如: 2.2 优先级 在python中运算符有优先级之分,高优先级的运算符先执行,低优先级的运算符后执行.下面是运算符优先级:(同一行的运算符具有相同的优先级) 2 ...
- Linux中nmon的安装与使用
一.下载nmon. 根据CPU的类型选择下载相应的版本:http://nmon.sourceforge.net/pmwiki.php?n=Site.Downloadwget http://source ...
- Eclipse启动JVM机制
1.Eclipse启动的时候,会启动一个JVM来运行eclipse(因为Eclipse是Java代码实现的) 2.Eclipse启动一个带main的主类的时候,会单独启动一个JVM来运行他. 3.Ec ...
- PHP小错误及分析
即使是经验丰富的程序猿,在编程的过程中犯个错误也是在所难免的.如果开发人员不能注意到这些错误,也无法了解编译器报错信息的含义,那么这些错误信息不仅毫无用处,还会常常让人感到沮丧,所以更好地理解错误信息 ...
- DBMS_SQLTUNE使用方法
SQL调优工具包DBMS_SQLTUNE的使用方法 oracle 提供了优化建议功能包DBMS_SQLTUNE,该包可以帮助我们分析SQL,并提供优化建议. 原有执行计划alter session s ...
- February 4 2017 Week 5 Saturday
It takes a great man to be a good listener. 懂得倾听的人才是真的了不起. Don't make comments before you have learn ...
- ubuntu16.4安装php7+apache2+mysql环境全过程记录
1.安装apache2 sudo apt-get install apache2 2.安装php7 sudo apt-get install php7.0 3.apache 识别php插件(不是必须, ...
- OC NSMutableString的使用
#pragma mark 可变字符串的创建 void stringCreate() { // 预先分配10个字数的存储空间 NSMutableString *str = [[NSMutableStri ...