内部div的CSS margin-top推动父div下降

Pho*_*den 1 html css

我试图将父div中的子div降低5px.当我把margin-top:5px; 在内部div上,它从父div上方的div下推内部div和父div,但不会将内部div从父div推下.如何设置它以便只将内部div从父div推下5px?我不希望父div从它上面的div下推.谢谢你的帮助.

用于导航的HTML:

<nav>
    <div class="nav-container">
      <div id="cat_14623_divs">
          <ul id="nav_14623">
              <li><a href="#" onclick="return false;">AKINA &amp; RED LAKE</a</li>       
              <li><a href="#" onclick="return false;">FRESH WILD CAUGHT FISH</a>
                   <ul id="navsub_14623_2326">
                       <li><a href="#" onclick="return false;">WALLEYE</a></li>
                       <li><a href="#" onclick="return false;">PERCH</a></li>
                       <li><a href="#" onclick="return false;">CRAPPIE</a></li>
                       <li><a href="#" onclick="return false;">NORTHERN</a></li>
                       <li><a href="#" onclick="return false;">WHITEFISH</a></li>
                  </ul></li>
              <li><a href="#" onclick="return false;">NEWS FROM THE FISHERY</a></li>
              <li><a href="#" onclick="return false;">CONTACT US</a></li>
              <li class="last"><a href="#" onclick="return false;">FAQs</a></li>
         </ul>
      </div>
    </div>
</nav>
Run Code Online (Sandbox Code Playgroud)

导航CSS:

nav{
position:relative;
width:960px;
background-color:#660000;
height:40px;
}

div.nav-container{
position:relative;
width:100%; 
}

#cat_14623_divs{
margin-top:5px;
height:30px;
background-color:#520000;
width:960px;    
}

#nav_14623{
list-style:none;
display:block;
padding:0;
width:80%;
margin:0 auto;
}

#nav_14623 li{
position:relative;
float:left;
padding: 0.5em 1.5em;
margin: 0px;
font-size:12px;
border-right:solid 2px #fff;
text-align:center;  
}

#nav_14623 li.last{
border-right:none;
padding-right:5px;
}

#nav_14623 li a{
color:#FFF;
text-decoration:none;
}

#nav_14623 ul{
position: absolute;
left:0;
top: 100%;
display: none;
    padding: 0 1000em; /* trick from css-tricks comments */
    margin: 0 -1000em; /* trick from css-tricks comments */
list-style: none;
margin-left: 0px;
margin: 0;
padding: 5px;
width:200px;
z-index: 1000;
background: #660000;
    border-left: 1px solid #336699;
    border-right: 1px solid #336699;
    border-bottom: 1px solid #336699;
    border-top: none;
 }

#nav_14623 ul li{
position: relative;
float: none;
border-right: none;
padding:0;
margin: 0;
}

#nav_14623 ul li a{
color: #fff;
font-size: 12px;
vertical-align: middle;
line-height:32px;
width: 100%;
height:35px;
display:block;
}

#nav_14623 ul li a:hover{
background: #520000;
width: 100%;
}

#nav_14623 li:hover > ul{
display: block;
}

#nav_14623:after {
content: ""; clear: both; display: block;
}
Run Code Online (Sandbox Code Playgroud)

以下是您想要查看该网站的网址:http: //redlakewalleye.designangler.com/

Lin*_*TED 9

margin-top您应该使用a padding-top来代替孩子,而不是孩子.

更新(作为对您的评论的反应)

保证金需要反弹.由于父div没有任何反弹,它会反弹在它上面的元素上.因此你应该使用填充.

  • 此外 - 填充应用于元素的内部,而边距应用于外部.在某些情况下,这意味着除了/而不是子元素之外,父元素的大小或位置也会受到影响.我发现,一般来说,最好在移动项目时使用`padding`来转移与父项相关的项目,并在移动项目时使用`margin`与兄弟姐妹相关(即 - margin-left:5px`以增加两者之间的空间)浮动元素). (4认同)