CSS进阶 | 青训营笔记

74 阅读2分钟

前端训练营 Day 7

盒子模型

  可将所有 HTML 元素看成一个盒子(Box),每个盒子具有 Margin(外边距)、Border(边框)、Padding(内边距)和 Content(内容)。

  Margin 和 Padding 是透明的,可使用marginpadding属性指定其宽度。参数为四个、两个或一个参数,顺序为上右下左、上(下)右(左)或全部,值可使用auto、具体的宽度(px)或百分比。

  元素的边框(Border)可以设置样式(border-style),如虚线边框(dashed)、实线边框(solid)、3D嵌入边框(inset)等。

  HTML中的元素可通过display改变展示方式(块级元素block、内联元素inline、内联块inline-block、不展示none

  1. display:none可以完全隐蔽一个元素;visibility:hidden可以不显示该元素的内容但占据原本大小的空间

  position可改变元素的定位方式:

  • static:默认值,不会受到 topbottomleftright的影响
  • fixed:元素位置相对浏览器固定
  • relative:元素位置相对其“正常”位置有偏差
  • absolute:元素位置相对于其附近固定元素固定
  • sticky:粘性定位,依赖于用户滚动

Flex 布局

  Flex(Flexible Box)是 CSS3 引入的一种布局方式。采⽤ Flex 布局的元素,称为 Flex 容器(Flex Container),其子元素自动转化为 Flex 元素(Flex Item)。

  使用display:flexdisplay:inline-flex将一个元素转化为 Flex 容器,此时其子元素受 Flex 布局影响但其子元素的子元素不受影响。

  在 Flex Container 中有两条轴,分别为水平的主轴(main axis)与竖直的交叉轴(cross axis)。项目默认按主轴排列,可使用flex-direction属性修改。

  Flex Container/Item 的其他属性如下:

属性描述
display指定 HTML 元素的盒子类型
flex-direction指定弹性盒子中子元素的排列方式
flex-wrap设置当弹性盒子的子元素超出父容器时是否换行
flex-flowflex-direction 和 flex-wrap 两个属性的简写
justify-content设置弹性盒子中元素在主轴(横轴)方向上的对齐方式
align-items设置弹性盒子中元素在侧轴(纵轴)方向上的对齐方式
align-content修改 flex-wrap 属性的行为,类似 align-items,但不是设置子元素对齐,而是设置行对齐
order设置弹性盒子中子元素的排列顺序
align-self在弹性盒子的子元素上使用,用来覆盖容器的 align-items 属性
flex设置弹性盒子中子元素如何分配空间
flex-grow设置弹性盒子的扩展比率
flex-shrink设置弹性盒子的收缩比率
flex-basis设置弹性盒子伸缩基准值

本文若有不足之处,欢迎纠正(≧^.^≦)喵~
我的其他笔记,可在掘金或 Github( github.com/DoudiNCer/I… )阅读