博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CSS实现水平居中的5种思路
阅读量:6387 次
发布时间:2019-06-23

本文共 1554 字,大约阅读时间需要 5 分钟。

前面的话

  水平居中是经常遇到的问题。看似方法较多,条条大路通罗马但系统梳理下,其实都围绕着几个思路展开。本文将介绍关于水平居中的5种思路

 

text-align

思路一:在父元素中设置text-align:center实现行内元素水平居中

  将子元素的display设置为,使子元素变成行内元素

  [注意]若要兼容IE7-浏览器,使用display:inline;zoom:1;来达到inline-block的效果

DEMO

   这种方法的不足之处在于,子元素的text-align继承了父元素的center,文字也居中显示,所以需要在子元素中设置text-align:left

 

margin

【思路二】:在本身元素设置margin: 0 auto实现块级元素水平居中

【1】将子元素的display为,使子元素成为块级元素,同时table还具有包裹性,宽度由内容撑开

  [注意]若要兼容IE7-浏览器,可把child的结构换成<table class="child">DEMO</table>

DEMO

  该方案的优点在于,只设置父级元素即可实现居中效果

【2】若子元素定宽,则可以使用,实现居中效果;若不设置宽度时,子元素被拉伸

DEMO

 

absolute

【思路三】: 通过绝对定位的偏移属性实现水平居中

【1】配合translate()位移函数

  的百分比是相对于自身宽度的,所以left:50%配合translateX(-50%)可实现居中效果

  [注意]IE9-浏览器不支持

DEMO

【2】配合relative

  数值型的偏移属性是相对于自身的,但百分比却是相对于包含块的。因为子元素已经被设置为absolute,所以若使用relative,则需要增加一层<div>结构,使其宽度与子元素宽度相同

  [注意]该方法全兼容,但是增加了html结构

DEMO

【3】配合负margin

  margin的百分比是相对于包含块的,所以需要增加一层<div>结构。由于宽度width的默认值是auto,当设置时,width也会随着变大。所以此时需要定宽处理

  [注意]虽然全兼容,但需要增加页面结构及定宽处理,所以限制了应用场景

DEMO

 

flex

【思路四】: 使用弹性盒模型flex实现水平居中

  [注意]IE9-浏览器不支持

【1】在上设置主轴对齐方式justify-content:center

DEMO

【2】在上设置margin: 0 auto

DEMO

 

grid

【思路五】: 使用栅格布局grid实现水平居中

  [注意]IE10-浏览器不支持

【1】在网格容器上设置justify-items或justify-content

DEMO

【2】在网格项目中设置justify-self或者margin: 0 auto

DEMO

 

转载地址:http://qkdha.baihongyu.com/

你可能感兴趣的文章
mysql 、redis的区别
查看>>
使用JPA中@Query 注解实现update 操作
查看>>
7.4. APC Cache (php-apc - APC (Alternative PHP Cache) module for PHP 5)
查看>>
Web 仪表盘
查看>>
我的Fedora 7硬盘安装过程
查看>>
18.4. FAQ
查看>>
Python——SSHClient.py
查看>>
MVC解决更新冲突问题
查看>>
江西理工大学南昌校区cool code竞赛
查看>>
[LeetCode] Trim a Binary Search Tree 修剪一棵二叉搜索树
查看>>
Ubuntu SDL lib 安装
查看>>
Java 并发编程内部分享PPT分享
查看>>
关于discuz中禾金投票系统循环出现引导页的问题
查看>>
C#开源系统大汇总
查看>>
Linux服务器安全初始化自选安装Shell脚本
查看>>
PyCharm教程
查看>>
Python 简单的数据结构(一)
查看>>
谁说我们只会做工作流?做实验室管理系统我们也内行。
查看>>
yum安装开发库
查看>>
我的友情链接
查看>>