继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

关于css position定位 top百分比的问题

幸福拾荒者
关注TA
已关注
手记 6
粉丝 8
获赞 190

css设置绝对定位后 top,bottom,设置百分比定位是按父元素的高度来计算的,同样left,right,设置百分比定位是按父元素的宽度度来计算的

.box{ background: #66E6FF; width: 100%; height:400px;  position: relative; margin: 0 auto; }
.pox{ background: #f0f; width:100px; height: 100px; position: absolute;  top:20%; right: 20%; z-index: 99999}

图片描述


如果父元素设置有padding值 则子元素定位 top的'百分比'值是 其父元素的height加上padding-top和padding-bottom

.box{ background: #66E6FF; width:500px; height:300px;padding: 20px;  position: relative; margin: 0 auto; }
.pox{ background: #f0f; width:100px; height: 100px; position: absolute;  top:20%; right: 20%; z-index: 99999}

图片描述


如果父元素设置有border值,子元素 top定位的位置是根据父元素的宽度来定位的,与边框无关 并且top的百分比是父元素的宽度,父元素边框不予计算

.box{ background: #66E6FF; width:500px; height:300px; border:20px solid yellow; position: relative; margin: 0 auto; }
.pox{ background: #f0f; width:100px; height: 100px; position: absolute;  top:0px; right: 20%; z-index: 99999}

图片描述

其父元素边框的不予计算
图片描述

打开App,阅读手记
18人推荐
发表评论
随时随地看视频慕课网APP

热门评论

作者的说法不严谨。top的百分比值是按离其最近的有定位属性的祖先元素的(内容高+padding)值来计算的,与border无关。不管是哪种盒模型,都是按这个来计算的。最主要的就是不一定是根据父元素的尺寸来确定其值


作者的说法不严谨。top的百分比值是按离其最近的有定位属性的祖先元素的(内容高+padding)值来计算的,与border无关。不管是哪种盒模型,都是按这个来计算的。最主要的就是不一定是根据父元素的尺寸来确定其值


若父元素设置了padding属性,那么绝对定位的子元素的top百分比为 父元素的高度+padding-tpo+padding-bottom之和乘以设置的百分比再减去padding-top的值

查看全部评论