css样式高居中,CSS居中的几种方式
本文主要总结几种常见的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居中的几种方式相关推荐
- html 清理 多余 样式,webpack去除冗余css样式删除多余css
webpack打包css时,一般时压缩css,但css有很多用不到类和属性,有什么办法可以除冗余css样式删除多余css,特别是在使用一些bootstrap的前端框架时,可使用purifycss和Pu ...
- css设置子盒子水平垂直居中(四种方式)
css设置子盒子水平垂直居中(四种方式) 1. 使用绝对定位 <!DOCTYPE html> <html><head><meta charset=" ...
- CSS清除浮动(float)的三种方式
标题CSS清除浮动(float)的三种方式 为什么要清除浮动? 浮动的原理是让图片脱离文档流,直接浮在画面上.我们一般布局都是只设置宽度不设置高度,让内容来填充高度.但利用浮动后会让原本填充的高度消失 ...
- CSS——(CSS样式规则,CSS样式表单,选择器,常用的CSS属性)
CSS(Cascading Style Sheets,层叠样式表单)是由W3C所提出,主要的用途是控制网页的外观,也就是定义网页的编排,显示,格式化及特殊效果,有部分功能与HTML重叠. 1.CSS样 ...
- hbuilderx 2.9.8 公用css样式_HTML、css项目上手练习
根据下边的效果图完成一个完整网页的制作 1.新建项目 (1)打开HBuilderX新建一个项目 (2)在index.html文件中添加网页标题:音乐--和谐现场 效果: 2.新建CSS文件 在css文 ...
- CSS 样式书写规范,css样式书写规范
在工作当中css样式是非常重要的,但是咋样书写css样式更重要. 一.css书写规范 1.定位属性:position display float left top right bottom ...
- css样式的叠加,CSS的叠加
CSS中的叠加分为以下三种: 1.上下叠加 CSS部分: #div1{ width:200px; height:50px; margin-bottom:30px; background:#ffff00 ...
- bootstrap起步 全局css样式概览 全局css样式_栅格 全局css样式_排版
http://www.bootcss.com/基本模板 https://v3.bootcss.com/getting-started/#template bootstrap起步 <!DOCTYP ...
- php中定义css样式的好处,CSS的优点和缺点分别是什么
CSS的优点有:丰富的样式定义.易于修改.结构清晰.多页面使用等:CSS的缺点:浏览器支持不一样具有兼容性.不能明确指定继承性 CSS的主要哦作用是为HTML页面添加样式,使得页面更加美观.接下来在文 ...
- javafx css样式_使用CSS设置JavaFX饼图样式
javafx css样式 渲染图表时, JavaFX默认提供某些颜色. 但是,在某些情况下,您想自定义这些颜色. 在此博客文章中,我将使用一个示例来更改JavaFX饼图的颜色,该示例打算在今天下午在2 ...
最新文章
- 数字化时代,如何解决企业协同办公的问题?
- 3分钟学会Mysql查询之表连接,左连接,右连接,内连接…
- [深度学习] Pytorch中RNN/LSTM 模型小结
- 关于推送的一些记录要点
- 12月数据库榜单,整体排名稳定如昨,Oracle 分数接连下降
- matlab求两向量夹角_高等数学之向量代数与空间解析几何知识点与题型总结
- 如何将Eclipse设置为中文版
- 手机app性能测试简介了解
- 视频教程-Three.Js (WebGL ThreeJs) 网页3D实战视频教程-其他
- 声艺数字调音台si说明书32路_Soundcraft 声艺 Si Impact 数字调音台 32路数字调音台...
- 企业该如何做好IT规划
- S4 HANA MRP LIVE
- 上传声音 微信小程序_微信小程序录音文件保存,播放
- jdk14下载与安装教程(win10)超详细
- RRDtool简体中文教程
- 学习JavaScript很吃力?开发五年经验带你轻松上路!
- 借助新电商平台,湖北荷塘三宝直达全国餐桌
- DL4J中文文档/分布式深度学习/操作指南
- MySQL日期函数计算年龄
- Day11:文件和异常