CSS让一个元素水平垂直居中

简介:

第一种方法:用margin+绝对定位的方式

兼容性:IE6,IE7下完全失效

HTML代码:

1
2
3
< div  id = "container" >
         < div  class = "center" ></ div >
   </ div >

CSS代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#container{
       /*基本样式*/
       width : 500px ;
       height : 500px ;
       background : #fee ;
       /*定位方式*/
       position : relative ;
     }
      . center {
       /*基本样式*/
       width : 200px ;
       height : 200px ;
       background : #aa0 ;
       /*水平居中*/
       margin : auto ;
       /*垂直居中*/
       position : absolute ;
       top : 0 ;
       bottom : 0 ;
       left : 0 ;
       right : 0 ;
     }

效果:

wKiom1fiIN_h8pWmAAAII0oSz7M592.png

第二种方法:用inline-block和table-cell

兼容性:IE6,IE7下垂直居中失效

CSS代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#container{
       /*基本样式*/
       width : 500px ;
       height : 500px ;
       background : #fee ;
       /*display*/
       display : table-cell
       text-align : center ;
       vertical-align : middle ;
     }
      . center {
       /*基本样式*/
       width : 200px ;
       height : 200px ;
       background : #aa0 ;
       /*display:通过转为行内块配合父级元素使用text-align实现水平居中*/
      display :inline- block ;
     }


第三种方法:用纯position

兼容性:所有浏览器都支持,包括老IE。缺陷:必须明确宽高的固定值

CSS代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#container{
       /*基本样式*/
       width : 500px ;
       height : 500px ;
       background : #fee ;
       /*定位方式*/
       position : relative ;
     }
      . center {
       /*基本样式*/
       width : 200px ;
       height : 200px ;
       background : #aa0 ;
       /*定位方式*/
       position : absolute ;
       top : 150px /*(父元素的宽高-子元素的宽高)/2*/
       left : 150px ;
     }


第四种方法:用position和transform

兼容性:一看到CSS3属性就知道了IE8及以下浏览器都不支持,个人认为这种方法有些鸡肋

CSS代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#container{
       /*基本样式*/
       width : 500px ;
       height : 500px ;
       background : #fee ;
       /*定位方式*/
       position : relative ;
     }
      . center {
       /*基本样式*/
       width : 200px ;
       height : 200px ;
       background : #aa0 ;
       /*定位方式*/
       position : absolute ;
       top : 50% ;
       left : 50% ;
       transform:translate( -50% -50% );
       -webkit-transform:translate( -50% -50% );
     }


第五种方法:用display:flex和margin

兼容性:IE9及以下版本垂直居中都失效,由于代码简单,推荐移动端使用

CSS代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#container{
       /*基本样式*/
       width : 500px ;
       height : 500px ;
       background : #fee ;
       /*display*/
       display :flex;
     }
      . center {
       /*基本样式*/
       width : 200px ;
       height : 200px ;
       background : #aa0 ;
       /*居中*/
       margin : auto ;
     }


第六种方法:用display:flex;和align-items:center;和justify-content:center;

兼容性:IE9及以下版本水平垂直居中完全失效,推荐移动端使用

CSS代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#container{
       /*基本样式*/
       width : 500px ;
       height : 500px ;
       background : #fee ;
       /*display*/
       display :flex;
       align-items: center ;
       justify- content : center ;
     }
      . center {
       /*基本样式*/
       width : 200px ;
       height : 200px ;
       background : #aa0 ;
     }


可下载掘金App,搜索更多更全的方法

本文转自   frwupeng517   51CTO博客,原文链接:http://blog.51cto.com/dapengtalk/1854929

相关文章
|
1月前
|
数据采集 前端开发 JavaScript
捕捉页面的关键元素:用CSS选择器与Puppeteer自动抓取
本文介绍了如何使用 Puppeteer 结合 CSS 选择器抓取动态网页中的关键元素,以亚航网站的特价机票信息为例,通过设置代理 IP、User-Agent 和 Cookie 等技术手段,有效提升爬虫策略,实现高效、稳定的爬取。
捕捉页面的关键元素:用CSS选择器与Puppeteer自动抓取
|
27天前
|
前端开发 JavaScript UED
CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画
本文探讨了CSS滚动效果和视差滚动的原理、应用及其对用户体验的影响。从平滑滚动到元素跟随,再到滚动触发动画,这些效果增强了页面的吸引力和互动性。视差滚动通过不同层次元素的差异化移动,增加了页面的深度感和沉浸感。文章还讨论了实现方法、性能优化及案例分析,旨在为设计师和开发者提供实用指导。
54 7
|
1月前
|
前端开发 JavaScript
如何利用 CSS3 动画实现元素的淡入淡出效果?
在上述代码中,定义了一个名为 `fade-in` 的CSS类,其初始透明度为0,并设置了淡入的过渡效果。当通过JavaScript为元素添加 `active` 类时,元素的透明度变为1,实现淡入效果;当再次点击按钮移除 `active` 类时,元素又会逐渐淡出。通过这种方式,可以根据用户的操作灵活地控制元素的淡入淡出效果。
204 3
|
2月前
CSS_定位_网页布局总结_元素的显示与隐藏
CSS_定位_网页布局总结_元素的显示与隐藏
28 0
|
2月前
|
前端开发
css 块元素、行内元素、行内块元素相互转换
css 块元素、行内元素、行内块元素相互转换
216 0
|
3月前
|
前端开发
css水平、垂直居中的写法
css水平、垂直居中的写法
63 2
|
4月前
|
前端开发 容器
最新CSS3定位元素
【8月更文挑战第28天】
35 5
|
4月前
|
存储 前端开发
为 HTML 元素指定 CSS 样式的方式
【8月更文挑战第24天】
101 0
|
7月前
|
前端开发
CSS水平居中与垂直居中的方法
CSS水平居中与垂直居中的方法
|
5月前
|
前端开发 C++ 容器
CSS【详解】居中对齐 (水平居中 vs 垂直居中)
CSS【详解】居中对齐 (水平居中 vs 垂直居中)
52 0