css:position 父相对子绝对怎么完美布局

css:position 父相对子绝对怎么完美布局

代码如下 改了很多次css 出来的画面惨不忍睹 position布局不是很明白 div1和list这两个div之间加了导航

求大神修改一下代码给一个完美的解决方案 完全现在被困住了 不同position定位的能解决布局的出现的问题但是我想的是先布局 然后给中间list加轮播
浏览器画面效果如下:

clipboard.png



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>title</title>
    <style type="text/css">
        *{
            margin: 0;
            padding: 0;
            list-style:none;
        }
        body{
            width: 960px;
            margin:0 auto;
            border: 1px black solid;
        }
        #div1{
            height: 300px;
            overflow: hidden;
            position: relative;
        }
        #daohang{
            position:absolute;
            top: 300px;
            height: 30px;
        }
        #daohang span{
            text-align: center;
            background-color: red;
            width:160px;
            margin-left: 1px;
            
             }
        #daohang span:hover{
            background-color: blue;
        }
        #list{
            height: 300px;
            width: 4800px;
            position: absolute;
            top: 330px;

        }
        #list img{
            float: left;
        }
        #div4{
            height: 200px;
            background-color: black;
            position:absolute;
            top: 630px;

        }
    </style>
    <script type="text/javascript">

    </script>
</head>
<body>
    
    
<div id="div1">                
    <div id="daohang">    
        <nav>
            <span>this</span>
            <span>this</span>
            <span>this</span>
            <span>this</span>
            <span>this</span>
        </nav>
    </div>            
    <div id="list" >
            <img src="img/1.jpg"/>
            <img src="img/2.jpg"/>
            <img src="img/3.jpg"/>
            <img src="img/4.jpg"/>
            <img src="img/5.jpg"/>
    </div>
        
    <div id="div4">
        
    </div>
</div>
    
</body>
</html>
阅读 1.5k
1 个回答

先理解position: absolute用法

  • position: absolute是相对于自身父级进行定位
  • 如果第一层父级没有使用定位则继续向上查找,直到找到使用了定位的父元素
  • 只相对于挨的最近的使用定位的父元素进行定位,不管父元素是position: relative还是position: absolute
  • 如果所有父元素都没有使用定位,则相对于浏览器窗口进行定位

回到问题上,没看懂具体问题是啥,没看到nav,是你overflow: hidden了
先理解定位了,这个问题你自己就能解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题