### 居中布局 ###


一、水平居中

* 要求:子元素于父元素水平居中且其(子元素与父元素)宽度均可变。

```` javacript

<div class="parent">
          <div class="child">Demo</div>
    </div>

````

1. inline-block + text-align

.child {
            display: inline-block;
          }
          .parent {
            text-align: center;
          }
2. table + margin

.child {
            display: table;
            margin: 0 auto;
          }
        
3. absolute + transform

.parent {
            position: relative;
          }
          .child {
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
          }
4. flex + justify-content

.parent {
            display: flex;
            justify-content: center;
          }
5. table-cell + vertical-align
    
        .parent {
            display: table-cell;
            vertical-align: middle;
          }
6. flex + align-items

.parent {
            display: flex;
            align-items: center;
          }

二、水平与垂直居中

* 要求: 子元素于父元素垂直及水平居中且其(子元素与父元素)高度宽度均可变。

<div class="parent">
          <div class="child">Demo</div>
        </div>

1.inline-block + text-align + table-cell + vertical-align

.parent {
        text-align: center;
        display: table-cell;
        vertical-align: middle;
      }
      .child {
        display: inline-block;
      }
2.absolute + transform

.parent {
        position: relative;
      }
      .child {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
      }

3.flex + justify-content + align-items

.parent {
        display: flex;
        justify-content: center;
        align-items: center;
      }

三、多列布局

* 一列定宽,一列自适应

<div class="parent">
          <div class="left">
            <p>left</p>
          </div>
          <div class="right">
            <p>right</p>
            <p>right</p>
          </div>
        </div>

1.float + margin

.left {
        float: left;
        width: 100px;
      }
      .right {
        margin-left: 100px
        /*间距可再加入 margin-left */
      }

2.float + overflow
    
    .left {
        float: left;
        width: 100px;
      }
      .right {
        overflow: hidden;
      }

3.table

.parent {
        display: table;
        width: 100%;
        table-layout: fixed; //table 的显示特性为每列的单元格宽度合一定等与表格宽度。 table-layout: fixed; 可加速渲染,也是设定布局优先。
      }
      .left {
        display: table-cell;
        width: 100px;
      }
      .right {
        display: table-cell;
        /*宽度为剩余宽度*/
      }

4.flex

.parent {
        display: flex;
      }
      .left {
        width: 100px;
        margin-left: 20px;
      }
      .right {
        flex: 1;
        /*等价于*/
        /*flex: 1 1 0;*/
      }

* 两列定宽,一列自适应

````
        <div class="parent">
          <div class="left">
            <p>left</p>
          </div>
          <div class="center">
            <p>center<p>
          </div>
          <div class="right">
            <p>right</p>
            <p>right</p>
          </div>
        </div>
````

.left, .center {
        float: left;
        width: 100px;
        margin-right: 20px;
      }
      .right {
        overflow: hidden;
        /*等价于*/
        /*flex: 1 1 0;*/
      }

[github地址:https://github.com/Hasyou99/Daily-summary](https://github.com/Hasyou99/Daily-summary)

css布局方式总结的更多相关文章

  1. 细谈CSS布局方式

    一.CSS布局方式分类 [1].默认文档流方式:以默认的html元素的结构顺序显示 [2].浮动布局方式:通过设置html的float属性显示,值:none不浮动.left对象向左浮动,而后面的内容流 ...

  2. 前端开发周报: CSS 布局方式方式与JavaScript数据结构和算法

    前端开发周报:CSS 布局方式与JavaScript动画库 1.常见 CSS 布局方式详见: 一些常见的 CSS 布局方式梳理,涉及 Flex 布局.Grid 布局.圣杯布局.双飞翼布局等.http: ...

  3. CSS布局方式--inline-block 布局

    布局其实就是想办法怎样将一些元素横向的排列起来,纵向由于块级元素的存在会自动占据一行. inline-block 元素会占据一行而且可以调整宽高很适合将这些元素排列在一行,而且使用 inline-bl ...

  4. css 布局方式

    布局方式 1 布局:设置元素在网页中的排列方式及显示效果 2 分类: 1 标准流布局(文档流,普通流,静态流) 是默认的布局方式 特点:将元素按照书写顺序及元素类型,从上至下,从左至右排列 2 浮动布 ...

  5. CSS布局方式

    1.内边距 padding <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  6. CSS 布局入门

    概述 Web 兴起之后,关于CSS的介绍和学习资料已经铺天盖地. 本文不涉及具体的CSS语法之类的,而是希望从初学者的角度,让没有接触或很少接触CSS的人能快速的了解 CSS 到底是什么以及如何使用. ...

  7. [转]基于display:table的CSS布局

    当IE8发布时,它将支持很多新的CSS display属性值,包括与表格相关的属性值:table.table-row和table-cell,它也是最后一款支持这些属性值的主流浏览器.它标志着复杂CSS ...

  8. css Table布局:基于display:table的CSS布局

    两种类型的表格布局 你有两种方式使用表格布局 -HTML Table(<table>标签)和CSS Table(display:table 等相关属性). HTML Table是指使用原生 ...

  9. 还在为垂直居中苦恼?CSS 布局利器 flexbox 轻轻松松帮你搞定

    传统的 CSS 布局方式是基于盒模型(它是根据盒子与父盒子以及兄弟盒子的关系确定大小和位置的算法),实现时依赖于 block, inline, table, position, float 这些属性, ...

随机推荐

  1. FromData获取表单数据

    一般想要不刷新页面提交数据时,可以使用ajax提交.如果数据量不大可以自己写json数据用ajax提交到后台服务,但是数据量多且需要动态添加数据时,自己写json格式数据就有点麻烦了,这时候就需要Fo ...

  2. BeautifulSoup的基本用法

    # -*- coding:UTF-8 -*- from urllib import request from bs4 import BeautifulSoup import re import sys ...

  3. LeetCode(95): 不同的二叉搜索树 II

    Medium! 题目描述: 给定一个整数 n,生成所有由 1 ... n 为节点所组成的二叉搜索树. 示例: 输入: 3 输出: [   [1,null,3,2],   [3,2,null,1],   ...

  4. 【mongo】centos6.9安装mongo2.6.3

    参考:http://www.haorooms.com/post/3m 注意:centos6上就不要装mongo3了,容易出错. 1. 下载 curl -O http://downloads.mongo ...

  5. getComputedStyle()用法详解

    那如果元素即没有在style属性中设置宽高,也没有在样式表中设置宽高,还能用getComputedStyle或currentStyle获取吗?答案是getComputedStyle可以,current ...

  6. C++ Primer 笔记——基本内置类型

    1.算术类型分为两类:整型和浮点型.算术类型的尺寸在不同机器上有所差别,下表列出了C++标准规定的尺寸的最小值.同时允许编译器赋予这些类型更大的尺寸. 一个char的大小和一个机器字节一样. 一个in ...

  7. MySQL修改数据表存储引擎的3种方法介绍

    这篇文章主要介绍了MySQL修改数据表存储引擎的3种方法介绍,分别是直接修改.导出导入.创建插入3种方法, 可以参考下   MySQL作为最常用的数据库,经常遇到各种各样的问题.今天要说的就是表存储引 ...

  8. youtube-dl更新出错解决办法

    youtube-dl更新命令: youtube-dl -U 更新报错:无法识别当前版本 ERROR: can't find the current version. Please try again ...

  9. postgresql 10 ssl 双向认证

    https://blog.csdn.net/dna911/article/details/82819637

  10. java去除html代码中含有的html、js、css标签,获取文字内容

    https://blog.csdn.net/u010882234/article/details/80585175