资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

CSS中怎样实现水平居中

这篇文章给大家介绍CSS中怎样实现水平居中,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

成都创新互联公司专业为企业提供姜堰网站建设、姜堰做网站、姜堰网站设计、姜堰网站制作等企业网站建设、网页设计与制作、姜堰企业网站模板建站服务,十余年姜堰做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

前面的话
 
水平居中是经常遇到的问题。看似方法较多,条条大路通罗马。但系统梳理下,其实都围绕着几个思路展开。本文将介绍关于水平居中的4种思路,感兴趣的朋友参考下吧!
 
思路一:在父元素中设置text-align:center实现行内元素水平居中
 
将子元素的display设置为inline-block,使子元素变成行内元素
 
[注意]若要兼容IE7-浏览器,可使用display:inline;zoom:1;来达到inline-block的效果

CSS Code复制内容到剪贴板

  1.     
       
      DEMO
   

思路二:在本身元素设置margin: 0 auto实现块级元素水平居中
 
【1】将子元素的display为table,使子元素成为块级元素,同时table还具有包裹性,宽度由内容撑开
 
[注意]若要兼容IE7-浏览器,可把child的结构换成

DEMO

  1.     
       
      DEMO
   

【2】若子元素定宽,则可以使用绝对定位的盒模型属性,实现居中效果;若不设置宽度时,子元素被拉伸

CSS Code复制内容到剪贴板

  1.     

  2.   

  3.     DEMO      

  4.    

思路三: 通过绝对定位的偏移属性实现水平居中
 
【1】配合translate()位移函数
 
translate函数的百分比是相对于自身宽度的,所以left:50%配合translateX(-50%)可实现居中效果
 
[注意]IE9-浏览器不支持

CSS Code复制内容到剪贴板

  1.     

  2.   

  3.   DEMO   

  4.    

【2】配合relative
 
relative的偏移属性是相对于自身的,因为子元素已经被设置为absolute,所以若使用relative,则需要增加一层

结构,使其宽度与子元素宽度相同
 
[注意]该方法全兼容,但是增加了html结构

CSS Code复制内容到剪贴板

  1.     

  2.   

  3.      

  4.     DEMO

    

  •         

  •    

  • 【3】配合负margin
     
    margin的百分比是相对于包含块的,所以需要增加一层

    结构。由于宽度width的默认值是auto,当设置负margin时,width也会随着变大。所以此时需要定宽处理
     
    [注意]虽然全兼容,但需要增加页面结构及定宽处理,所以限制了应用场景

    CSS Code复制内容到剪贴板

    1.     

    2.   

    3.      

    4.     DEMO

        

  •         

  •    

  • 思路四: 使用弹性盒模型flex实现水平居中
     
    [注意]IE9-浏览器不支持
     
    【1】在伸缩容器上设置主轴对齐方式jusify-content:center

    CSS Code复制内容到剪贴板

    1.     

    2.   

    3.     DEMO      

    4.    

    【2】在伸缩项目上设置margin: 0 auto

    CSS Code复制内容到剪贴板

    1.     

    2.   

    3.     DEMO      

    4.   


     

    关于CSS中怎样实现水平居中就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


    新闻名称:CSS中怎样实现水平居中
    本文路径:http://cdkjz.cn/article/jspgcg.html
    返回首页 了解更多建站资讯
    多年建站经验

    多一份参考,总有益处

    联系快上网,免费获得专属《策划方案》及报价

    咨询相关问题或预约面谈,可以通过以下方式与我们联系

    大客户专线   成都:13518219792   座机:028-86922220