首页 > 编程知识 正文

21世纪的定位电子版,绝对定位和浮动的区别

时间:2023-05-03 17:40:35 阅读:46804 作者:1336

1 .固定的定位相对于浏览器窗口是固定的

2

如果指定负边距,则元素在文档流中的位置会发生偏移,从而放弃偏移前占用的空间,并由紧接其后的元素填充该空间。 相对放置的元素的位置发生偏移时,会保留原始占用空间,以防止文档流中的其他元素流入。

3.

浮动要素的特征如下。

1 .块显示为一列

2 .在线元素支持宽度的高度

3 .如果块元素和内联元素都没有宽度,则默认内容是加宽宽度;

4 .脱离文档流

5 .提高一半水平。 4.

清除浮动:

在非IE浏览器(如Firefox )中,如果容器高度为auto,且容器内容具有浮动(浮动为左或右)元素,则容器高度将自动增加,无法适应内容高度,内容将溢出容器外部并影响布局

作者: betterwlf

链接: https://www.Jian Shu.com/p/4a1f 36 e9ca 32

资料来源:简本

版权归作者所有。 商业转载请联系作者取得许可。 非商业转载请注明出处。 33559 www.Jian Shu.com/p/4a1f 36 e9ca 32

一、文档流的概念是什么? 可以用什么方法使元素脱离文档流?

文档流是指在元素的合成布局过程中,元素自动从左到右、从上到下流动。 最终,表单从上到下分为一行,并按每行中从左到右的顺序排出元素。 脱离文档的流程,就是元素打乱了这个排列,或者脱离了合成。 要将元素从文档流中分离出来,有浮动和对齐两种方法。 二、有几种定位方式,分别如何实现定位,使用场景如何?

CSS定位方式有默认定位(static )、相对定位)、绝对定位)、固定定位(fixed ) 4种

静态:的默认值。 没有位置。 在常规流程中,元素的top、right、bottom、left和z索引属性无效。 以下是示例。

relative:生成相对位置的元素,按照top、bottom、left、right的位置将其相对于正常位置定位。 此处的相对是指元素在默认流中的相对位置。

***注意:

1 .元素的位置属性设置为relative后,用top、bottom、left、right属性从原始位置偏移;

2 .即使在元素偏移之后,在默认文档流中他占据的位置仍然存在,随后的元素位置基于其原始位置;

3 .此元素偏移后,可能会覆盖其他元素。 可以使用z-index属性显示级别有限的级别。 ***

示例:

第二个箱子要素相对于前面的位置(虚线部分)向下移动了20px,向右移动了30px。

要突出显示第三个块级元素的隐藏部分,请使用以下代码实现:

注意:要使用z-index,必须确保元素的样式包含定位方法。 z-index对box3不起作用,因为以前忘记在box3中添加定位方法。 absolute :生成绝对位置的元素,相对于静态位置外部的第一个父元素。 注意:

1 .绝对位置元素已脱离文件流程,普通流程其他元素的布局仿佛不存在绝对元素;

2 .绝对位置元素的位置相对于最近位置的祖先元素,如果元素没有位置的祖先元素,则位置相对于body;

3 .绝对位置框可以覆盖页面的其他元素。

示例:

在这种情况下,是放置了最接近box2的父元素的情况。 如果未放置最接近box2的父元素,则示例如下: 固定:本质上是绝对的配置,没有为要素留出空间。 通过指定元素相对于屏幕窗口的位置来指定元素的空间。 即使屏幕滚动,元素的位置也不会改变。 应用于很多网站顶部的固定导航、右下角的固定广告等。

示例:

三、absolute、relative和fixed偏移的基准点分别是什么?

absolute偏移的原点是相对于最近的父元素,如果不存在,则相对于主体元素。

relative偏移的注册点是相对于元素在正常流中的原始位置。

固定偏移的基准点相对于浏览器窗口。

四. z-index有什么作用? 怎么用?

z-index属性用于设定节点的堆叠顺序,堆叠顺序较高的节点显示在堆叠顺序较低的节点之前。

使用方法:显示

1.z-index仅对定位要素有效(position:relati

ve||absolute||fixed);
2.z-index只可比较同级元素
五、position:relative和负margin都可以使元素位置发生偏移?二者有什么区别?

position:relative和负margin都可以使元素位置发生偏移,二者的区别表现在:

负margin会使元素在文档流中的位置发生偏移,它会放弃偏移之前占据的空间,紧挨其后的元素会填充这部分空间;

相对定位后元素位置发生偏移,它仍会坚守原来占据的空间,不会让文档流的其他元素流入。
示例:

设置-margin前 设置-margin后

六、如何让一个固定宽高的元素在页面上垂直水平居中?
可以使用绝对定位和负margin,示例:


七、浮动元素有什么特征?对其他浮动元素、普通元素、文字分别有什么影响?

浮动元素的特征有:
1.块在一排显示;
2.内联元素支持宽高;
3.无论是块元素还是内联元素,没有宽度时默认内容撑开宽度;
4.脱离文档流;
5.提升层级半级。对其他浮动元素的影响:后浮动的元素永不会超过先浮动元素的顶端。对普通元素的影响:浮动元素会从文档正常流中删除,使得紧挨它的元素位置发生偏移,影响布局。对文字的影响:浮动元素向下延伸时,不会影响正常文本的显示,文本会相对于浮动元素进行偏移。但部分文本背景会被浮动元素遮住。(可参考大话FLOAT)
浮动示例:

八、清除浮动指什么? 如何清除浮动?
清除浮动指的是:在非IE浏览器(如Firefox)下,当容器的高度为auto,且容器的内容中有浮动(float为left或right)的元素,在这种情况下,容器的高度不能自动伸长以适应内容的高度,使得内容溢出到容器外面而影响布局的现象,为了防止这个现象的出现而进行的CSS处理,就叫CSS清除浮动。

清除浮动的方法:
1.使用带clear属性的空元素
在浮动元素后使用一个空元素如<pre><div class="clear"></div></pre>,并在CSS中赋予<pre>.clear{clear:both;}</pre>属性即可清理浮动。亦可使用<pre><br class="clear" /></pre>或<pre><hr class="clear" /></pre>来进行清理。
2.使用CSS的overflow属性
给浮动元素的容器添加overflow:hidden;或overflow:auto;可以清除浮动,另外在 IE6 中还需要触发 hasLayout ,例如为父元素设置容器宽高或设置 zoom:1。
3.使用CSS的:after伪元素

**** 附加:****关于使用clear:both清除浮动,一直都不太明白,还有就是对清除浮动的理解有误,以为清除浮动之后,元素的渲染顺序和普通流一样,实际不是这样的,下面给出我自己的理解,不足之处,欢迎大家批评指正。

关于浮动
如下代码中:
在父容器中添加一个背景图片,图片会按照普通流渲染

若是在此基础上给背景图片添加浮动,效果如下:

我们可以看到父元素高度塌陷,背景图片脱离文档流,所以此时父容器div补给高度了,让我们给父容器添加点文字看看它的高度变化

父容器的高度被撑开了,有木有!有木有!
*** 所以子元素浮动使得父元素塌陷的原因是:因为没有预先设置div高度,所以div高度由其包含的子元素高度决定。而浮动脱离文档流,所以图片并不会被计算高度。此时的div中,相当于div中子元素高度为0。***一个困扰我很久的问题,和大家分享下,上代码吧:
情况一
情况二
我不理解的点是为什么情况二中box2的宽度比情况一中box2的宽度大,情况二中的box2可以浮动上去,而情况一中的不可以呢?
答案是:因为情况一中宽度限制100px,所以box2文字不能靠右围绕,所以只能往下。 对于情况2,因为宽度为200px,所以box2在这个宽度内可以围绕box1

关于clear:both 的理解:
Clear:both;其实就是利用清除浮动来把外层的div撑开,所以有时候,我们在将内部div都设置成浮动之后,就会发现,外层div的背景没有显示,原因就是外层的div没有撑开,太小,所以能看到的背景仅限于一条线。
示例如下:




作者:betterwlf
链接:https://www.jianshu.com/p/4a1f36e9ca32
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。