CSS实现水平垂直居中的方式有哪些?
CSS实现水平垂直居中的方式有哪些?
基本结构样式:
.box {
width: 400px;
height: 400px;
background-color: red;
}
.inner {
width: 100px;
height: 100px;
background-color: blue;
}
<div class="box">
<div class="inner"></div>
</div>
1.利用flex布局
将父元素启动flex布局,并设置
justify-content: center; align-items: center;
。
添加样式:
.box {
display: flex;
justify-content: center;
align-items: center;
}
2.利用flex+margin
父元素设置
display: flex;
,子元素设置margin: auto;
。
添加样式:
.box { display: flex; }
.inner { margin: auto; }
3.利用定位,子绝父相
3.1.利用margin: auto(偏移量都为0)
将子元素的top、left、right、bottom都设置为0,再设置其margin为auto即可。
添加样式:
.box { position: relative; }
.inner {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
3.2.利用平移translate
先设置子元素的top和left都为50%,即父元素宽高的一半,再使用translate往回走自己宽高的一半。
添加样式:
.box { position: relative; }
.inner {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
4.知道具体宽高,通过计算
4.1.子绝父相,直接计算或者使用calc()
添加样式:
.box { position: relative; }
.inner {
position: absolute;
/* 直接计算 */
/* top: 150px;
left: 150px; */
top: calc(50% - 50px);/* 使用calc() */
left: calc(50% - 50px);
}
4.2.利用margin
子元素设置
margin-top
;但是存在父子共用外边距问题,父元素需要设置overflow: hidden;
。
添加样式:
.box { overflow: hidden; }
.inner {
margin: 0 auto;
margin-top: 150px;
}
4.3.利用padding
父元素设置padding,防止父盒子被撑大,需加上
box-sizing: border-box;
。
添加样式:
.box {
box-sizing: border-box;
padding: 150px;
}
5.利用display的table-cell属性值
5.1.利用display+vertical-align
父元素设置
display: table-cell;
和vertical-align: middle;
,子元素设置margin: 0 auto;
。
添加样式:
.box {
display: table-cell;
vertical-align: middle;
}
.inner { margin: 0 auto; }
5.2.利用display+vertical-align+text-align
父元素设置
display: table-cell
以及内容的水平和垂直居中,注意子元素要设置为行内块。
添加样式:
.box {
display: table-cell; /* 此元素会作为一个表格单元格显示 */
vertical-align: middle; /* 把此元素放置在父元素的中部 */
text-align: center;
}
.inner { display: inline-block; }
6.以上方法最终运行结果
CSS实现水平垂直居中的方式有哪些?的更多相关文章
- CSS实现水平垂直居中的1010种方式
转载自:CSS实现水平垂直居中的1010种方式 划重点,这是一道面试必考题,很多面试官都喜欢问这个问题,我就被问过好几次了 要实现上图的效果看似很简单,实则暗藏玄机,本文总结了一下CSS实现水平垂直居 ...
- 你知道CSS实现水平垂直居中的第10种方式吗?
你知道CSS实现水平垂直居中的第10种方式吗? 仅居中元素定宽高适用: absolute + 负 margin absolute + margin auto absolute + calc 居中元素不 ...
- CSS实现水平垂直居中方式
1.定位 核心代码实现请看示例代码中的注释: <!DOCTYPE html> <html lang="zh"> <head> <meta ...
- CSS制作水平垂直居中对齐 多种方式各有千秋
作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收 集了几种不同的方式制作垂直居中方法,但每种方法各有千秋 ...
- CSS制作水平垂直居中对齐
作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收集了几种不同的方式制作垂直居中方法,但每种方法各有千秋呀 ...
- css实现水平 垂直居中
css实现水平居中 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- CSS实现水平垂直居中的数种方法整合
CSS实现水平垂直居中可以说是前端老生常谈的问题了,一般面试官问的时候面试者都会回答出来,但是继续追问还有没有其他方法的时候有可能就说不出来了. 本着学习知识的目的,特在此纪录CSS实现水平垂直居中的 ...
- CSS实现水平|垂直居中漫谈
利用CSS进行元素的水平居中,比较简单,手到擒来:行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可.而撸起垂直居中, ...
- 纯CSS制作水平垂直居中“十字架”
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- C#多个标题头合并
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e) { switch (e.Row.RowType) ...
- 12 — springboot集成JPA — 更新完毕
1.什么是jpa? 一堆不想整在这博客里面的理论知识.这些理论玩意儿就应该自行领悟到自己脑海里 1).JPA & Spring Data JPA 1.1).JPA JPA是Java Persi ...
- IDEA高颜值之最吸引小姐姐插件集合!让你成为人群中最靓的那个崽!
经常有小伙伴会来找TJ君,可能觉得TJ君比较靠谱,要TJ君帮忙介绍女朋友.TJ君一直觉得程序猿是天底下最可爱的一个群体,只不过有时候不善于表达自己的优秀,所以TJ君今天准备介绍几款酷炫实用的IDEA插 ...
- 零基础学习java------day1------计算机基础以及java的一些简单了解
一. java的简单了解 Java是一门面向对象编程语言,不仅吸收了C++的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征.Java语言作为静态 ...
- 【Linux】【Services】【SaaS】Docker+kubernetes(11. 构建复杂的高可用网络)
1. 简介 flannel在实战阶段貌似不能胜任在灾难恢复时候异地的网络,打算用openvswith试试
- Shell脚本实现自动修改IP地址
作为一名Linux SA,日常运维中很多地方都会用到脚本,而服务器的ip一般采用静态ip或者MAC绑定,当然后者比较操作起来相对繁琐,而前者我们可以设置主机名.ip信息.网关等配置.修改成特定的主机名 ...
- JSP常见的状态码
1.404错误 -- 找不到访问的页面或资源 a.URL输入错误: b.未部署项目. 2.500错误 -- JSP页面代码有错误 3.302状态码+200状态码 -- 重定向 4.200状态码 -- ...
- freeswitch APR库线程读写锁
概述 freeswitch的核心源代码是基于apr库开发的,在不同的系统上有很好的移植性. 线程读写锁在多线程服务中有重要的作用.对于读数据比写数据频繁的服务,用读写锁代替互斥锁可以提高效率. 由于A ...
- pipeline parameters指令
目录 一.简介 二.类型 参数类型 多参数 一.简介 参数化pipeline是指通过传参来决定pipeline的行为.参数化让写pipeline就像写函数,而函数意味着可重用.更抽象.所以,通常使用参 ...
- 如何查看Python中所有关键字
一.保留字即关键字,我们不能把它们用作任何标识符名称.Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字 import keyword print(keyword.kwli ...