1、“position:absolute”是绝对定位的意思,单纯的使用absolute属性并不会其效果,需要配合“top bottom left right ”属性才能看到效果。首先需要新建一个html文件,这里定义了10个换行符,换行符的下面定义一个div:
2、此时保存文件,打开浏览器可以看到div在浏览器的下方位置,接下来来设置绝对定位,让div显示在任意位置:
3、给divc的class使用absolute属性, 并使用上下左右位置属性,设置向上和向左分别50px,接着保存文件:
4、再次打开浏览器,可以看到div的位置在浏览器上方,覆盖了换行符的位置:
地址: https://www.cnblogs.com/goloving/p/9275776.html
1、绝对定位元素溢出父元素,怎么隐藏问题?
通常,为了让DIV子元素超出部分隐藏,都是在父元素设置overflow:hidden,这样即可防止子元素撑开父元素,使子元素能够溢出隐藏!
但是,对于position:absolute定位的子元素,仅仅使用overflow:hidden没办法将其溢出部分隐藏,需要在父元素上也加上一个定位position:relative才能将含有position:absolute属性的子元素进行溢出隐藏!
绝对定位元素相对的元素是它最近的一个祖先,该祖先满足:position的值必须是:relative、absolute、fixed,若没有这样的祖先则相对于body进行定位。偏移值由其top、bottom、left、right值确定。
而绝对定位的元素若超出其父元素的边界,要想将溢出的部分隐藏,则,想隐藏在哪个祖先里,该祖先必须同时设置position:relative/absolute/fixed和overflow:hidden的值。
2、绝对定位常见误区:
通常我们常听说:CSS绝对定位在没有其他有除static定位的包含块的情况下是以body进行定位,如果要想相对当前元素的父元素来定位,父元素一定要设置position:relative。
注意,前面一句是没有问题的,在没有父元素设置定位的话,默认就是以body来定位的,但是后面一句,要想相对父元素定位,父元素必须设置相对定位(relative),根据我的开发经验和查阅相关资料确认后发现,这是不对的。
正确的理解姿势是:
相对定位:相对于块级元素(或行内块)自身位置进行定位;
绝对定位:绝对定位的盒子是相对于 离它最近的一个已定位的盒子进行定位的(默认是body);
PS:注意是最近的盒子,而不是最近的父元素
注意:css描述的绝对定位概念,没有说明是离他最近的一个已相对定位的盒子进行定位的,所以离他最近的盒子的定位可以是相对定位(relative)和绝对定位(absolute)的,但是在开发中,一般是父盒子设置相对定位的,但是不代表只能是相对定位。
父元素position设置了absolute ,子元素的absolute是相对于父元素来定位的子元素参考父元素定位,是需要父元素具备一定条件的,即父元素的position属性不为static(默认值),负责css会递归至最近定位的祖先元素,直到body.
最近遇到了个问题 父元素需要溢出隐藏,并且给了relative; 而子元素做了absolute定位 ,这导致父元素的overflow:hidden失效了,因为子元素已经脱离文档流,
而当我把父元素改为absolute,也就是楼主说的父元素子元素同时设置absolute,父元素的overflow:hidden生效了,这让我摸不着头脑。
父元素与子元素同时脱离文档流,是否就存在于“同一个层次”里面了呢 然后overflow:hidden生效了?
希望能帮到楼主,同时也在这里求问下大家
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)