absolute在没有最近定位祖先元素
absolute在没有最近定位祖先元素会认body做爹,这里.banner-slide最近没有定位的祖先元素啊,为什么不以body绝对定位,即为什么图片还是在main盒子里
正在回答 回答被采纳积分+1
其实这里是以body为绝对定位的,同学可以试一下,给banner-slide加一个:
top:100px;
left:100px;
为了有个参照,我们在给main和banner设置了同级的div:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | <!DOCTYPE html> < html > < head > < meta charset = "UTF-8" > < title >图片轮播</ title > < link rel = "stylesheet" type = "text/css" href = "css/style.css" > </ head > < body > < div >123456789</ div > < div class = "main" > <!-- 图片轮播 --> < div >123456789</ div > < div class = "banner" > < a href = "" > < div class = "banner-slide slide-1 slide-active" ></ div > </ a > < a href = "" > < div class = "banner-slide slide-2" ></ div > </ a > < a href = "" > < div class = "banner-slide slide-3" ></ div > </ a > </ div > </ body > </ html > |
css:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | *{ padding : 0 ; margin : 0 ; } ul{ list-style-type : none ; } body{ font-family : "Microsoft YaHei" ; color : #14191e ; } .main{ width : 1200px ; height : 460px ; margin : 30px auto ; overflow : hidden ; } .banner{ width : 1200px ; height : 460px ; overflow : hidden ; position : relative ; } .banner-slide{ width : 1200px ; height : 460px ; background-repeat : no-repeat ; position : absolute ; top : 100px ; left : 100px ; display : none ; } .slide-active{ display : block ; } .slide -1 { background-image : url ( "../images/bg1.jpg" ); /*这里不能简写成background 因为简写会覆盖上面的background-repeat属性 然后这里又需要重新写*/ } .slide -2 { background-image : url ( "../images/bg2.jpg" ); /*这里不能简写成background 因为简写会覆盖上面的background-repeat属性 然后这里又需要重新写*/ } .slide -3 { background-image : url ( "../images/bg3.jpg" ); /*这里不能简写成background 因为简写会覆盖上面的background-repeat属性 然后这里又需要重新写*/ } |
你会发现,它是相对于body偏移的。我们可以对比一下给banner加上绝对定位和不加绝对定位的现象:
不给banner添加绝对定位的时候:
给banner添加绝对定位的时候:
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
css:
*{
padding:0;
margin:0;
}
ul{
list-style-type: none;
}
body{
font-family: "Microsoft YaHei";
color: #14191e;
}
.main{
width: 1200px;
height: 460px;
margin:30px auto;
overflow: hidden;
}
.banner{
width: 1200px;
height: 460px;
overflow: hidden;
}
.banner-slide{
width: 1200px;
height: 460px;
background-repeat: no-repeat;
position: absolute;
display: none;
}
.slide-active{
display: block;
}
.slide-1{
background-image:url("../images/bg1.jpg"); /*这里不能简写成background 因为简写会覆盖上面的background-repeat属性 然后这里又需要重新写*/
}
.slide-2{
background-image:url("../images/bg2.jpg"); /*这里不能简写成background 因为简写会覆盖上面的background-repeat属性 然后这里又需要重新写*/
}
.slide-3{
background-image:url("../images/bg3.jpg"); /*这里不能简写成background 因为简写会覆盖上面的background-repeat属性 然后这里又需要重新写*/
}
html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>图片轮播</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<div class="main">
<!-- 图片轮播 -->
<div class="banner">
<a href="">
<div class="banner-slide slide-1 slide-active"></div>
</a>
<a href="">
<div class="banner-slide slide-2"></div>
</a>
<a href="">
<div class="banner-slide slide-3"></div>
</a>
</div>
</body>
</html>
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10204 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧