CSS 布局

网上写的笔记挺全的,随便记录一下,布局重点看flex布局,Grid 网格布局,媒体查询;记一些css函数,选择器。

display 布局属性

每个 HTML 元素都有一个默认的 display 值,具体取决于它的元素类型。大多数元素的默认 display 值为 blockinline

设置元素的 display 属性仅会更改元素的显示方式,而不会更改元素的种类。因此,带有 display: block; 的行内元素不允许在其中包含其他块元素。

position 定位属性

position 属性规定应用于元素的定位方法的类型。

有五个不同的位置值:

  • static
  • relative
  • fixed
  • absolute
  • sticky

元素其实是使用 top、bottom、left 和 right 属性定位的。但是,除非首先设置了 position 属性,否则这些属性将不起作用。

position: static;

HTML 元素默认情况下的定位方式为 static(静态)。

静态定位的元素不受 top、bottom、left 和 right 属性的影响。

根据页面的正常流进行定位:

position: relative;

相对定位

相对于其正常位置进行定位,视图上位置改变,元素位置不变

position: absolute;

绝对定位(父)

相对于最近的定位祖先元素进行定位

视图上位置改变,元素位置也改变,且不会影响其他元素站位(不为元素预留空间)
该父元素必须设置有position属性,可以将position设置为relative
行内元素

position: fixed;

绝对定位(视窗)

相对于视口定位的,这意味着即使滚动页面,它也始终位于同一位置

视图上位置改变,元素位置也改变,且不会影响其他元素站位 (不为元素预留空间)

行内元素

position: sticky;

根据用户的滚动位置进行定位。

起先它会被相对定位,直到在视口中遇到给定的偏移位置为止 - 然后将其“粘贴”在适当的位置

Flexbox 属性

属性描述
display规定用于 HTML 元素的盒类型。
flex-direction规定弹性容器内的弹性项目的方向。
justify-content当弹性项目没有用到主轴上的所有可用空间时,水平对齐这些项目。
align-items当弹性项目没有用到主轴上的所有可用空间时,垂直对齐这些项。
flex-wrap规定弹性项目是否应该换行,若一条 flex 线上没有足够的空间容纳它们。
align-content修改 flex-wrap 属性的行为。与 align-items 相似,但它不对齐弹性项目,而是对齐 flex 线。
flex-flowflex-direction 和 flex-wrap 的简写属性。
order规定弹性项目相对于同一容器内其余弹性项目的顺序。
align-self用于弹性项目。覆盖容器的 align-items 属性。
flexflex-grow、flex-shrink 以及 flex-basis 属性的简写属性。