CSS3实现DIV垂直居中+水平居中的四种方法

时间:2022-12-22 23:48:04
<div class="div1">
<div class="div2"></div>
</div>

html结构如上

方法1:display:table-cell  +  textalign:center

注:display:table-ceil会使元素变为内联元素

        .div1{
width: 200px;
height: 150px;
background: dodgerblue;
text-align: center;
display: table-cell;
vertical-align: middle;
}
.div2{
width: 60px;
height: 30px;
background: yellow;
display: inline-block;
}

方法2:display:table-ceil  +  margin: 0 auto

        .div1{
width: 200px;
height: 150px;
background: dodgerblue;
display: table-cell;
vertical-align: middle;
}
.div2{
width: 60px;
height: 30px;
background: yellow;
margin: 0 auto;
}

方法3:定位+负的margin,css如下:

         .div1{
width: 200px;
height: 150px;
background: dodgerblue;
position: relative;
}
.div2{
width: 60px;
height: 30px;
background: yellow;
position: absolute;
top: 50%;
left: 50%;
margin-left: -30px;
margin-top:-15px;
}

方法4:内部div放入表格中,dom结构如下:

 <div class="div1">
<table class="t1">
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td><div class="div2"></div></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</div>

只需使外层div与table的长宽一致便可,css如下:

         .div1{
width: 200px;
height: 150px;
background: dodgerblue;
text-align: center;
vertical-align: middle;
}
.div2{
width: 60px;
height: 30px;
background: yellow;
display: inline-block;
}
.t1{
width: 200px;
height: 150px;
}

*直观感受方法4略显臃肿,但究竟使用哪种方法就需要视情况分析。比如说需要使用表格,并且在表现层*需要一个块级元素,那么方法4就显得两全其美了。其余三种方法就需要分析div内部和外部的DOM结构和元素。总之,没有最好的,只有最合适的。

CSS3实现DIV垂直居中+水平居中的四种方法的更多相关文章

  1. div垂直水平居中的四种方法总结

    5.利用弹性布局 与 margin: <style> .container{ height: 600px; width: 600px; border:1px solid black; di ...

  2. 实现三个div,固定左右两边的div宽为200,中间的div宽度自适应的四种方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. 让一个图片在div中居中(四种方法)

    第一种方法: <div class="title"> <div class="flag"></div> <div cl ...

  4. div 清除浮动的四种方法

    概述:为了解决父级元素因为子级内部高度为0的问题 (很多情况 不方便给父级元素高,因为不知道有多少内容,让里面的盒子自动撑起高度),清除浮动本质叫闭合浮动更好一些,清除浮动就是把浮动的盒子关到里面,让 ...

  5. CSS垂直居中的四种方法

    写在前面的话 最近在Stack Overflow上看到 一个不错的回答 ,以下是我对其的总结,分享给大家. 垂直居中的四种方法 ①基础的方法 设置父元素的line-height等于height,这种方 ...

  6. css&plus;div制作圆角矩形的四种方法

    圆角矩形一向是设计师最倾心的一种设计,因为他们可以让整个网页生动起来,不那么死板,所以,作为一个优秀的网页设计师,学会一种或多种编辑圆角矩形的方法是必不可少的,而且圆角矩形应用范围极广,一个网页内的所 ...

  7. css实现垂直水平居中的5种方法

    css实现垂直水平居中的5种方法 给父元素设置table-cell,text-align,vertical-align #big{ width: 200px; height: 200px; borde ...

  8. react添加样式的四种方法

    React给添加元素增加样式 第一种方法: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  9. CSS三栏布局的四种方法

    总括: 不管是三栏布局还是两栏布局都是我们在平时项目里经常使用的,也许你不知道什么事三栏布局什么是两栏布局但实际已经在用,或许你知道三栏布局的一种或两种方法,但实际操作中也只会依赖那某一种方法,本文具 ...

随机推荐

  1. PHP中spl&lowbar;autoload&lowbar;register函数的用法

    spl_autoload_register (PHP 5 >= 5.1.2) spl_autoload_register — 注册__autoload()函数 说明bool spl_autolo ...

  2. Unity3D使用Assetbundle打包加载(Prefab、场景)

    之前有一篇文章中我们相惜讨论了Assetbundle的原理,如果对原理还不太了解的朋友可以看这一篇文章:Unity游戏开发使用Assetbundle加载场景的原理 本篇文章我们将说说assetbund ...

  3. 303&period; Range Sum Query - Immutable

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...

  4. DHCP工作过程详解

    DHCP动态主机配置协议的作用我想作为网管的兄弟们都应该知道了,这里我就不多废话了,今天我要谈的是DHCP的工作过程,了解了工作过程,要排除故障就容易了.   一.DHCP客户机初始化: 1. 寻找D ...

  5. Codeforces Gym 100463A Crossings 逆序数

    Crossings Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100463 Description ...

  6. block回调具体例子

    //main.m ////  main.m//  回调////  Created by hehe on 15/9/10.//  Copyright (c) 2015年 wang.hehe. All r ...

  7. java 判断字符串是否为乱码

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class MessyCodeCheck { public ...

  8. C&plus;&plus;数组与指针

    指向数组元素的指针 一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址.指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中) ...

  9. springboot 中页面跳转问题:window&period;location&period;href

    我的一个HTML页面 点击注册 本该到注册页面,但是却一直跳到同目录的一个Error.html文件夹下 该页面: 删掉Error.html还不行:会报错,而且改变window.location.hre ...

  10. SD卡

    一.SD卡接口 SD 卡的接口可以支持两种操作模式:主机系统可以选择以上其中任一模式, SD 卡模式允许 4 线的高速数据传输. SPI 模式允许简单通用的 SPI 通道接口, 这种模式相对于 SD ...