08css属性——position和层叠

cursor

cursor可以设置鼠标指针(光标)在元素上面时的显示样式
可以设置以下样式

  • auto:浏览器根据上下文决定指针的显示样式,比如根据文本和非文本切换指针样式
  • default:由操作系统决定,就是一个小箭头
  • pointer:一只小手,鼠标移动到链接上面默认的就是这个样式
  • text:一条竖线,鼠标挪动到文本输入框上面默认就是这个样式
  • none:没有任何指针显示在元素上面

标准流(normal flow)

  • 默认情况下,元素都是按照normal flow(标准流、常规流、正常流、文档流)进行排布
  • 从左到右、从上到下按顺序摆放好
  • 默认情况下,互相之间不存在层叠现象

margin、padding定位

  • 在标准流中,可以使用margin、padding对元素进行定位
  • 其中margin还可以设置负数
  • 比较明显的缺点是
    • 设置一个元素的margin或者padding,通常会影响到标准流中其他元素的定位效果
    • 不便于实现元素层叠效果

position

利用position可以对元素进行定位,常取的值有四个

  • static:静态定位(按标准流进行排布,设置top、left没有意义)
  • relative:相对定位(可重叠),在不影响其他元素位置的前提下,对当前元素位置进行微调
  • absolut:绝对定位
    • 元素脱离normal flow
    • 可以通过left、right、top、bottom进行定位
    • 参照对象是最邻近的定位祖先元素
  • fixed:固定定位
    • 元素脱离normal flow(脱离标准流)
    • 可以通过left、right、top、bottom进行定位
    • 参照对象是视口(viewport)
    • 当画布滚动时,固定不动

绝对定位的技巧(absolute position element)

position值为absolute或者fixed的元素

  • 定位参照对象的宽度=left+right+margin-left+ margin-right+绝对定位元素的实际占用宽度
  • 定位参照对象的宽度=top+bottom+margin-top+ margin-bottom+绝对定位元素的实际占用宽度
  • 如果希望绝对定位元素的宽高和定位参照对象一样,可以给绝对定位元素设置以下属性
    left:0、right:0、top:0、bottom:0、margin:0
  • 如果希望绝对定位元素在定位参照对象中居中显示,可以给绝对定位元素设置以下属性
/* 1.让子元素完全占据父元素 */
		left: 0;
		right: 0;
		top: 0;
		bottom: 0;
/* 2.让内容居中 */
		width: 100px;
		height: 100px;
		left: 0;
		right: 0;
		top: 0;
		bottom: 0;
		margin: auto auto;

脱标元素的特点(fixed、absolut、float)、

  • 可以随意设置宽度和高度

  • 宽高默认由内容决定的

  • 不受标准流的约束

  • 不再给父元素汇报宽高数据(相当于这个元素不存在,后面的东西会重叠上来)

  • 脱离标准流后的元素display为block

  • 与父元素对齐的方法

	left: 0;//与父元素最左边位置相对其
	transform:translate(-50%);//相对自己的位置左移50%
	margin-left: 50%;//相对于父元素右移50%

	left: -90px;//通过计算左移自己的一半
	/*相对父元素的一半*/
	margin-left: 50%;

元素的层叠

z-index属性

用来设置定位元素的层叠顺序(仅对定位元素有效)

父子关系子元素会层叠在父元素上
非父子元素都是定位元素在标准流中一般不存在层叠现象
-1个是定位元素,1个是非定位元素定位元素会层叠在非定位元素上面
-都是定位元素使用css属性z-index来控制层叠顺序

取值可以是正整数、负整数、0

比较原则

  • 如果是兄弟关系
  • z-index越大,层叠越再上面
  • z-index相等,写在后面的那个元素层叠在上面
  • 如果不是兄弟关系
  • 各自从元素自己以及祖先元素中,找出最邻近的2个定位元素进行比较
  • 而且这两个元素必须进行设置z-index
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值