百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

技术干货:CSS的浮动和定位,我是这么来理解的!

myzbx 2025-02-08 12:04 17 浏览

标准流的默认特性

1、分行、块级元素,并且能够dispay转换。

2、块级元素(block):默认独占一行,不能并列显示,能够设置宽、高,宽度为父盒子的100%。例如:div、p、标题元素(h1-h6)、列表元素(ul li、dl dt dd)

3、行内元素(inline):默认并排显示,不能设置宽、高,宽度为内容的宽度。例如:span、a、b、i

4、margin-bottom 和margin-top 塌陷,以最大值为准。

脱标的元素的特性

只要是脱离了标准流,元素都是不区分行、块的,体现在任何元素都可以设置宽、高了。都有了收缩的 性质,就是不设置宽度,就自动缩减为里面内容的宽度。

浮动的元素有贴边的性质,绝对定位的元素可以自由定位。

1.盒子的浮动(float 属性):

在标准流中,一个块级元素在水平方向会自动伸展,直到包含它的元素的边界;在竖直方向和兄弟元素一次排列。不能并排。

CSS的float属性默认为none,将float属性设置为left或者right后,元素会向其父元素的左侧或右侧紧靠,同时默认情况下,盒子的宽度不再伸展,而是根据盒子里面的内容的宽度来确定。 脱离了标准文件流。(但是,本显示会占据一定的空间)。

这样未填满的部分就会进行填充。 为了消除影响,不让后面的元素因为浮动产生的这些空间进行填充,使用clear属性进行消除浮动对后面的元素造成的影响:

clear 属性:

clear属性除了可以设置right、left 也可以设置为both,表示同时消除左右两边的影响。

clear属性设置要放到 float 之后的 要消除float影响的兄弟div里面,而不是float本身所在的div。

设置上clear之后,该div会把前面设置float的div 当做块级div来看待。

使用示例:

因为浮动的元素都不在标准流里,如果盒子内部元素都是浮动元素,父级div 缩成一条。

解决方法,在后面加一个空div 并清除 浮动影响.

高度消失后,父级将只保留margin和border的高度,与父级平行的div 将会紧挨着父级显示,显示漂浮的内容 会占据空间,后面div内容 会依次紧挨着漂浮的内容显示。

脱离了标准流,但内容显示上 会被其他元素包围。(其他元素可以“趁空而入”)

浮动可以使块级元素并排显示,用于页面布局。

2.盒子的定位(position):

static (标准流中默认)

盒子按照标准流(包括浮动方式)进行布局。

relative (位于标准流中):

以标准流的排版方式为基础,然后使盒子相对于它在原本的的标准位置偏移指定的距离。相对定位的盒子,仍在标准流中,它后面的盒子仍以标准流方式对待它。

只要标识该div position:relative ;使用 top left 等属性 可以设置偏移量,与父级元素的定位方式无关。

总结:

1.使用相对定位的盒子仍在标准流中,它对付款和兄弟盒子没有任何影响。

2.使用相对定位的菏泽仍在标准流中,它对父块和兄弟盒子没有任何影响。

对浮动的盒子使用相对于定位 也是一样的

absolute (非标准流)

绝对定位,盒子位置以它的包含框为基准进行偏移,绝对定位的盒子从标准流中脱离,其他盒子就当这个盒子不存在一样。

设置position后:div 脱离标准流,宽度自动按内容宽度,覆盖在后面的元素之上。

设置top,left等属性:

top:5px;

跑出了父级的div ,

把father div块 设置成相对定位:

1.使用绝对定位的盒子 以它的”最近“的一个”已经定位“的祖先元素 为基准进行偏移,如果没有定位定位的祖先元素, 那会以浏览器窗口进行定位。

已经定位:position 属性被设置,且被设置的不是 static的任意一种方式。

最近,离该节点最近的一个已经定位的节点。

2.绝对定位的框从标准流中脱离,这意味着对其后兄弟盒子的定位没有影响,其他盒子就好像这个盒子不存在一样。

通过实验可知道:

如果设置了绝对定位,而没有设置偏移属性,那么它仍将保持原来的位置,这个性质可以用于需要使某个元素脱离标准流,而仍然希望保持原来的位置的情况。

fixed (以窗口为基准)

固定定位,基准不是祖先元素 而是浏览器窗口 或者其他县市设备的窗口。

z-index:

当块被设置了position属性时,该值便可设置各块之间的重叠高低关系,默认z-index值为0

盒子的display属性:

none :此元素不会被显示。

block:显示为块级元素,前后会带有换行符。

inline:默认 此元素被显示为内联元素,元素前后没有换行符。

list-item:作为列表显示

图书推荐:大家可以参考《CSS彻底研究》来进行学习,如需相关资料请留言!

相关推荐

MORROR ART:毫无音质可言,真的只是好看而已...

今天早上我在微博上发了一条短视频,内容是某款网红音箱正在放声歌唱——这玩意就是此前曾经在网上挺火的所谓“悬浮歌词音箱”。这款产品是我同事收到的礼品,但她嫌在家里放着没用,所以拿到公司里做我们的拍摄道具...

「JS优化篇」你的 if - else 代码肯定没我写的好

作者:小生方勤转发链接:https://mp.weixin.qq.com/s/JzOQ_OwAYoP5Ic1VBtCZNA前言最近部门在对以往的代码做一些优化,我在代码中看到一连串的if(){}el...

细聊微内核架构在前端的应用「干货」

作者:semlinker转发链接:https://mp.weixin.qq.com/s/ywc98dS4TVB4t3L2tIyk8g一、微内核架构简介1.1微内核的概念微内核架构(Microke...

ThreeJS 入门教程(一) 是选择桌面的固守还是云原生?

导读:最近我购置了一台新的电脑,硬盘空间只有1T。我很担心这个电脑还能用多久。性能限制或者空间的限制,都使得在未来3-5年内,这个电脑会被淘汰。但是,基于云APP的使用,老的电脑是足够了,而且,我们也...

推荐三款正则可视化工具「JS篇」(正则在线调试)

作者:代码先森转发链接:https://mp.weixin.qq.com/s/rw29yKBwti5sIsx2GKG9pw前言最近老王对可视化非常着迷。例如,算法可视化、正则可视化、Vue数据劫持可...

Javascript 多线程编程的前世今生

作者:jolamjiang腾讯技术工程转发链接:https://mp.weixin.qq.com/s/87C9GAFb0Y_i5iPbIL5Hzg为什么要多线程编程大家看到文章的标题《Javasc...

Pug 3.0.0正式发布,不再支持 Node.js 6/8

作者:李俊辰前端之巅转发链接:https://mp.weixin.qq.com/s/q-49Gf-SFijeu7d2MqztIQ前言近日,Pug3.0.0正式发布,Pug原名Jade,是由...

36个工作中常用的JavaScript函数片段「值得收藏」

作者:Eno_Yao转发链接:https://segmentfault.com/a/1190000022623676前言如果文章和笔记能带您一丝帮助或者启发,请不要吝啬你的赞和收藏,你的肯定是我前进的...

深入JavaScript教你内存泄漏如何防范

作者:大道至简转发链接:https://mp.weixin.qq.com/s/0w6aWwpR3MAJnmyLwDnAzA前言一般情况下,忽视内存管理不会对传统的网页产生显著的后果。这是因为,用户刷新...

由浅入深,66条JavaScript面试知识点(七)

作者:JakeZhang转发链接:https://juejin.im/post/5ef8377f6fb9a07e693a6061目录由浅入深,66条JavaScript面试知识点(一)由浅入深,66...

用STM32做了个电子秤,成本仅两位数,精度高!解析一下原理

俗话说得好!人在胖,秤在看!所以,我想DIY一个精度高的体重秤!并希望它不只能称体重:还能像这样称克重(可设置KG,G,最低可称100克)……这样一来,做甜品的时候,还能拿来应应急。保姆级教程,记录在...

前端开发需要了解常用7种JavaScript设计模式

作者|Deven译者|王强策划|小智转发链接:https://mp.weixin.qq.com/s/Lw4D7bfUSw_kPoJMD6W8gg前言JavaScript中的设计模式指的是...

毛姆的一个手法|王培军(毛姆作品简介)

鲁本斯画《海伦娜·芙尔曼肖像》钱锺书在《宋诗选注》文同小传中说:“具体的把当前风物比拟为某种画法或某某大画家的名作”,是“从文同正式起头”。如钱先生所举的:“峰峦李成似,涧谷范宽能”,“独坐水轩人不到...

欣赏 | 朝戈:我渴望找到直达心灵的永恒

朋友,通过艺术让我们共同感知世界的永恒与不朽。——朝戈橙色的人物117X71cm布面油画2003包与陈185cm×103cm2007年白色80cm×40cm2009年光布面油画-Light-Oilo...

Web页面如此耗电!到了某种程度,会是大损失

现在用户上网大多使用移动设备或者笔记本电脑。对这两者来说,电池寿命都很重要。在这篇文章里,我们将讨论影响电池寿命的因素,以及作为一个web开发者,我们如何让网页耗电更少,以便用户有更多时间来关注我们的...