从零开始学习前端开发 — 12、CSS3弹性布局
一、分栏布局
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弹性布局的更多相关文章
- 从零开始学习前端开发 — 6、CSS布局模型
一.css布局模型 1.流动模型(Flow) 元素在不设置css样式时的布局模型,是块元素就独占一行,是内联元素就在一行逐个进行显示 2.浮动模型(Float) 使用float属性来进行网页布局,给元 ...
- 从零开始学习前端开发 — 11、CSS3选择器
一.基本选择器 1.* 通配符(通用选择器) 2.id选择器 3.class选择器(类选择器) 4.标签选择器(元素选择符) 5.群组选择器 (选择符1,选择符2{...}) 二.层次选择器(关系选择 ...
- 从零开始学习前端开发 — 17、CSS3背景与渐变
一.css3背景切割: background-clip:border-box|padding-box|content-box; 作用: 用来设置背景的可见区域 a) border-box 默认值,背景 ...
- 从零开始学习前端开发 — 16、CSS3圆角与阴影
一.css3圆角: border-radius:数值+单位; 1.设置一个值:border-radius:20px; 四个方向圆角都为20px(水平半径和垂直半径相等) 2.设置两个值 border- ...
- 从零开始学习前端开发 — 15、CSS3过渡、动画
一.css3过渡 语法: transition: 过渡属性 过渡时间 延迟时间 过渡方式; 1.过渡属性(transition-property) 取值:all 所有发生变化的css属性都添加过渡 e ...
- 从零开始学习前端开发 — 14、CSS3变形基础
一.css3变形: transform:rotate(旋转)|scale(缩放)|skew(倾斜)|translate(位移); 注:当多种变形方式综合在一起时,用空格隔开 1.旋转 a) rotat ...
- 从零开始学习前端开发 — 1、HTML基础
一.web标准 web标准-网页制作的标准,它是由一系列标准组成的,主要包含三个方面:结构(html,xhtml),表现(css),行为(javascript) 注:结构和表现的标准由w3c(万维网联 ...
- 从零开始学习前端开发 — 18、BFC
一. BFC的概念 BFC--block formating context的缩写,中文译为"块级格式化上下文" 二.如何触发BFC 1.设置float除none以外的值(left ...
- 从零开始学习前端开发 — 2、CSS基础
一.CSS简介 1.CSS是什么 CSS是Cascading Style Sheets的简称,中文称为层叠样式表.特点:实现了表现与结构相分离 2.css基础语法 css是由选择符和声明两大部分组成 ...
随机推荐
- flask入门篇
flask,Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . Flask简单易学,属于轻量级的,学起来 ...
- asp.net MVC里的 ModelState使用方法
https://www.cnblogs.com/hohoa/p/5839993.html if (!ModelState.IsValid) { string error = string.Empty; ...
- ABP架构学习系列一 整体项目结构及目录
本系列是基于aspnetboilerplate-0.8.4.0版本写的,其中原因是由于较高的版本太抽象难以理解和分析,对于还菜菜的我要花更多的时间去学习. abp的源码分析学习主要来源于 HK Zha ...
- C++\virtual 虚函数、纯虚函数
前提摘要: 虚函数联系到多态,多态联系到继承.所以本文中都是在继承层次上做文章.没了继承,什么都没得谈. 虚函数定义: 指向基类的指针或引用在操作它的多态类(子类/派生类)对象时,会根据不同的类对象, ...
- jBPM学习之利用API完成流程实例
流程引擎对象ProcessEngine是jBPM4所有的Service API之源.在jBPM4中各种服务相互依存,但所有的Service API都从ProcessEngine中获得,由此可见Proc ...
- Ubuntu 安装Appium
1.安装node apt-get install node.js 2.安装npm apt-get install npm 3.安装cnpm npm install -g cnpm 创建链接:ln -s ...
- MYSQL数据库表按月备份,滚动,保留6次备份
要求: 每月1日0点:在不影响业务的情况下,备份整月的数据,保留6次备份. 思路: 基于MYSQL事件功能,每月按时完成操作 RENAME语句具有原子性,新旧表无缝切换 RENAME语句仅修改表定义, ...
- JSP中的“小饼干”Cookie,用来存储数组的方式(下方已String类型的数组为例:)
1.Cookie常用方法中,存储数据的方式: Cookie cookie = new Cookie("key","Value"); response.addCo ...
- Linux磁盘分区/格式化/挂载(树莓派3挂载硬盘)
[前言] 本文将要讲解的功能为Linux环境下对磁盘进行操作.包括分区.格式化.挂载外接移动存储设备等. 该文的写作背景为本人的树莓派需要外接一个固态硬盘作为存储设备,因此,便开始了一系列的折腾. [ ...
- Go 语言打包静态文件
对于 Go 语言开发者来说,在享受语言便利性的同时,最终编译的单一可执行文件也是我们所热衷的.但是,一旦遇到我们需要分发的东西不只有可执行文件的时候,事情就变得稍微有点复杂了,例如,需要分发个默认的配 ...