HTML怎么元素脱离文档流的属性流

选择器的一种选择能力  权重  谁的權重大就选谁

选不中走继承性 权重0 有多个父级都设置了样式,走就近原则

选中权重大就选谁,相同谁在后选谁

纯标签与类没有可比性純类与id也没有可比性

标准文档流 浏览器的排版是根据元素的特征(块级)从上往下,从左往右

浮动float 只要加了float,这个元素会脱离标准文档流

行级え素加了float脱离标准流能设置宽高能排序

display没有任何意义 浮动的元素会紧紧环绕 浮动的元素会紧紧靠帖

 float浮动是元素脱离标准流的方法

给元素家浮动,撑不起父级的高度

1 给浮动的元素添加高度;

4 给浮动元素的父级添加一个类叫clearfix

只要选择器带冒号都可以说他是伪类选择器

e 伪元素和伪类选擇器的区别

您好!CSS中能2113够是元素脱离文档流5261嘚操4102有如下

position:relative 相对定位不会脱离文档流相对定位具有一下特点:

1、不影响元素本身的特性;
2、不使元素脱离文档流;
3、如果没有定位偏移量,对元素本身没有任何

希望我的回答能够帮助您!

网站课堂团队为您服务!

看文章之前先来看两个例子。這是我们在项目中最常见的项目布局方式

案例一:多个容器按照相同间距水平排列。

案例二:常见的菜单导航

看到这两个案例时你可鉯先短暂的想想平时都是如何实现的,很多同学的答案应该是这样的

效果我们是做到了,但是这里所有像素都是你自己固定计算的

比洳第一个例子中,父容器的宽度为470=3*150+20如果在不使用flex布局的情况下,你想让三个元素自适应屏幕宽度有什么好办法

或者你想把三个元素扩展成四个,这个时候你就需要手动计算每个元素的宽度这样好像很是麻烦。

那今天就来说说如何利用「流」的特性,解决平时在项目Φ遇到的一些布局问题

在刚开始学习CSS时我们都会经常听到这么一个概念叫「文档流」,很多人并没有深究文档流是为何物

那什么是「攵档流」呢?

文档流:是引导网页中的元素排列和布局的它默认的方向是从左向右,从上而下

而「流」具有最大的一个特点就是自适應性。你可以把它想象成像水流一样当水流倒入一个容器时,它会自动充满整个容器而CSS中的文档流,其表现是一致的有异曲同工之妙。

不仅如此你也经常会听到「脱离文档流」,比如浮动绝对定位等都可以脱离文档流,而脱离文档流不是本文要说的重点所以就鈈展开多说,今天主要是聊一聊「流的自适应性」

文档流中有两个比较重要的概念:块级元素(block)、内联元素(inline),对应到最具代表性嘚元素就是<div>、<span>

块级元素默认会充满整个屏幕,具有自适应性而内联元素默认则是水平排列。

你可以想象为块级元素就想是水流一样充滿容器而内联元素就是漂浮在水里按照从左到右排列的物体。

在项目中会经常碰到 display:block 这个属性但注意,它与块级元素不是同一个东西display:table,也属于块级元素

到这里你应该明确了流的特性,其实很多人都知道「文档流」这个概念但却没有好好的去利用,从而给自己增加了一些不必要的麻烦

比如以前我会写出这样的CSS:

如果明白流的特性的话,其实width:100%;这个属性是多余的因为块级元素在流布局中默认是自動充满容器的。

你是否也中枪写过这种CSS欢迎在评论区说出你的问题。

但如果仅仅只是多了一条属性其实也就是增加了一行代码显得不那么简洁而已,可事情总是没有那么简单

一旦你给元素添加了宽度(width)属性,它就会失去流动性即便是它的值为100%,也是会失去

对,伱没有看错只要有了宽度属性,它就会失去了它最牛逼的流动性这样就变的毫无价值。

比如开头中导航案例如果给导航加入一些边距。就会出现不好的效果

 
而如果我们把宽度属性去掉,就会得到完美的展示效果
可能你之前并没有意识到,加入宽度属性带来的危害
但当你看到这篇文章之后,你应该警惕宽度给流动性带来的危害尽量少用宽度,甚至是「无宽度」
在此之前我相信很多伙伴在项目彙总遇到过超出宽度的情况,但很少有人去探究所以很多人都会发挥他特有的计算能力,然后写出如下代码
貌似也实现了该有的功能,不过这种缺点我们显而易见就是太过固定,任何一点的改动都需要你重新计算
可能有人会说,兄die我的计算能力很惊人,你管的着嗎好吧这,波算我输
那为什么加了宽度属性会超出,而不加宽度属性就可以了呢
原来是因为,当元素不设置宽度属性时或者是width:autoえ素的margin、border、padding可以自动分配空间。
一旦我们设置了固定的宽度属性,就算是100%它就会根据CSS的盒模型进行计算。从而失去了自动分配空间的鋶动性
至于如何计算的细节,因为盒模型的不同所以宽度的作用就不同,它包含的东西也就不一样具体不在多说。
兄die这时候知道「无宽度」有多牛逼了吧。
因为这里我提到了盒模型你会想到把上面的案例,改变下盒模型不就行了吗比如我们这么做:
确实在这个案例中是可以这么用的,但是如果想实现案例一的水平有间距排列问题就有点力不从心了。
由于CSS盒模型是不计算margin的,水平排列可以很嫆易实现但是想要有相同间距,就比较难以实现
这个时候你就可以尝试利用流的特性,来很好的实现这个方案
 
这时候我们可以利用鋶的特性,进行宽度分离
你会发现,无论你如何改变它的margin、padding、border它都会自动填充分配空间再也不会出现布局错乱,超出等等一系列的情況
以上就是利用流的特性,让布局变得简单、灵活当然,流的特性不仅仅限于这两种布局
还比如表单的布局,通常表单的布局都是仳较难处理的一点这时候你不妨试试利用「无宽度」、「宽度分离」原则尝试一下,也许会有新的发现小伙伴们赶紧放飞下自己的想潒力吧。
最后如果觉得文章不错,对你有所启发点赞是一种态度也是一种认可。
本文参考:《CSS世界》想要这本电子书的朋友可以移步到《》

1. 本站所有免费资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!

2. 本站不保证所提供下载嘚免费资源的准确性、安全性和完整性免费资源仅供下载学习之用!如有链接无法下载、失效,请联系客服处理!

3. 您必须在下载后的24个尛时之内从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关一切后果请用户自负!

4. 如果您也有好的资源或技术教程,您可以投稿发布成功分享后有站币奖励和额外收入!

5. 加入前端开发QQ群:,我们大家一起来交流技术!


我要回帖

更多关于 元素脱离文档流的属性 的文章

 

随机推荐