Day14-多列布局,弹性布局

Day14 CSS3 课堂笔记

1 回顾

1.1 变换 transform

1. 变换CSS属性
   transform
   transform-origin
   transform-style
   perspective
   perspective-origin
   backface-visibility

2. 变换方法
   2D变换:
     位移: translateX()  translateY()  translate()
     缩放: scaleX()  scaleY()  scale()
     旋转: rotate()
   3D变换:
     位移: transalteZ() translate3D()
     缩放: scaleZ()  scale3D()
     旋转: rotateX() rotateY() rotateZ()  rotate3D()

1.2 过渡 transition

transition-property
transition-duration
transition-delay
transition-timing-function
transition

1.3 动画 animation

1. 关键帧
   @keyframes 名字 {
   
   }
   
2. 动画CSS属性
   animation-name
   animation-duration
   animation-delay
   animation-timing-function
   animation-itration-count
   animation-direction
   animation-play-state
   animation-fill-mode
   animation

2 多列布局

① 设置给包裹元素的 CSS 属性(共 8 个属性)

CSS 属性名 含义
column-count 设置列数 数字
column-width 设置列宽 长度
columns 同时设置列数和列宽 列数和列宽
column-gap 设置列间距 长度
column-rule-style 设置列边框风格 none:无,默认值。
solid:实线。
dashed:虚线。
dotted:点线。
double:双实线
column-rule-width 设置列边框宽度 长度
column-rule-color 设置列边框颜色 颜色
column-rule 列边框复合属性

同时设置 column-count 和 column-width:

二者,谁计算出来的列数少,就按照哪一个。

② 设置给子元素的 CSS 属性(共 4 个属性)

CSS 属性名 含义
column-span 设置是否跨所有列 none:不跨,默认值。
all:跨所有列。
-webkit-column-break-after 设置该元素后面的断列方式 auto:自动,默认值。
always:强制断列。
avoid:避免断列。
-webkit-column-break-before 设置该元素前面的断列方式 auto:自动,默认值。
always:强制断列。
avoid:避免断列。
-webkit-column-break-inside 设置该元素内部断列方式 auto:自动,默认值。
avoid:避免内部断列。

3 伸缩盒布局

3.1 伸缩容器和伸缩项目

伸缩容器: 给一个元素设置 CSS 属性 display: flex; 或者 display:inline-flex;该元素就是伸缩容器。

在flex布局中,默认的子元素时不换行的,即使装不下,也会通过缩小子元素的宽度来达到在一行中显示

伸缩项目: 伸缩容器的子元素就是伸缩项目。

伸缩项目的特点:

1. 伸缩项目会水平排列,不会脱离文档流。

2. 伸缩项目的默认宽高被内容撑开, 可以完美设置宽高和内外边距,且不会有margin塌陷。

3. 具有伸缩性。

4. 一个元素可以既是伸缩容器又是伸缩项目

3.2 设置主轴方向和换行方式

主轴: 伸缩项目沿着主轴进行排列,默认的主轴方向是水平从左到右。

侧轴: 与主轴垂直的就是侧轴。

① 设置主轴方向

给伸缩容器设置 CSS 属性 flex-direction 可以设置主轴的方向,值如下:

row             主轴方向水平从左到右,默认值。

row-reverse     主轴反向水平从右到左。

column          主轴方向垂直从上到下。

column-reverse  主轴反向垂直从下到上。

② 设置换行方式

给伸缩容器设置 CSS 属性 flex-wrap 可以调整伸缩项目在主轴上的换行方式,属性值如下:

nowrap          不会换行,默认值。

wrap            自动换行。

wrap-reverse    自动换行,翻转行

③ 同时设置主轴方向和换行方式

给伸缩容器设置 CSS 属性 flex-flow 可以同时设置主轴方向和换行方式,该属性是 flex-direction 和 flex-wrap 的复合属性。

3.3 设置伸缩项目在主轴上的对齐方式

给伸缩容器设置 CSS 属性 justify-content,可以设置伸缩项目在主轴上的对齐方式,属性值如下:

flex-start          靠主轴开始方向对齐

flex-end            靠主轴结束方向对齐

center              居中对齐

space-between       中间有间距,两端无间距

space-around        两端间距是中间间距的一半

space-evenly        两端间距与中间间距一样

3.4 设置伸缩项目在侧轴上的对齐方式

① 一条主轴线(伸缩项目在主轴上不换行)

给伸缩容器设置 CSS 属性 align-items,可以设置伸缩项目在侧轴上的对齐方式,属性值如下:

stretch             当不设置高度时,伸缩项目在侧轴上的长度拉伸,默认值

flex-start          靠侧轴开始方向对齐

flex-end            靠侧轴结束方向对齐

center              居中对齐

baseline            文本基线对齐

② 多条主轴线 (伸缩项目在主轴上发生换行)

给伸缩容器设置 CSS 属性 align-content,可以设置伸缩项目在侧轴上的对齐方式,属性值如下:

stretch             伸缩项目在侧轴上的长度拉伸,默认值

flex-start          靠侧轴开始方向对齐

flex-end            靠侧轴结束方向对齐

center              居中对齐

space-between       中间有间距,两端无间距

space-around        两端间距是中间间距的一半

space-evenly        两端间距与中间间距一样

3.5 伸缩项目的伸缩性

① 伸缩项目在主轴上的基准长度 flex-basis

flex-basis 属性需要设置一个长度作为值,默认值是 auto; 如果设置了 basis 长度,伸缩项目在主轴上的长度就按照 basis 设置,原来设置的 width 或者 height 就无效了; 如果 basis 值是 auto,按照原来的 width 或者 height 的设置。

② 扩展比率 flex-grow

flex-grow 需要设置一个数字作为值,表示扩展比率,默认值是 0; 当伸缩容器在主轴方向出现富余长度,各个伸缩项目会按照各自的扩展比例进行扩展。

伸缩项目扩展多少只考虑扩展比率。

③ 收缩比率 flex-shrink

flex-shrink 需要设置一个数字作为值,表示收缩比率,默认值是 1; 当伸缩容器在主轴方向的长度不够时,每个伸缩项目按照各自原来的长度和收缩比率进行收缩。

伸缩项目收缩多少要考虑原来的长度和收缩比率。

④ flex 复合属性

flex 复合属性可以同时设置扩展比率、收缩比例和基准长度。

flex: 扩展比率 收缩比率 基准长度
  • 如果缩写为 flex: 1 , 则其计算值为 1 1 0% (常用,自动瓜分元素空间)
  • 如果缩写 flex: auto , 则其计算值为 1 1 auto
  • 如果flex: none , 则其计算值为0 0 auto
  • 如果 flex: 0 auto 或者 flex: initial , 则其计算值为0 1 auto,即 flex 初始值

3.6 伸缩项目排序

给伸缩项目设置 CSS 属性 order,设置伸缩项目的排序,值是数字,数字越小排序越靠前,可以是负值。

3.7 单独设置伸缩项目在侧轴上的对齐方式

给伸缩项目设置 CSS 属性 align-self,可以单独设置该伸缩项目在侧轴上的对齐方式,属性的值如下:

auto                按照伸缩容器的设置,默认值。

stretch             伸缩项目在侧轴上的长度拉伸

flex-start          靠侧轴开始方向对齐

flex-end            靠侧轴结束方向对齐

center              居中对齐

baseline            文本基线对齐

3.8 伸缩盒相关 CSS 属性总结

① 设置给伸缩容器的属性

CSS 属性名 含义
display 设置为伸缩容器 flex:块级的伸缩容器。
inline-flex:行内的伸缩容器。
flex-direction 设置主轴方向 row:水平从左到右,默认值。
row-reverse:水平从右到左。
column:垂直从上到下。
column-reverse:垂直从下到上。
flex-wrap 设置自动换行 nowrap:强制不换行,默认值。
wrap:自动换行。
wrap-reverse:自动换行并反转行。
flex-flow 同时设置主轴方向和换行方式
justify-content 设置伸缩项目在主轴上的对齐方式 flex-start:靠主轴起点对齐,默认值。
flex-end:靠主轴终点对齐。
center:居中对齐。
space-between:两端没有间距。
space-around:两端间距是中间间距的一半。
space-evenly:两端间距与中间间距一致。
align-items 设置伸缩项目在侧轴上对齐方式(单条主轴线) stretch:伸缩项目在侧轴拉伸,默认值。
flex-start:靠侧轴起点对齐。
flex-end:靠侧轴终点对齐。
center:居中对齐。
baseline:沿基线对齐。
align-content 设置伸缩项目在侧轴上对齐方式(多条主轴线) stretch:伸缩项目在侧轴拉伸,默认值。
flex-start:靠侧轴起点对齐。
flex-end:靠侧轴终点对齐。
center:居中对齐。
space-between:两端没有间距。
space-around:两端间距是中间间距的一半。
space-evenly:两端间距与中间间距一致。

② 设置给伸缩项目的属性

CSS 属性名 含义
flex-basis 设置伸缩项目在主轴上的基准长度 长度,默认值是 auto
flex-grow 设置扩展比率 数字,默认值是 0
flex-shrink 设置收缩比率 数字,默认值是 1
flex 复合属性 同时设置 grow、shrink、basis
order 设置排序 数字
align-self 单独设置该伸缩项目在侧轴上对齐方式 auto:安装伸缩容器的设置,默认值
stretch:伸缩项目在侧轴拉伸。
flex-start:靠侧轴起点对齐。
flex-end:靠侧轴终点对齐。
center:居中对齐。
baseline:沿基线对齐。

作业

1. 伸缩盒页面练习
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容