css居中布局的几种方式
一、水平居中
- 若是行内元素,则直接给其父元素设置
text-align: center即可 - 若是块级元素,则直接给该元素设置
margin: 0 auto即可 - 若子元素包含浮动元素,则给父元素设置
width:fit-content并且配合margin
.parent {
width: -webkit-fit-content;
width: -moz-fit-content;
width: fit-content;
margin: 0 auto;
}
- 使用flex布局的方式,可以轻松实现水平居中,即使子元素中存在浮动元素也同样适用
// flex 2012年版本写法
.parent {
display: flex;
flex-direction: row;
justify-content: center;
} // flex 2009年版本写法
.parent {
display: box;
box-orient: horizontal;
box-pack: center;
}
- 使用绝对定位的方式,再配合CSS3新增的
transform属性
.child {
position: absolute;
left: 50%;
transform: translate(-50%, 0);
}
- 使用绝对定位的方式,再配合
left:0;right:0;margin:0 auto;(此方法需要固定宽度)
.child {
position: absolute;
left: 0;
right: 0;
margin: 0 auto;
width: 200px; // 假定宽度为200px
}
二、垂直居中
- 若元素是单行文本,则直接给该元素设置
line-height等于其父元素的高度 - 若元素是行内块级元素,可以配合使用
display:inline-block;vertical-align:middle和一个伪元素来让内容块居中
.parent::after, .child {
display: inline-block;
vertical-align: middle;
}
.parent::after {
content: "";
height: 100%;
}
- 使用
vertical-align属性并且配合使用display:table和display:table-cell来让内容块居中
.parent {
display: table;
}
.child {
display: table-cell;
vertical-align: middle;
}
- 使用flex布局的方式,可以轻松实现垂直居中,即使子元素中存在浮动元素也同样适用
// flex 2012年版本写法
.parent {
display: flex;
align-items: center;
} // flex 2009年版本写法
.parent {
display: box;
box-orient: vertical;
box-pack: center;
}
- 使用绝对定位的方式,再配合CSS3新增的transform属性
.child {
position: absolute;
top: 50%;
transform: translate(0, -50%);
}
- 使用绝对定位的方式,再配合负值的
margin-top(此方法需要固定高度)
.child {
position: absolute;
top: 50%;
height: 200px; // 假定高度为200px
margin-top: -100px; // 负值的绝对值为高度的一半
}
- 使用绝对定位的方式,再配合
top:0;bottom:0;margin:auto 0;(此方法需要固定高度)
.child {
position: absolute;
top: 0;
bottom: 0;
margin: auto 0;
height: 200px; // 假定高度为200px
}
三、水平垂直居中
- 使用flex布局的方式同样可以轻松实现水平垂直居中
// flex 2012年版本写法
.parent {
display: flex;
justify-content: center;
align-items: center;
} // flex 2009年版本写法
.parent {
display: box;
box-pack: center;
box-align: center;
}
- 使用绝对定位的方式,再配合CSS3新增的
transform属性
.child {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
- 使用绝对定位的方式,再配合使用负值的
margin-top和负值的margin-left(此方法需要同时固定宽度和高度)
.child {
position: absolute;
left: 50%;
top: 50%;
margin-top: -50px; // 负值的绝对值为高度的一半
margin-left: -100px; // 负值的绝对值为宽度的一半
width: 200px; // 假定宽度为200px
height: 100px; // 假定高度为100px
}
css居中布局的几种方式的更多相关文章
- 实现CSS等分布局的4种方式
× 目录 [1]float [2]inline-block [3]table[4]flex 前面的话 等分布局是指子元素平均分配父元素宽度的布局方式,本文将介绍实现等分布局的4种方式 思路一: flo ...
- 实现CSS等分布局的5种方式
前面的话 等分布局是指子元素平均分配父元素宽度的布局方式,本文将介绍实现等分布局的5种方式 float [思路一]float 缺点:结构和样式存在耦合性,IE7-浏览器下对宽度百分比取值存在四舍五入的 ...
- web网页 页面布局的几种方式(转)
web网页 页面布局的几种方式 转载 2017年06月16日 12:19:40 2218 网页基本布局方式: (1)流式布局 Fluid 流布局与固定宽度布局基本不同点 就在于对网站尺寸的侧量单位不同 ...
- css左右布局的几种实现方式和优缺点
记录一下左右布局的实现方式,实现的具体效果是,左侧固定宽度,高度适中等于父元素的高度,父元素的高度由右侧内容决定: html代码如下: <div class="parent" ...
- CSS全屏布局的5种方式
× 目录 [1]float [2]inline-block [3]table[4]absolute[5]flex[6]总结 前面的话 全屏布局在实际工作中是很常用的,比如管理系统.监控平台等.本文将介 ...
- CSS全屏布局的6种方式
前面的话 全屏布局在实际工作中是很常用的,比如管理系统.监控平台等.本文将介绍关于全屏布局的6种思路 float [1]float + calc 通过calc()函数计算出.middle元素的高度,并 ...
- CSS居中布局方案
基本结构 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- css清除浮动的几种方式,哪种最合适?
细心的人可能发现了,写的导航条中存在一个问题,那就是使用了float之后,父级盒子的高度变为0了. 我们来写一个例子来看一下,创建一个父级div,并设置border属性,然后下边创建两个子元素span ...
- HTML/css清除浮动的几种方式
浮动在HTML/CSS布局中十分常见,虽然浮动布局可以实现很多有用的排版效果,但是浮动的元素脱离了文档流,可能造成包含块高度塌陷.下方行框上移等行为.因此在使用浮动实现想要的效果后,通常还需要清除浮动 ...
随机推荐
- Intellij idea 自动生成serialVersionUID
1 什么是UID 网络间的数据传输最终都是要转化为二进制流的方式进行传输,为了方便转换以及进行验证,我们应该把对角序列化,当实现Seriabizable接口时,UID就是一个必须的属性,可以方便进行版 ...
- echarts画中国地图,省市区地图分享
中国地图 四川地图 重庆地图 源码分享: https://github.com/livelyPeng/ec-map
- 【原】iOS开发进阶(唐巧)读书笔记(二)
第三部分:iOS开发底层原理 1.Objective-C对象模型 1.1 isa指针 NSObject.h部分代码: NS_ROOT_CLASS @interface NSObject <NSO ...
- 一个普通类就能干趴你的springboot,你信吗?
先声明本人并不是标题党,如果看了本篇文章并且认为没有得到任何收获,请您随便留言骂我,本人绝不还口,已经对springboot了如指掌大大神,求放过! 不BB了,直接上代码,请各位在自己的springb ...
- mysql免安装包配置
最近在通过zip包配置mysql,mysql版本:5.7.13.配置过程中,踩了一些坑,下面做了一些简单的记录,配置的具体过程如下: 1.将mysql zip包解压,放到指定目录中,在系统环境变量中配 ...
- 第三十一章 System V信号量(二)
用信号量实现进程互斥示例 #include <unistd.h> #include <sys/types.h> #include <stdlib.h> #inclu ...
- 看电影(movie):组合数
Description 到了难得的假期,小白班上组织大家去看电影.但由于假期里看电影的人太多,很难做到让全班看上同一场电影,最后大家在一个偏僻的小胡同里找到了一家电影院.但这家电影院分配座位的方式很特 ...
- sshd服务以及基于口令的远程登陆
ssh用为客户端,主要进行服务器端的连接:sshd用为服务器端 几个常用的命令: systemctl ##服务控制命令 systemctl start sshd ## ...
- Nginx 的进程结构,你明白吗?
Nginx 进程结构 这篇文章我们来看下 Nginx 的进程结构,Nginx 其实有两种进程结构: 单进程结构 多进程结构 单进程结构实际上不适用于生产环境,只适合我们做开发调试使用.因为在生产环境中 ...
- 『题解』Codeforces9D How many trees?
更好的阅读体验 Portal Portal1: Codeforces Portal2: Luogu Description In one very old text file there was wr ...