CSS如何水平垂直居中?CSS水平垂直居中的方法汇总

直接进入主题!

一、脱离文档流元素的居中

方法一:margin:auto法

CSS代码:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

div{

      width:400px;

      height:400px;

      position:relative;

      border:1pxsolid#465468;

 }

 img{

      position:absolute;

      margin:auto;

      top:0;

      left:0;

      right:0;

      bottom:0;

 }

HTML代码:


1

2

3

<div>

   <imgsrc="mm.jpg">

</div>

效果图:

当一个元素绝对定位时,它会根据第一个不是static定位的祖先元素定位,因此这里的img根据外层div定位。

方法二:负margin法

CSS代码:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

.container{

      width: 500px;

      height: 400px;

      border: 2px solid #379;

      position: relative;

 }

 .inner{

      width: 480px;

      height: 380px;

      background-color: #746;

      position: absolute;

      top: 50%;

      left: 50%;

      margin-top: -190px; /*height的一半*/

      margin-left: -240px; /*width的一半*/

 }

HTML代码:


1

2

3

<divclass="container">

    <divclass="inner"></div>

</div>

效果图:

 

这里,我们首先用top:50%和left:50%让inner的坐标原点(左上角)移动到container的中心,然后再利用负margin让它往左偏移自身宽的一半,再往上偏移自身高的一半,这样inner的中心点就跟container的中心点对齐了。

二、未脱离文档流元素的居中

方法一:table-cell法

CSS代码:


1

2

3

4

5

6

7

8

9

10

11

div{

    width:300px;

    height:300px;

    border:3pxsolid#555;

    display:table-cell;

    vertical-align:middle;

    text-align:center;

}

img{

    vertical-align:middle;

}

HTML代码:


1

2

3

<div>

    <imgsrc="mm.jpg">

</div>

效果图:

div上面的vertical-align: middle是控制垂直方向上的居中的,而text-align: center是控制水平方向的。一个有趣的事实是,当我们去掉img的vertical-align: middle之后,是这样的: 

还是居中啊!真的居中吗?

我们看到,图片往上移了一点,在垂直方向上已经不居中了。为什么?我也不知道为什么,如果你知道,可以告诉我吗?

但是如果我们把图片换成文字:

CSS代码:


1

2

3

4

5

6

7

8

9

10

11

div{

    border:3pxsolid#555;

    width:300px;

    height:200px;

    display:table-cell;

    vertical-align:middle;

    text-align:center;

}

span{

    vertical-align:middle;

}

HTML代码:


1

2

3

<div>

    <span>这是放在span中的文字,通过外层div设置display: table-cell以及vertical-align: middle实现垂直居中。</span>

</div>

效果图:

 

当我们把span的vertical-align: middle去掉之后是这样的:

 

看到差别没?文字的行间距更小了。如果你在自己电脑上运行代码就会发现,这几行字是向中间靠了,而并没有像图片一样往上移。我也在想办法搞清楚这是怎么回事,如果你知道原因,也烦请告诉我。

方法二:弹性盒子法

CSS代码:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

.container{

      width:300px;

      height:200px;

      border:3pxsolid#546461;

      display: -webkit-flex;

      display: flex;

      -webkit-align-items:center;

      align-items:center;

      -webkit-justify-content:center;

      justify-content:center;

 }

 .inner{

      border:3pxsolid#458761;

      padding:20px;

 }

HTML代码:


1

2

3

4

5

<divclass="container">

    <divclass="inner">

        我在容器中水平垂直居中

    </div>

</div>

效果图:

 

align-items控制垂直方向的居中,justify-content控制水平方向的居中。这是CSS3的新方法,浏览器支持情况如下:

 

时间: 2024-09-20 11:33:01

CSS如何水平垂直居中?CSS水平垂直居中的方法汇总的相关文章

CSS网页制作技巧:隐藏网页元素的方法汇总

文章简介:CSS网页制作技巧:隐藏网页元素的方法汇总. 在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间:有的可以响应点击,有的不能响应点击.下面一个个列出,选一个适合你的 { display: none; /* 不占据空间,无法点击 */ }{ visibility: hidden; /* 占据空间,无法点击 */ }{ position: absolute; top: -999em; /* 不占据空间,无法点击 */ }{ position: rela

css中文字图片背景图居中的方法汇总

一.让网页所有DIV标签内文字居中   -   实现所有DIV内字体居中实例完整网页源代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title>div字体居中实例</title> <style> div{text-align:center

纯css实现蓝色圆角效果水平导航菜单代码

         本文实例讲述了纯css实现蓝色圆角效果水平导航菜单代码.分享给大家供大家参考.具体如下:          这是一款可爱的蓝色圆角水平导航菜单,用到几张背景图片,我觉得这款菜单挺实用,特别是用在个人博客中非常合适.在兼容性方面做的也很好,几乎兼容所有的浏览器. 运行效果截图如下: 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org

JavaScript改变CSS样式的方法汇总

  JavaScript修改CSS有4种方法:1.修改节点style(内联样式);2.改变节点class或id;3.写入新的css;4.替换页面中的样式表.今天主要给大家介绍下前2种,因为后两种个人不是很推荐大家使用 JavaScript允许你即时的改变CSS样式,这样就可以将用户的眼球吸引到你想他们关注的地方上,并且提供较好的交互体验给力 . JavaScript修改CSS有4种方法: 修改节点style(内联样式); 改变节点class或id; 写入新的css; 替换页面中的样式表. 个人不

CSS网页制作教程:CSS书写规范和书写顺序

文章简介:大部分前端er都没有按照良好的CSS书写规范来写CSS代码,这样会影响代码的阅读体验,这里我总结一个CSS书写规范.CSS书写顺序供大家参考,这些是参考了国外一些文章以及我的个人经验总结出来,我想对写CSS的前端用户来说是值得学习的. 写了这么久的CSS,但大部分前端er都没有按照良好的CSS书写规范来写CSS代码,这样会影响代码的阅读体验,这里我总结一个CSS书写顺序供大家参考,这些是参考了国外一些文章以及我的个人经验总结出来,我想对写CSS的前端用户来说是值得学习的. CSS书写顺

CSS技巧:关于CSS Hack与float闭合(清除浮动)

核心提示:CSS技巧:关于CSS Hack与float闭合 一.CSS HACK 以下两种方法几乎能解决现今所有HACK. 1, !important 随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.) 2, IE6/IE77对FireFox *+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签. <style>#wrapper{#wrapper {

Firefox插件CSS Usage:一款CSS减肥的工具

网页制作Webjx文章简介:CSS减肥工具 - CSS Usage. 前端构建工程师经常会遇到随着网站产品的规模扩大.产品数量.日常专题上下线等情况,造成网站的CSS慢慢变得臃肿从而影响了网站的用户体验,这种情况下,给网站CSS文件减肥类似于海底捞针的大工程,因为稍不留神,一个不经意的删除,就会造成线上的产品的事故.下面我们就给大家推荐一款CSS减肥的工具–Firefox插件 CSS Usage. 首先,我们需要安装Firefox(猛击此处下载),或者确定你已经安装的版本已经高于3.1;第二步,

创建CSS的对象 使CSS对象的粒度合适

网页制作Webjx文章简介:创建CSS的对象 使CSS对象的粒度合适. 强硬的把CSS和HTML塞到PHP里面可以防止代码太枯燥(DRY)并最终导致代码臃肿,因为的CSS和HTML需要比PHP更细致的对象结构.事实上,PHP的模板不是天生合适的,因为每个模板包含了许多不同的HTML,以及以不同的方式相结合的CSS对象. 然后,我并没有解释它,或者给出适当的语境.抱歉! 正确的粒度是减小CSS的关键之一 在PHP层,下面的会话流(来自Facebook)或许是一个单个对象.所有的检测哪些HTML要显

CSS特点及加入网页的四种方法

css|网页 CSS(Cascading Stylesheets,层叠样式表)是一种制作网页的新技术,现在已经为大多数的浏览器所支持,成为网页设计必不可少的工具之一.使用CSS能够简化网页的格式代码,加快下载显示的速度,也减少了需要上传的代码数量,大大减少了重复劳动的工作量.尤其是当你面对的是有数百个网页的站点时,CSS简直象是神对我们的恩赐! 前言 CSS(Cascading Stylesheets,层叠样式表)是一种制作网页的新技术,现在已经为大多数的浏览器所支持,成为网页设计必不可少的工具

CSS高级教程之CSS的定位属性和实例

css|高级|教程 CSS定位属性允许你对元素进行定位. CSS 定位 (Positioning)实例: 定位:相对定位 本例演示如何相对于其正常位置来定位元素. <html><head><style type="text/css">h2.pos_left{position:relative;left:-20px}h2.pos_right{position:relative;left:20px}</style></head>&