居中大法

水平居中

  1. 行内元素水平居中
    给它的父级元素设置
text-align:center;
  1. 块级元素水平居中
    给该元素设置margin值
margin:0 auto;
  1. 子元素有浮动
    对父元素进行特殊设置
width:fit-content;
margin:0 auto;
  1. 使用弹性盒子(老版本)
    对父元素进行设置
display:box;//声明弹性盒模型
box-orient:horizontal;//确定子元素方向,horizontal水平,vertical垂直
box-pack:center;//盒子内部剩余空间对齐表现
  1. 使用弹性盒子(新版本)
    对父元素进行设置
display:flex;
flex-direction:row;//设置主轴方向
just-content:center;//主轴方向空间对齐方式
  1. transform方法
    父元素的position设置为relative,对子元素进行设置
position:absolute;
left:50%;
transform:translateX(-50%);//或translate(-50%,0)
  1. margin-left 负值
    父元素的position设置为relative,对子元素进行设置
position:absolute;
left:50%;
margin-left:-子元素宽度一半;
  1. 子元素绝对定位
    对子元素进行设置
position:absolute;
top:0;
bottom:0;
left:0;
right:0
margin:0 auto;

垂直居中

  1. 单文本内容
line-height:100px;//line-height==父元素高度值
  1. 行内块级元素(即display为inline-block)
    为父元素添加伪类
.parent ::after{
content:"";
height:100%;
}
.parent ::after, .son{
display:inline-block;
vertical-align:middle;
}
  1. 子元素以表格形式渲染
    父元素display设置为table,再设置子元素
display:table-cell;
vertical-align:middle;
  1. flex布局
    设置父元素
display:box;
box-orient:vertical;
box-pack:center;
  1. flex布局
    设置父元素
display:flex;
flex-direction:column;
align-center:center;
  1. margin负半值
    父元素position:relative,再设置子元素
position:absolute;
top:50%;
height:固定值;
margin-top: -高度的一半;
  1. 子元素相对定位
    父元素position:relative,再设置子元素
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
margin:auto 0;
  1. 需要在居中元素前面放一个空块级元素(比如div)即可,然后设置这个div的高度为50%,margin-bottom为元素高度的一半,而且居中元素需要清除浮动,需要注意的是,使用这种方法,如果你的居中元素是放在body中的话,需要给html,body设置一个height:100%的属性
<div class="box"></div>
<div class="content">Content</div>
</pre>
<pre>
html,body{height:100%;}
 .box{
        height:50%;  /*相对父元素的高度的50%*/
        margin-bottom:-120px;
}
.content{
        clear:both;/*清除浮动*/
        width:240px;
        height:240px;
        position:relative;/*只能用相对定位*/
        background:green;
}

水平垂直居中

  1. 对于文本图片
line-height:高度;
tex-align:center;
  1. 定宽定高
    父元素为position:relative,再对子元素进行设置
position:absolute;
left:50%;
top:50%;
margin-left:-宽度一半;
margin-top:-高度一半;
  1. 绝对定位+margin法
    对子元素进行设置
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
margin:auto;
  1. 使用js动态计算
    水平居中元素应设置为绝对定位,获取元素的位置,距离浏览器左边,上边的距离,并且进行赋值
    left:(浏览器的宽度-元素的宽度)/2
    top:(浏览器的高度-元素的高度)/2
var oBox=document.getElementById("box"),
      left=(document.documentElement.clientWidth-oBox.offsetWidth)/2,
      top = (document.documentElement.clientHeight)/2;
      oBox.style.left = left+"px";
      oBox.style.top = top+"px";
  1. 使用jQuery实现元素的水平垂直居中
    获取元素
    获取浏览器可视宽度$(window).width();
    获取浏览器可视高度$(window).height();
    元素距离浏览器左边的距离left:($(window).width()-元素.width())/2
    元素距离浏览器上边的距离top:($(window).height()-元素.height())/2
    resize:当调整浏览器窗口的大小时,发生 resize 事件
var oBox = $("#box"),
       oW = $(window).width(),   //获取浏览器的可视宽度
       oH  = $(window).height(), //获取浏览器的可视高度
       l = (oW-oBox.width())/2,  // 元素距离浏览器左边的距离
       t = (oH-oBox.height())/2; //元素距离浏览器右边的距离
       oBox.css({                    //赋值操作,left,top值
           left:l,
           top:t
        });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,725评论 1 92
  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 8,154评论 3 30
  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,463评论 0 8
  • 春桃 (限韵下平七阳) 春萍几片绿池塘, 红桃一枝出粉墙。 俏面不争韶光艳, 溪头无聊逗鸳鸯。 又 (不限韵) 墙...
    钱塘小泥鳅阅读 255评论 0 0
  • 准备阶段 准备yum源 删除默认的源,国外的比较慢 下载阿里云的base源 下载阿里云的epel源 修改里面的系统...
    netmouser阅读 2,024评论 1 1