本文主要总结几种常见的CSS居中方式,下面我准备分为三个方向来写,分别是水平居中,垂直居中,水平垂直居中。

水平居中

1、inline元素如何实现水平居中?(text-align:center)

2、为什么text-align对block元素水平居中无效?(text-align只对行内元素生效)

3、block元素实现水平居中?(margin:0 auto)

垂直居中

1、inline元素垂直居中、block元素垂直居中,两者的实现需要区别对待吗?(yes)

2、inline元素如何实现垂直居中?(height = line-height,多与text-align:center结合后应用于导航栏)

水平垂直居中

1、如果是多行文字怎么实现水平垂直居中?     效果预览

.parent{

border:1px solid pink;

height:300px;

line-height:300px;

text-align:center; /*水平居中*/

}

.child{

border:1px solid yellow;

width:200px;

display:inline-block;

vertical-align:middle;

word-break:break-all;

line-height:2;

}

2、block元素的水平垂直居中

(1)既然margin:0 auto可以让块级元素水平居中,那为什么margin:auto 0不可以让块级元素垂直居中呢?

width 相关计算依赖于其包含块,最初能确定值,所以margin:keywords auto中auto会均分包含块的剩余空间。而height 相关计算依赖于其自身内容高度,自身内容高度是不能最初确定值的,所以margin:auto keywords无法让块级元素垂直居中。

深入了解请参考https://www.zhihu.com/question/21644198

(2)已知父容器高度,利用table自带功能使内容垂直居中【想实现水平垂直居中的效果,可以给内容加个div,再设置margin:0 auto】     效果预览

.parent{

border:1px solid pink;

height:300px;

}

.child{

border:1px solid yellow;

}

利用table自带功能使内容垂直居中利用table自带功能使内容垂直居中利用table自带功能使内容垂直居中利用table自带功能使内容垂直居中利用table自带功能使内容垂直居中

(3)已知父容器宽高,将div装成table,利用margin:0 auto、display:table-cell属性实现水平垂直居中     效果预览

table自带功能与将div装成table实现水平垂直居中作对比     效果预览

.parent{

border:1px solid pink;

width:400px;

height:300px;

display:table-cell;

vertical-align:middle;/*之所以子元素可以垂直居中对齐,是因为td元素具有valign属性,而vertical-align:middle只会在具有valign属性的对象中生效*/

}

.child{

border:1px solid yellow;

width:200px;

margin:0 auto;

}

提问:doctype对浏览器解析vertical-align的影响?

答案

3、已知宽高,利用负边距实现水平垂直居中     效果预览

position:absolute;

width:300px;

height:100px;

top:50%;

left:50%;

margin-top:-50px;

margin-left:-150px;

4、未知宽高,利用css3的新属性transform:translate(x,y)属性实现水平垂直居中     效果预览

position:absolute;

top:50%;

left:50%;

transform:translate(-50%,-50%);

-webkit-transform:translate(-50%,-50%);

-moz-transform:translate(-50%,-50%);

-ms-transform:translate(-50%,-50%);

5、已知宽高,利用absolute、margin:auto实现水平垂直居中     效果预览

position:absolute;

width:300px;

height:200px;

top:0;

bottom:0;

left:0;

right:0;

margin:auto;

6、已知宽度,在父容器内利用flex属性实现水平垂直居中(不兼容IE)

效果预览

display:flex;

justify-content:center; /*水平居中*/

align-items:center; /*垂直居中*/

flex-direction:column; /*子元素非水平排列而是垂直排列*/

7、利用100%高度的after、before加上inline-block实现水平垂直居中

效果预览

.parent{

border:1px solid pink;

height:300px;

text-align:center; /*水平居中*/

}

.child{

border:1px solid #ccc;

width:300px;

height:150px;

display:inline-block; /*块级元素具有行内元素的属性,支持元素从左到右排列*/

vertical-align:middle; /*子元素垂直居中*/

}

.parent .before{

border:1px solid yellow;

height:100%;

display:inline-block; /*行内元素具备块级元素的特征,支持设置宽高*/

vertical-align:middle;

}

.parent .after{

border:1px solid orange;

height:100%;

display:inline-block;

vertical-align:middle; /*子元素垂直居中的参照物*/

}

8、利用100%高度的after、before加上inline-block实现水平垂直居中(优化版)

效果预览

.parent{

border:1px solid pink;

height:300px;

text-align:center; /*水平居中*/

}

.child{

border:1px solid #ccc;

width:300px;

display:inline-block;

vertical-align:middle;

}

.parent:before{

content:'';

outline:1px solid transparent; /*元素透明*/

display:inline-block;

height:100%;

vertical-align:middle;

}

.parent:after{

content:'';

outline:1px solid transparent;

display:inline-block;

height:100%;

vertical-align:middle;

}

css样式高居中,CSS居中的几种方式相关推荐

  1. html 清理 多余 样式,webpack去除冗余css样式删除多余css

    webpack打包css时,一般时压缩css,但css有很多用不到类和属性,有什么办法可以除冗余css样式删除多余css,特别是在使用一些bootstrap的前端框架时,可使用purifycss和Pu ...

  2. css设置子盒子水平垂直居中(四种方式)

    css设置子盒子水平垂直居中(四种方式) 1. 使用绝对定位 <!DOCTYPE html> <html><head><meta charset=" ...

  3. CSS清除浮动(float)的三种方式

    标题CSS清除浮动(float)的三种方式 为什么要清除浮动? 浮动的原理是让图片脱离文档流,直接浮在画面上.我们一般布局都是只设置宽度不设置高度,让内容来填充高度.但利用浮动后会让原本填充的高度消失 ...

  4. CSS——(CSS样式规则,CSS样式表单,选择器,常用的CSS属性)

    CSS(Cascading Style Sheets,层叠样式表单)是由W3C所提出,主要的用途是控制网页的外观,也就是定义网页的编排,显示,格式化及特殊效果,有部分功能与HTML重叠. 1.CSS样 ...

  5. hbuilderx 2.9.8 公用css样式_HTML、css项目上手练习

    根据下边的效果图完成一个完整网页的制作 1.新建项目 (1)打开HBuilderX新建一个项目 (2)在index.html文件中添加网页标题:音乐--和谐现场 效果: 2.新建CSS文件 在css文 ...

  6. CSS 样式书写规范,css样式书写规范

    在工作当中css样式是非常重要的,但是咋样书写css样式更重要. 一.css书写规范 1.定位属性:position  display  float  left  top  right  bottom ...

  7. css样式的叠加,CSS的叠加

    CSS中的叠加分为以下三种: 1.上下叠加 CSS部分: #div1{ width:200px; height:50px; margin-bottom:30px; background:#ffff00 ...

  8. bootstrap起步 全局css样式概览 全局css样式_栅格 全局css样式_排版

    http://www.bootcss.com/基本模板 https://v3.bootcss.com/getting-started/#template bootstrap起步 <!DOCTYP ...

  9. php中定义css样式的好处,CSS的优点和缺点分别是什么

    CSS的优点有:丰富的样式定义.易于修改.结构清晰.多页面使用等:CSS的缺点:浏览器支持不一样具有兼容性.不能明确指定继承性 CSS的主要哦作用是为HTML页面添加样式,使得页面更加美观.接下来在文 ...

  10. javafx css样式_使用CSS设置JavaFX饼图样式

    javafx css样式 渲染图表时, JavaFX默认提供某些颜色. 但是,在某些情况下,您想自定义这些颜色. 在此博客文章中,我将使用一个示例来更改JavaFX饼图的颜色,该示例打算在今天下午在2 ...

最新文章

  1. 数字化时代,如何解决企业协同办公的问题?
  2. 3分钟学会Mysql查询之表连接,左连接,右连接,内连接…
  3. [深度学习] Pytorch中RNN/LSTM 模型小结
  4. 关于推送的一些记录要点
  5. 12月数据库榜单,整体排名稳定如昨,Oracle 分数接连下降
  6. matlab求两向量夹角_高等数学之向量代数与空间解析几何知识点与题型总结
  7. 如何将Eclipse设置为中文版
  8. 手机app性能测试简介了解
  9. 视频教程-Three.Js (WebGL ThreeJs) 网页3D实战视频教程-其他
  10. 声艺数字调音台si说明书32路_Soundcraft 声艺 Si Impact 数字调音台 32路数字调音台...
  11. 企业该如何做好IT规划
  12. S4 HANA MRP LIVE
  13. 上传声音 微信小程序_微信小程序录音文件保存,播放
  14. jdk14下载与安装教程(win10)超详细
  15. RRDtool简体中文教程
  16. 学习JavaScript很吃力?开发五年经验带你轻松上路!
  17. 借助新电商平台,湖北荷塘三宝直达全国餐桌
  18. DL4J中文文档/分布式深度学习/操作指南
  19. MySQL日期函数计算年龄
  20. Day11:文件和异常

热门文章

  1. 职业人生讨人喜欢的27个原则
  2. VBA for Excel(一)
  3. 魏晋南北朝修谱之风盛行,家谱数量剧增,为什么会形成这种风气?
  4. MySQL错误代码对照大全
  5. 关于php session锁的机制的个人理解
  6. ios 单例模式 漫画设计模式 1
  7. 搜索引擎优化系统知名乐云seo_整合营销技术丨乐云seo:在SEO搜索引擎优化中,所...
  8. PHP中的时间显示问题
  9. 【无标题】解决source insight 按空格键或者添加新文字内容会覆盖原文字内容
  10. excel波士顿矩阵怎么做_如何用excel做波士顿矩阵图?