position:absolute和position:fixed元素位置和宽度高度的问题
2019-03-26 17:43
211 查看
绝对定位或者固定定位的元素可以用left、right、top、bottom四个属性指定,那么这四个属性与元素所处的位置还有元素的宽度和高度有什么关系呢?
left、right、top、bottom四个属性全部指定
代码如下:
html和css
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> main { position: fixed; left: 0; right: 100px; top: 100px; bottom: 100px; background-color: gray; } </style> </head> <body> <main> <article style="width:100px"></article> </main> </body> </html>
结果如下图:
可以看到元素的上下左右边界所处的位置分别由四个属性指定,宽度和高度是父元素的宽度和高度减去四个属性。
只指定right、top、bottom
main { position: fixed; right: 100px; top: 100px; bottom: 100px; background-color: gray; }
得到的效果如下图:
我们可以发现,元素的宽度是100px,也就是左边的所有剩余空间都被分配到了left上,我们可以假定这是left的默认值。
结论
- 当上下左右四个属性都指定了的时候,元素的宽度和高度由定位相对的元素的宽度和高度以及上下左右四个属性所决定
- 当上下左右某个属性未指定的时候,该属性默认会获取所在方向上(水平或者垂直)所有的剩余空间,元素的宽度高度是指定的宽度高度或者由子元素决定
- 当上下两个属性指定的属性值之和大于相对的父元素时,其高度为0,对其宽度也有同样的结论
相关文章推荐
- 打开input输入的时候,css中position:absolute/fixed定位的时候,定位元素上移问题解决
- inline元素、inline-block元素在float、position:fixed、position:absolute之后出现的问题
- 设置absolute后元素宽度问题
- IE6 下关于Position:absolute;属性对同级元素的影响问题
- position:fixed或absolute时百分比参考屏幕宽度
- JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸
- css基础 position:fixed/absolute 把div转换为行内块元素
- IOS UITextView 光标的位置,大小,宽度,高度设置问题
- CSS中position的absolute如何相对于父元素的位置进行定位
- CSS 中position:absolute的定位到底是相当于body,还是父级元素的问题
- JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸
- 关于js拖拽功能,拖拽元素的position:fixed;left:0;right:0;样式引起左右拖动元素会出现落后鼠标移动距离的问题
- 元素操作-宽度高度的兼容问题
- 父级元素未设置高度和宽度时高度塌陷问题的解决方法
- 小技巧:absolute 元素的宽度问题
- z-index属性适用于定位元素(position 属性值为 relative 或 absolute 或 fixed的对象)
- 高度和宽度不固定元素水平和垂直居中的实现(父元素高度和宽度固定)(完美解决兼容问题)
- CSS中position的absolute如何相对于父元素的位置进行定位
- 原生JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸名
- Android library版本决定它的高度和宽度导致的位图位置出错问题