转行学开发,代码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布局解决方案之居中布局的更多相关文章

  1. CSS 3层嵌套居中布局

    <html> <head> <style type="text/css"> .root{ background-color: red; widt ...

  2. css CSS常见布局解决方案

    CSS常见布局解决方案说起css布局,那么一定得聊聊盒模型,清除浮动,position,display什么的,但本篇本不是讲这些基础知识的,而是给出各种布局的解决方案.水平居中布局首先我们来看看水平居 ...

  3. 前端开发工程师 - 04.页面架构 - CSS Reset & 布局解决方案 & 响应式 & 页面优化 &规范与模块化

    04.页面架构 第1章--CSS Reset 第2章--布局解决方案 居中布局 课堂交流区 水平列表的底部对齐 如图所示,一个水平排列的列表,每项高度都未知,但要求底部对齐,有哪些方法可以解决呢? & ...

  4. Css学习总结(3)——CSS布局解决方案 - 水平、垂直居中、多列布局、全屏布局

    居中布局 水平居中 子元素于父元素水平居中且其(子元素与父元素)宽度均可变. inline-block + text-align <div class="parent"> ...

  5. CSS布局解决方案(终结版)

    作者:无悔铭 https://segmentfault.com/a/1190000013565024 前端布局非常重要的一环就是页面框架的搭建,也是最基础的一环.在页面框架的搭建之中,又有居中布局.多 ...

  6. day08—css布局解决方案之多列布局

    转行学开发,代码100天——2018-03-24 本文将记录CSS布局之垂直布局解决方案. 常见的多列布局包括以下: 1.定宽+自适应 2.两列定宽+一列自适应 3.不定宽+自适应 4.两列不定宽+一 ...

  7. CSS居中布局总结【转】

    居中布局 <div class="parent"> <div class="child">demo</div> </d ...

  8. CSS居中布局总结

    居中布局 <div class="parent"> <div class="child">demo</div> </d ...

  9. css总结2:Flex 布局教程:Flex 语法(转)

    Flex 布局教程:语法篇 网页布局(layout)是 CSS 的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性.它对于那些 ...

随机推荐

  1. 如何让cmd启动始终以管理员身份运行(方法已失效)

    神来之图--实测以下方法已经不能使用,辗转看了好多文章,内容基本如下图,不知道谁转的谁的,总之已经是不能用的文章了.在此记录一下.至于解决办法目前没有找到,之前随笔中有提到新建一个cmd命令提示符的快 ...

  2. Pycharm 修改项目名称后 中括号中出现先前名称怎么解决?

    这时候,你打开工程的路径,会找到一个隐藏文件, .idea  目录删掉他,重新导入Pycharm 就行了. idea记录了一些工程项目信息. 步骤: 1.退出当前工程 2.打开工程路径删除.ideal ...

  3. Djaon 基于 Ajax 的 json 数据传输

    关键参数:contentType:"application/json" data:JSON.stringify({ json数据 }) 再views.py中,使用request.d ...

  4. display:table的几个用法 块级子元素垂直居中

    DIV+CSS的布局已经让表格布局几乎很少用到,除非表格语义性很强的情况. display:table解决了一部分需要使用表格特性但又不需要表格语义的情况, 尤其是DIV+CSS很不方便解决的问题,比 ...

  5. Codeforces - 1199D - Welfare State - 单调栈 / 线段树

    https://codeforc.es/contest/1199/problem/D 其实后来想了一下貌似是个线段树的傻逼题. 单调栈是这样思考的,每次单点修改打上一个最终修改的时间戳.每次全体修改就 ...

  6. 修复线上bug

    1,git branch new_branch 2,git push origin new_branch 以上是线上地址操作,以下是本地仓库操作 3,git fetch 4,git checkout ...

  7. RocksDB存储引擎测试

    一:安装搭建(两个节点都要安装) yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-r ...

  8. maven 打包Scala代码到jar包

    idea的pom.xml文件配置 <dependencies> <dependency> <groupId>org.scala-lang</groupId&g ...

  9. k3 cloud成本调整单

    做了成本调整单中的入库调整单或者出库调整单,进行入库成本核算和出库成本核算,做了入库调整单后在存货收发汇总表(按日期报表)中的收入部分会展示出来: 如果做的是期末余额成本调整,核算时会先删除手工新增的 ...

  10. 二gradle创建SSM项目——Hello word

    一创建gradle web项目 1.以下是我的项目结构web工程+工具module,mapper用来存放mybatis-plus自动生成类,通过 MpGenerator.class 生成.   项目结 ...