css脱离文档流到底是什么意思,脱离文档流就不占据空间了吗

html-css017

css脱离文档流到底是什么意思,脱离文档流就不占据空间了吗,第1张

脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位。需要注意的是,使用float脱离文档流时,其他盒子会无视这个元素,但其他盒子内的文本依然会为这个元素让出位置,环绕在周围。而对于使用absolute

positioning脱离文档流的元素,其他盒子与其他盒子内的文本都会无视它。

更准确地一点说,是一个元素脱离文档流(out

of

normal

flow)之后,其他的元素在定位的时候会当做没看见它,两者位置重叠都是可以的。

脱离文档流不是指该元素从dom树中脱离,用浏览器的审查元素就可以看到脱离文档流的元素(例如被float了)依然会出现在dom树里

CSS2.1定义了 4 中布局方式

给任意元素设置 display:flex,弹性布局就会被创建,flex 的子项会发生变化.

flex-direction属性用来控制 flex 子项的整体布局方向,决定是从左往右排序.flex-dirction属性有以下语法

flex-wrap属性用来控制 flex 子项单行显示还是换行显示,以及在换行显示情况下,没一行内容是否在垂直方向的反向显示.

flex-flow属性是 flex-dirction属性和 flex-wrap属性的缩写.表示弹性布局的流动性特性

CSS 在 flex 中属性名称基本上是几个固定单词的组合,且这些单词在整个 CSS 世界中是通用的含义

justify-content 属性在弹性布局中常用的语法如下

align-item和 align-self属性的一个区别是 align-self属性是设置在具体的某个 flex 子项上,而 flex-items 属性是设置在 flex 容器上,器控制 flex 子项的垂直对齐方式,align-self默认值是 auto,其余的数据值个 align-items 属性值一致.属性如下

align-content属性和 align-items属性的区别在于 align-items属性设置的是每一个 flex 子项的垂直对齐方式,而 align-content 属性是将所有作为一个整体进行垂直对齐设置.align-content 属性如下所示

我们可以通过 order 属性来改变 flex 子项的顺序位置.order 属性越小优先级别越高

flex 属性是弹性布局的精髓,因此弹性布局就是 flex 属性的作用.flex 属性是 flex-grow flex-shinrk flex-basic这 3 个属性的缩写.我们先了解下flex 常用的几个声明

表示的是什么意思?

flex-basic 属性用来表示基础宽度

flex-grow 属性表示宽度还有剩余的时候

flex-shrink 属性表示宽度不足的时候

flex:0等同设置 flex:0 1 0%,flex:none等同设置了 flex:0 0 auto.

如果没一行的行数是固定的,则可以使用两种方式实现最后一行对齐

要实现最后一行对齐,理论上最好使用 gap 属性设置间隙

如果每一行的行数不固定,则上面的方法都失效,需要使用其他的方式实现最最后一行对齐.可以使用空白标签进行填充占位,具体的占位数量由最多列数的个数决定

因为CSS是一门非常奇怪的语言。他有两条不同的学习曲线,一条是入门以后直线上升然后慢慢变得平坦,一条是稳定上升的斜线。打个比方,修一台电视机我们有两种方法: 一种是在外壳上敲敲打打,找到敲哪里敲几下的规律;另外一种是看一本电视机原理的大厚书,然后去拆开修。对应到CSS就是不停地试各种排列组合和读规范读权威指南。这两种方法其实没有高下之分,只有适用范围。如果只是用CSS做很简单的工作,那试一试很经济实惠,但如果经常跟CSS打交道,那么读规范就会节省大量跳坑排坑的时间。高票答案说CSS不正交化我不是很赞同,他举的三个例子都清楚写在了规范和权威指南里面。如果先读规范会觉得这些行为是自然而然的。我本人同时写JavaScript, Java, CSS, Python,在学习C++,但是并没有感觉到高票的所谓理性和感性的区别。你觉得它没有规律,也许只是因为你没有好好读规范。CSS是一门正儿八经的编程语言,请拿出你学C++或者Java的态度对待它,该看书看书,该查文档查文档。