网上其他地方已讲述过对其的不同实现方式,今天主要做一个详细的汇总,希望对大家有帮助。
ps:我面试的时候就被问到过这个问题,当时都回答错了,蓝瘦。 假设父div的类名为father,子div的类名为son。在html中的形式如下:

<div class="father">

<div class="son">

</div>

接下来用css设置son居中的方法主要有4种。

  1. 方法一(使用绝对布局):

    .father{

    width:500px;

    height:500px;

    position:relative;

    background-color:red;

    }

    .son{

    width:200px;

    height:200px;

    position:absolute;

    top:50%;

    left:50%;

    margin-top:-100px;

    margin-left:-100px;

    background-color:black;

    }

    效果图如下:

  2. 方法二(使用table-cell形式)

    .father{

    width:500px;

    height:500px;

    display:table-cell;

    text-align:center;

    vertical-align:middle;

    background-color:red;

    }

    .son{

    width:200px;

    height:200px;

    display:inline-block; ps:这句话一定要加,不然没效果哦

    background-color:black;

    }

    效果如上

    3.方法三(使用弹性布局flex)

    .father{

    width:500px;

    height:500px;

    display:flex;

    justify-content:center; 内容水平居中

    align-items:center; 内容垂直居中

    background-color:red;

    }

    .son{

    width:200px;

    height:200px;

    background-color:black;

    }

    效果如上

    4.方法四(使用绝对布局)

    .father{

    width:500px;

    height:500px;

    display:relative;

    background-color:red;

    }

    .son{

    width:200px;

    height:200px;

    position:absolute;

    top:0;

    right:0;

    bottom:0;

    left:0;

    margin:auto;

    background-color:black;

    }

    效果如上

这是目前我所了解的4种方法,ie和chrome都兼容,其他浏览器没测,目测是都兼容的。欢迎大家查漏补缺!

如何在一个div中使其子div居中的更多相关文章

  1. js在一个div里面移动其子div

    var ChildDiv = $("#cid"); var width = 0; //鼠标点击子div的地方和子div的左边边距距离 var height = 0; //鼠标点击子 ...

  2. 为什么当多个inline-block的div中,如果有的div没有内容而有的div有内容,有内容的会下沉?

    为什么当多个inline-block的div中,如果有的div没有内容而有的div有内容,有内容的会下沉? 就像这样 两个div高度相同,第二个我写了一个1当作 有内容吧,它就下沉了... 奇怪... ...

  3. div中宽高度自适应文字换行居中问题解决

    <html> <head> <meta charset="UTF-8"/> <title>div中宽高度自适应文字换行居中demo& ...

  4. js控制div滚动条,滚动滚动条使div中的元素可见并居中

    1.html代码如下 <div id="panel"> <div id="div1"></div> <div id=& ...

  5. ThinkPHP框架下,jq实现在div中添加标签并且div的大小会随之变化

    php初学者,有什么不对的还请指正. 首先是在html页面中用jq实现添加标签:divAchivePersonnal是select所在的div的外层div,divselectAchivePersonn ...

  6. div中img依据不同分辨率居中显示,超出部分隐藏

    在做banner居中时 碰到的问题,知道可以用背景图实现居中显示,但是内心是想深究下的,故找到几种办法收集一下,后面两种真的是奇技淫巧 来着下面两处 https://www.zhihu.com/que ...

  7. 父div高度不能根据子div高度自动变化的解决方案

    <div id="parent"> <div id="content"> </div> </div> 当cont ...

  8. 小div在大div中垂直居中,以及div在页面垂直居中

    <html> <head> <title>淘宝 2faner</title> <style type="text/css"&g ...

  9. css 实现 左右div 等高, 同时父级div就是最高的子div的高度

    原文地址:https://www.cnblogs.com/cbza/p/7145384.html 方法一: 通过父级overflow:hidden,  自己设置padding-bottom 和 mar ...

随机推荐

  1. HTML5 API 是什么

    HTML5 API 是什么 一.总结 1.html5有很多好的api可以用:例如绘图的canvas,获取地理位置的,获取手机电池信息的等等,后面用的时候可以百度 2.html5 API是什么:html ...

  2. 25.Spring @Transactional工作原理

    转自:http://www.importnew.com/12300.html 本文将深入研究Spring的事务管理.主要介绍@Transactional在底层是如何工作的.之后的文章将介绍: prop ...

  3. [React] Remove React PropTypes by using Flow Annotations (in CRA)

    Starting from v15.5 if we wanted to use React's PropTypes we had to change our code to use a separat ...

  4. Valgrind的用法

    Valgrind是执行在Linux上一套基于仿真技术的程序调试和分析工具,它包括一个内核──一个软件合成的CPU,和一系列的小工具,每一个工具都能够完毕一项任务──调试.分析,或測试等. Valgri ...

  5. 详解javascript的深拷贝与浅拷贝

    1. 认识深拷贝和浅拷贝 javascript中一般有按值传递和按引用传递两种复制,按值传递的是基本数据类型(Number,String,Boolean,Null,Undefined),一般存放于内存 ...

  6. oracle 10g文件目录结构详解

    一个典型的oralce目录结构如下: /u01└── oracle    ├── admin (数据库管理文件位置,以实例划分)    │   ├── mydb    │   │   ├── adum ...

  7. 零基础学python-2.3 凝视

    在python里面,使用"#"号表示凝视的開始,一整行到结束就是凝视,他的主要作用提示这段代码到底有什么用处 print("---------欢迎来到猜数字的地方.请開始 ...

  8. ThinkPHP视图查询

    ThinkPHP视图查询 一.总结 1.这里的视图查询和多表查询很像,当然多表查询的话肯定要支持左右链接查询 2.view:视图的使用,关键字是view 3.sql视图功能支持:thinkphp支持视 ...

  9. C# 获取文件路径,读取项目中某程序集下文件

    获取文件路径 ------------------------------------------------------------------------- winform获取文件路径: stri ...

  10. screenX, clientX, pageX

    screenX:鼠标相对屏幕左上角的水平偏移量. clientX:鼠标相对于浏览器左上角的水平偏移量,会随着滚动条的移动而移动. pageX:鼠标相对浏览器左上角的水平偏移量.不会随着滚动条的移动而移 ...