day07——css布局解决方案之居中布局
转行学开发,代码100天——2018-03-23
1.水平居中
- 使用inline-block + text-align方法
先将子框由块级元素改为行内块元素,再通过设置行内块元素居中以实现水平居中
即对子框元素:display:inline-block;对父框元素设置:text-align:center;
<div class="parent">
<div class="child">demo</div> </div>
.parent
{
width: 100px;
height: 100px;
text-align: center;
border:1px solid red;
}
.child
{
display: inline-block;
}
兼容性好,能适应ie6,ie7
- 使用table+margin方法
先将子框设置为块级表格显示,即display:table; 再设置子框居中margin:0 auto;
.child
{
display: table;
margin: 0 auto;
}
只设置了子框元素,支持ie8以上;ie6,ie7浏览器中可利用table标签
<table class="parent">
<td class="child">
demo
</td>
</table>
- 使用absolute+transform方法
将子框设置为绝对位置,移动子框,使子框左侧距离相对框左侧边框距离为相对边框宽度的一半,再通过向左移动子框的一半宽度以达到水平居中。设置父框为相对定位。
父框:position:relative
子框: position:absolute left:50%;transform:translateX(-50%);
.parent
{
position: relative;
border:1px solid red;
width: 300px;
height: 300px;
}
.child
{
position: absolute;
left: 50%;
transform: translateX(-50%);
}
居中元素不会对其他元素产生影响,但是transform属于CSS3,兼容性有一定的影响。
- 利用flex+margin
将子框转换为flex item,再设置子框居中。
即父框: display:flex;
子框:margin:0 auto;
.parent
{
display: flex;
border:1px solid red;
width: 100%;
height: 300px;
}
.child
{
margin: 0 auto;
}
缺点是不支持低版本
- 利用flex+justify-content
将父框设置为display:flex;justify-content:cneter;
.parent
{
display: flex;
justify-content: center;
border:1px solid red;
width: 100%;
height: 300px; }
只需设置父框即可,但不支持ie6,ie7低版本。
2.垂直居中
- 使用teble-cell+vertical-slign方法
即将父框转化为一个表格单元格显示,类似于<td>/<th>,再通过设置单元格内容垂直居中以实现垂直居中。
即父框:display:table-cell;
子框:vertical-align:middle;
.parent
{
width: 100%;
height: 300px;
border:1px solid red;
display: table-cell;
vertical-align: middle;
}
- 使用absolute+transform方法
类似于水平居中原理,即先将父框设置为position:relative;再将子框设置为position:absolute;top:50%;transform:translateY(-50%);
.parent
{
position: relative;
width: 100%;
height: 300px;
border:1px solid red;
}
.child
{
position: absolute;
top: 50%;
transform: translateY(-50%);
}
- 使用flex+align-items方法
将父框定位设置为display:flex;设置内容居中,text-align:center;
3.水平垂直居中
- 使用absolute+transform方法,及将水平居中和垂直居中相结合。
设置父框:position:relative;
子框:position:absolute; left:50%;top50%;transform:translate(-50%,-50%);
.parent
{
position: relative;
}
.child
{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
- 使用inline-block+text-align+table-cell+vertical-align
父框:display:table-cell;text-align:center;vertical-align:middle;
子框:display:inline-block;
由于该设置方法将内容表格化,其实并不是真正全局的水平垂直居中。
.parent
{
display: table-cell;
text-align: center;
vertical-align: middle;
width: 100%;
height:300px;
}
.child
{
display: inline-block;
}
- 使用flex+justify-content+align-items
设置父框:
display: flex;
justify-content: center;
align-items: center;
对于全局页面而言是水平垂直居中
.parent
{ width: 100%;
height:300px;
display: flex;
justify-content: center;
align-items: center;
}
以上是设置居中布局常用的方法,可选择使用。
day07——css布局解决方案之居中布局的更多相关文章
- CSS 3层嵌套居中布局
<html> <head> <style type="text/css"> .root{ background-color: red; widt ...
- css CSS常见布局解决方案
CSS常见布局解决方案说起css布局,那么一定得聊聊盒模型,清除浮动,position,display什么的,但本篇本不是讲这些基础知识的,而是给出各种布局的解决方案.水平居中布局首先我们来看看水平居 ...
- 前端开发工程师 - 04.页面架构 - CSS Reset & 布局解决方案 & 响应式 & 页面优化 &规范与模块化
04.页面架构 第1章--CSS Reset 第2章--布局解决方案 居中布局 课堂交流区 水平列表的底部对齐 如图所示,一个水平排列的列表,每项高度都未知,但要求底部对齐,有哪些方法可以解决呢? & ...
- Css学习总结(3)——CSS布局解决方案 - 水平、垂直居中、多列布局、全屏布局
居中布局 水平居中 子元素于父元素水平居中且其(子元素与父元素)宽度均可变. inline-block + text-align <div class="parent"> ...
- CSS布局解决方案(终结版)
作者:无悔铭 https://segmentfault.com/a/1190000013565024 前端布局非常重要的一环就是页面框架的搭建,也是最基础的一环.在页面框架的搭建之中,又有居中布局.多 ...
- day08—css布局解决方案之多列布局
转行学开发,代码100天——2018-03-24 本文将记录CSS布局之垂直布局解决方案. 常见的多列布局包括以下: 1.定宽+自适应 2.两列定宽+一列自适应 3.不定宽+自适应 4.两列不定宽+一 ...
- CSS居中布局总结【转】
居中布局 <div class="parent"> <div class="child">demo</div> </d ...
- CSS居中布局总结
居中布局 <div class="parent"> <div class="child">demo</div> </d ...
- css总结2:Flex 布局教程:Flex 语法(转)
Flex 布局教程:语法篇 网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些 ...
随机推荐
- Linux的tail命令查看文件
小文件一般用cat 查看,但是如果文件内容过多,用cat就不合适了 可以用tail命令 # 默认显示文件最后十行 tail a.txt # 监视文件的尾部内容,默认十行, 可以-n 20显示20行 ...
- Leveldb源码分析--3
http://blog.csdn.net/sparkliang/article/details/8604416
- 2.golang应用目录结构和GOPATH概念
golang 语言有一个GOPATH的概念就是当前工作目录 [root@localhost golang_test]# tree . ├── bin │ └── hello ├── first.g ...
- 初学css display
display:网上查到的资料说是:属性规定元素应该生成的框的类型.例如:网页上的导航栏,使用ul->li那么需要让其排列在一行上可以使用设置li:{float:left:},也可以使用disp ...
- [AtCoder ARC076] F Exhausted?
霍尔定理 + 线段树? 咱学学霍尔定理... 霍尔定理和二分图完美匹配有关,具体而言,就是定义了二分图存在完美匹配的充要条件: 不妨设当前二分图左端集合为 X ,右端集合为 Y ,X 与 Y 之间的边 ...
- 记录几个ui框架
Web前端领域最近几年发展的特别迅速,可以说是百家争鸣.Web前端框架就是为了节约开发成本和时间,一般开发一个项目都会用到前端框架(除非自己有前端开发团队).对于现在的开发者来说,都向着全栈方向发展, ...
- 行人重识别(ReID) ——概述
什么是Re-ID? 行人重识别(Person re-identification,简称Re-ID)也称行人再识别,是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术.广泛被认为是一个图像 ...
- How to Add Memory, vCPU, Hard Disk to Linux KVM Virtual Machine
ref: https://www.thegeekstuff.com/2015/02/add-memory-cpu-disk-to-kvm-vm/ In our previous article of ...
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) - A
题目链接:http://codeforces.com/contest/831/problem/A 题意:给定一个序列,问你这个序列是否是单峰的. 定义单峰的序列为: (序列值的变化趋势)开始是递增的, ...
- zabbix 4.2 安装教程
1.我这里使用的是ali的yum源 #wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7 ...