跳转到主内容
思享编程网:思考分享,玩转编程世界!

HTML如何理解定位position?分别有几种定位?

一、定位类型有哪些?

静态定位(默认)、相对定位、绝对定位、固定定位、粘滞定位 第一种:静态定位-static 特点:是浏览器默认上至下、左至右排序 第二种:相对定位 语法:position:relative 特点: 相对与自身在浏览器中的原来位置移动 不脱离文档流,会继续在标准流中占用一份空间 同一方向上的定位属性只能使用一个,right/left+top/bottom 常用于父级相对定位、子级绝对定位 例子:执行前

蓝色相对定位后:

蓝色div代码块:

.div2 {

background-color: powderblue; /* 相对定位 特点:相对于子自身再浏览器中的默认位置(原来位置) 不脱离文档流 */ position: relative; top: 40px; left: 40px; } 第二种:绝对定位 语法:position:absolute 特点: 脱离标准流 不区分块级、行内、行内块级元素 同一方向上的定位属性只能使用一个,right/left+top/bottom 忽略祖先元素的padding 参考点:若绝对定位的元素有祖先元素也是定位流(绝对定位、固定定位、相对定位), 那么这个绝对定位的元素就会以该元素作为参考点,若有多个参考点,则就近原则。

否则,都以body为参考点 例子: 蓝色包含黑色  蓝色div:相对定位  黑色div:绝对定位 执行前:

执行后:

/* 父级 */

.div2 { position: relative; /* position: absolute; */ background-color: powderblue; } /* 子级 */ .div4 { width: 50px; height: 50px; background-color: rgb(96, 100, 99); /* 设置绝对定位 特性: 1、脱离文档流 原位置不保留 下面的东西会顶上来(它会覆盖下面的元素) 2、默认使用了绝对定位的元素 无论有无父元素 参数点是body 3、若祖先元素(父元素-爷爷元素-直系元素-body元素)设置了相对定位,则参照点为最近的祖先元素 */ position: absolute; top: 40px; left: 30px;

} 第三种:固定定位 语法: 特点:position:flex 让固定盒子不随着滚动条的滚动而滚动 脱离文档流、不会占用标准流中的空间 不区分行内、块级、行内块级 同一方向上的定位属性只能使用一个,right/left+top/bottom 例子:一共50个div 不论怎么滑动 flex元素始终不动 执行前:

执行后:

.divBot {

width: 100px; height: 100px; background-color: antiquewhite; /* 设置固定 */ top: 100px; left: 300px; position: fixed;

} 第四种:粘滞定位(开始相对定位、到达设定的值为固定定位) 语法:position:sticky 特点: 不脱离文档流,保留元素原本位置 结合了relative和fixed两种定位功能于一体的特殊定位(跨越特定值,之后为固定定位) 使用条件:

执行前:

执行后:

(图片比较难看出来,这给全部的代码)

网易-导航栏

相关文章