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}
其父元素边框的不予计算
热门评论
作者的说法不严谨。top的百分比值是按离其最近的有定位属性的祖先元素的(内容高+padding)值来计算的,与border无关。不管是哪种盒模型,都是按这个来计算的。最主要的就是不一定是根据父元素的尺寸来确定其值
作者的说法不严谨。top的百分比值是按离其最近的有定位属性的祖先元素的(内容高+padding)值来计算的,与border无关。不管是哪种盒模型,都是按这个来计算的。最主要的就是不一定是根据父元素的尺寸来确定其值
若父元素设置了padding属性,那么绝对定位的子元素的top百分比为 父元素的高度+padding-tpo+padding-bottom之和乘以设置的百分比再减去padding-top的值