所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。下面的图片说明了盒子模型(Box Model):
总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距
总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距
概念
采用Flex布局的元素,称为Flex容器。它的所有子元素自动成为容器成员,称为Flex项目。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。 单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。
容器属性
项目属性
order:定义项目的排列顺序。数值越小排列越靠前,默认为0。
flex-grow:定义项目的放大比例,默认为0。
flex-shrink:定义项目的缩小比例,默认为1。即如果空间不足,该项目将缩小。
flex-basis:项目的长度。合法值:"auto"、"inherit" 或一个后跟 "%"、"px"、"em" 或任何其他长度单位的数字。它的默认值为auto,即项目的本来大小。
flex:是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
建议优先使用这个属性,而不是单独写三个分离的属性,因为浏览器会推算相关值。
display属性设置一个元素应如何显示:
none
可以隐藏某个元素,且隐藏的元素不会占用任何空间。
block
表现为块级元素(block)特性:总是独占一行(其后的元素也必须另起一行显示)。
宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可改变。
inline
表现为内联元素(inline)特性:和相邻的内联元素在同一行。
宽度(width)、高度(height)、内边距的top/bottom和外边距的top/bottom都不可改变。
inline-block
显示为内联块元素,表现为同行显示并可修改宽高内外边距等属性。
常将<ul>元素加上display:inline-block样式,原本垂直的列表就可以水平显示。
flex
显示为弹性布局,可以使用flex等相关的属性。
position属性指定了元素的定位类型。
fixed定位
元素位置相对于浏览器窗口进行固定位置(即使窗口是滚动的它也不会移动)。fixed定位使元素的位置与文档流无关,因此不占据空间。
absolute定位
元素位置是相对于最近的已定位父元素进行固定位置。如果元素没有已定位的父元素,那么它的位置相对于html进行定位。absolute定位使元素的位置与文档流无关,因此不占据空间。
relative定位
元素位置是相对其自身位置进行固定位置。相对定位经常被用来作为绝对定位的容器。relative定位使元素的位置与文档流有关,因此占据空间,但是设置偏移量也不会影响其他元素的位置。
sticky定位
粘性定位的元素是依赖于用户的滚动,元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。即是在 position:relative与 position:fixed定位之间切换。
在目标区域时它的行为就像 position:relative,而当页面滚动超出目标区域时,它的表现就像 position:fixed,它会固定在目标位置。这个特定阈值指的是top、right、bottom、left之一。换言之指定四个阈值其中之一才可使粘性定位生效,否则其行为与相对定位相同。
static定位
元素定位的默认值(即没有定位),遵循正常的文档流对象。静态定位的元素不会受到top、bottom、left、right的影响。
浮动会使元素向左或向右移动,其周围的元素也会重新排列。
清除浮动请使用clear,clear属性指定元素左侧或右侧或两侧不能出现浮动元素。
元素居中对齐
要水平居中对齐一个元素(如 <div>)可以使用margin: auto;。元素通过指定宽度并将两边的空外边距平均分配来达到居中对齐的目的。
文本居中对齐
如果仅仅是为了文本在元素内居中对齐,可以使用text-align: center;。
图片居中对齐
要让图片居中对齐, 可以使用 margin: auto; 并将它设置成块(display: block;)元素。
id选择器:以 "#" 定义。
class选择器:以一个点"."定义。
属性选择器:以"[]"定义。
属性选择器 =, |=, ^=, $=, = 的区别
组合选择器:
伪类和伪元素
未完待续...
参考教程:https://www.runoob.com/css/css-tutorial.html
原文:https://www.cnblogs.com/vpdong/p/10708350.html