CSS—position

不知道,看我写 前端知识的程序员们,有没有和我一样的感觉,我每次写完html结构,然后写css样式内容时,心里有一个样子,但是实现后,ctrl+save确是另一个样子,心里真是不爽啊。
对于position这个属性,我每次设置他的时候,都会或多或少有点意外。
面试过两三次,但是却没有被问到这个,心里还是有侥幸的心理的。

  • position
    这个属性一共有四个值。
  • static 静态定位
    默认布局。如果是块级元素就会在页面中自上而下的堆叠起来。如果是行内元素就会在一行内由左至右延续,如果装不下就会换行,装下了继续。
  • relative 相对定位
    使得该元素相对于他原来在文档中的位置进行定位。通过top、left、bottom、left这四个属性值,来改变它的位置。
    以上还很好理解。
    ** “ ** 不好理解在这里:为元素进行相对定位,会保留该元素原来占据的文档流空间。当对该元素进行相对定位时,比如top:20px;使得该元素距离距离他原来占据的空间顶部20px。也就是该元素向下移动了20px,但是除了该元素移动了一段距离,页面上其他元素并没有发生任何变化。”
  • absolute 绝对定位
    绝对定位会彻底从文档流中拿出来,元素之前占据的空间也被回收啦。绝对定位元素的定位依靠其定位上下文。
    需要注意的是:这里写过绝对定位可以将行内元素变为块级元素的表现形式。但是确定就是一旦将行内元素进行绝对定位后,该元素的位置不好掌握,(原因:如果该元素没有设置内外边距,且前后左右也没有绝对定位元素,那么该元素会暂时停留在自己原来的位置,但是如果该元素设置了外边距,那么该元素会暂时停留在距原来位置一个外边距的距离。如果他前后左右都是设置了绝对定位的元素,那么该元素会寻找最上面一个不是绝对定位的元素下面。<有没有后悔听原因啦>)所以,一点那设置了绝对定位需要马上为该元素进行top、left定位。

定位上下文的理解:
相对于另一个元素移动该定位元素的位置,那么“另一个元素”即为该元素的定位上下文。
绝对定位元素的任何祖先元素都可以成为他的定位上下文,只需把相应的祖先元素设置为position:relative;即可。
如果其祖先元素均没有设置相对定位的,那么该绝对元素的默认定位上下文为body。

  • fixed 固定定位
    绝对定位也是完全移除文档流。但是他的定位上下文为视口,即浏览器窗口。
    固定定位不常用,最常见的情况是,用它创建不随网页而滚动而移动的导航。

我在做练习是,最习惯的就是将父元素进行相对定位,然后对要其子元素需要定位的进行绝对定位。
虽然有些网页也有父元素绝对定位,子元素相对父元素再绝对定位,我不太喜欢这样写,因为父元素的位置还需要再定位一遍。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,370评论 1赞 92
  • CSS的position总是属性很容易让人弄混~ 为了仔细区别它们,所以今天总结一下CSS的position属性~...
    fehysunny阅读 3,155评论 0赞 7
  • 原文地址:http://luopq.com/2015/11/15/css-position/ position是C...
    IT程序狮阅读 8,144评论 0赞 16
  • 可能的值:absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的...
    青春前行阅读 482评论 0赞 0
  • CSS 中的 position 属性用来设置元素的定位方式。 position 的值有 static、relati...
    Paranoid_K阅读 1,210评论 0赞 2

友情链接更多精彩内容