一、分栏布局

1.设置栏数column-count:数值;

2.设置每栏的宽度column-width:数值+单位;

注:当设置了column-width,column-count会失效,二者设置其一即可

3.设置栏间距column-gap:数值+单位;

4.设置栏间隔线column-rule:5px solid|dashed|dotted black;

5.设置是否跨栏显示column-span:all(跨栏)|none(不跨栏);

注:a)给需要跨栏显示的元素设置该属性

b) 该属性只有chrome浏览器支持


二、弹性布局

说明:

(1) 当给元素设置了display:flex;后,该元素就成为了弹性盒

(2) 当父元素设置了display:flex;后,子元素的float,clear,vertical-align将会失效

(3) 我们将设置display:flex;属性的父元素称为flex容器,里面所有的子元素称为容器成员或flex项目

(4) 当设置了display:flex;后会随之产生两根轴线:主轴和交叉轴

Flex容器属性

1.设置主轴方向语法: flex-direction:row|row-reverse|column|column-reverse;

row 默认值,主轴在水平方向,起点在左端

row-reverse 主轴在水平方向,起点在右端

column 主轴在垂直方向,起点在上沿

column-reverse 主轴在垂直方向,起点在下沿

2.设置flex容器是单行显示还是多行显示语法: flex-wrap:nowrap|wrap|wrap-reverse;

nowrap 默认值,不换行

wrap 换行

wrap-reverse 换行,但行的顺序会倒过来

注:该属性主要针对主轴在水平方向上的时候

3.flex-flow是flex-direction和flex-wrap的简写方式默认值为:flex-flow:row nowrap;

4.设置主轴的对齐方式语法: justify-content:flex-start | flex-end | center | space-between | space-around;

a)flex-start 默认值,类似于左浮动

b)flex-end 类似于右浮动

c)center 居中对齐

d)space-between flex项目两端对齐,中间间隔相等

e)space-around flex项目两侧的间隔相等

5.设置交叉轴对齐方式align-items:flex-start|flex-end|center|baseline|stretch;

a) flex-start 对齐交叉轴的起点

b) flex-end 对齐交叉轴的终点

c) center 沿交叉轴方向居中对齐

d) baseline 沿flex项目第一行文字基线对齐

e) stretch 当flex项目没有设置高度或为auto时,将占满整个父元素的高度

注:使用弹性盒如何实现不定宽高元素在父元素中水平垂直都居中

方法如下:

父元素{

display:flex;
justify-content:center;
align-items:center;
}

如何使元素在屏幕窗口水平垂直都居中,设置如下:

html,body{height:100%;}

body{

display:flex;
justify-content:center;
align-items:center;
}

6.设置多根轴线的对齐方式: align-content:flex-start|flex-end|center|space-between|space-around|stretch;

a) flex-start 对齐交叉轴的起点

b) flex-end 对齐交叉轴的终点

c) center 以交叉轴为参考,居中对齐

d) space-between 多根轴线两端对齐,轴线之间间隔相等

e) space-around 轴线两侧的间隔相等

f) stretch 如果flex项目没有设置高度或为auto,将会均分父元素的高度

注: 当只有一根轴线时,此属性不起作用

Flex项目属性

1.设置flex项目的排列顺序order:数值; (值越小越靠前)

2.设置某个flex项目不同于其他flex项目的交叉轴对齐方式(重写父元素的align-items属性): align-self:flex-start|flex-end|center|baseline|stretch;

3.设置flex项目的放大比例: flex-grow:0 | 数值;

注:当父元素存在剩余空间时,默认值为0,不放大

4.设置flex项目的缩小比例: flex-shrink:1|数值;

注:当父元素空间不足时,默认flex项目等比例缩小,flex-shrink默认值为1

flex-shrink:0; 即使父元素空间不足,flex项目也不缩小

5.设置flex项目占据主轴的空间flex-basis:数值+单位;

注:类似于给元素设置宽高;

6.flex属性是flex-grow,flex-shrink,flex-basis的简写方式默认值: flex:0 1 auto;

flex:1;的两个应用

a) 等比例分配空间

b) 分配剩余空间

从零开始学习前端开发 — 12、CSS3弹性布局的更多相关文章

  1. 从零开始学习前端开发 — 6、CSS布局模型

    一.css布局模型 1.流动模型(Flow) 元素在不设置css样式时的布局模型,是块元素就独占一行,是内联元素就在一行逐个进行显示 2.浮动模型(Float) 使用float属性来进行网页布局,给元 ...

  2. 从零开始学习前端开发 — 11、CSS3选择器

    一.基本选择器 1.* 通配符(通用选择器) 2.id选择器 3.class选择器(类选择器) 4.标签选择器(元素选择符) 5.群组选择器 (选择符1,选择符2{...}) 二.层次选择器(关系选择 ...

  3. 从零开始学习前端开发 — 17、CSS3背景与渐变

    一.css3背景切割: background-clip:border-box|padding-box|content-box; 作用: 用来设置背景的可见区域 a) border-box 默认值,背景 ...

  4. 从零开始学习前端开发 — 16、CSS3圆角与阴影

    一.css3圆角: border-radius:数值+单位; 1.设置一个值:border-radius:20px; 四个方向圆角都为20px(水平半径和垂直半径相等) 2.设置两个值 border- ...

  5. 从零开始学习前端开发 — 15、CSS3过渡、动画

    一.css3过渡 语法: transition: 过渡属性 过渡时间 延迟时间 过渡方式; 1.过渡属性(transition-property) 取值:all 所有发生变化的css属性都添加过渡 e ...

  6. 从零开始学习前端开发 — 14、CSS3变形基础

    一.css3变形: transform:rotate(旋转)|scale(缩放)|skew(倾斜)|translate(位移); 注:当多种变形方式综合在一起时,用空格隔开 1.旋转 a) rotat ...

  7. 从零开始学习前端开发 — 1、HTML基础

    一.web标准 web标准-网页制作的标准,它是由一系列标准组成的,主要包含三个方面:结构(html,xhtml),表现(css),行为(javascript) 注:结构和表现的标准由w3c(万维网联 ...

  8. 从零开始学习前端开发 — 18、BFC

    一. BFC的概念 BFC--block formating context的缩写,中文译为"块级格式化上下文" 二.如何触发BFC 1.设置float除none以外的值(left ...

  9. 从零开始学习前端开发 — 2、CSS基础

    一.CSS简介  1.CSS是什么 CSS是Cascading Style Sheets的简称,中文称为层叠样式表.特点:实现了表现与结构相分离 2.css基础语法 css是由选择符和声明两大部分组成 ...

随机推荐

  1. Windows Server服务器日常管理技巧

    高效管理服务器一直离不开有效的服务器管理技巧,尽管你已经掌握了不少这方面的技巧,但服务器还有许许多多的技巧在等着你的总结,等着你的挖掘;这不,下面的一些服务器管理窍门就是笔者在最近的工作中总结出来的, ...

  2. Redis在APP中的应用

    前言 redis 是内存型数据库,读取data速度远快于mysql和sqlserver,如果将APP中列表信息或者一些常被访问的信息转存至内存上,然后APP通过redis读取内存上的数据,那么APP的 ...

  3. Chrome不支持本地Ajax请求,解决办法

    Chrome不支持本地Ajax请求,当我在.html文件中访问.json文件时就会出现这个问题,就是说这个时候不能加载这个.html文件. 解决方式 打开Chrome快捷方式的属性中设置: 右击Chr ...

  4. Java点滴之Java概述

    写在前面的话 2017年对我来说真是多灾多难的一年,在这过去的一年里发生的种种不幸,促使我下定决心一切要重新开始.在去年的夏天从公司裸辞后,来到了一个陌生的城市开启了新的求职历程,万万没想到的是,求职 ...

  5. JavaScript调试技巧

    熟悉工具可以让工具在工作中发挥出更大的作用.尽管江湖传言 JavaScript 很难调试,但如果你掌握了几个技巧,就能用很少的时间来解决错误和bug. 文中已经列出了14个你可能不知道的调试技巧,但是 ...

  6. Linux小记

    一.在vim中如何查看正在编辑的文件名 在正常模式下: :f 或 CTRL+G 查看文件的路径 用:!pwd 可以看当前的详细路径. 二.crontab 在crontab中, 命令crontab -e ...

  7. 使用 mysql PDO 防止sql注入

    技巧: 1. php升级到5.3.6+,生产环境强烈建议升级到php 5.3.9+ php 5.4+,php 5.3.8存在致命的hash碰撞漏洞. 2. 若使用php 5.3.6+, 请在在PDO的 ...

  8. sql sever分组查询和连接查询

    分组查询select 查询信息 from 表名where 条件group by 按照列分组(可多个 ,隔开)order by 排序方式(查询信息如果列名和聚合函数同时出现,要么在聚合函数中出现,要么就 ...

  9. dlib人脸关键点检测的模型分析与压缩

    本文系原创,转载请注明出处~ 小喵的博客:https://www.miaoerduo.com 博客原文(排版更精美):https://www.miaoerduo.com/c/dlib人脸关键点检测的模 ...

  10. Java 与C++的各种优势与弱点--学习更新中

    时隔两年没有怎么碰Java了,最近开始学习回顾下.在这里记录下学习的点滴,持续更新...希望对c++\java等不同语言有较为清晰的认识,至少不要学完以后,哪一个都不会了... Java 优势: 1. ...