简体   繁体   English

带浮动项目的两个div之间的差距

[英]Gap between two divs with floated items

I am creating a navbar with two sections, one small top one, and a bigger bottom one, which both have floated icons, however there is a small space in between them. 我正在创建一个导航栏,该导航栏有两个部分,一个小顶部,一个大底部,两个都有浮动图标,但是它们之间有一个很小的空间。 There is only a small gap between them. 它们之间只有很小的差距。 I'm not sure why, any help is appreciated. 我不确定为什么会有所帮助。 I am also using bootstrap, however none of the navbar is bootstrap. 我也在使用引导程序,但是导航栏都不是引导程序。

 header div.nav { background-color: #fff; } header div.top-nav { overflow: hidden; } header div.top-nav div.info { background-color: #f1f1f1; width: 100%; display: inline-block; } header div.info div.contact { float: left; } header div.top-nav div.contact a { padding: 3px 16px; display: inline-block; } header div.info div.social { float: right; } header div.top-nav div.social a { color: #333; } header div.top-nav div.social ai { padding: 8px 16px; } header div.top-nav div.social ai:hover { color: #6b6b6b; transition: 0.5s; } header div.nav div.brand { float: left; } header div.nav div.links { float: right; } header div.nav div.brand a { display: block; color: #f07e0b; text-align: center; padding: 14px 16px; text-decoration: none; } header div.nav div.brand a:hover { display: block; color: #ffc863; text-align: center; padding: 14px 16px; text-decoration: none; } ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; } li { float: left; } li a { display: block; color: #333; text-align: center; padding: 14px 16px; text-decoration: none; } li a:hover { background-color: #111; } 
 <header> <div class="top-nav"> <div class="info"> <div class="container"> <div class="contact"> <a>hello@arriveradio.com</a> </div> <div class="social"> <a href="https://twitter.com/radioarrive"><i class="fa fa-twitter-square"></i></a> </div> </div> </div> </div> <div class="nav"> <div class="container"> <div class="brand"> <a>ArriveRadio</a> </div> <div class="links"> <ul> <li><a href="#">Home</a></li> <li><a href="#">News</a></li> <li><a href="#">Contact</a></li> <li><a href="#">About</a></li> </ul> </div> </div> </div> </header> 

If you put a 1px border around the top nav and the bottom, you can see that the missing area is caused by the top div not filling 100% of the height of the parent. 如果在顶部导航和底部周围放置1px边框,则可以看到缺失区域是由顶部div不能填充父级高度的100%引起的。

By removing the style that sets the <div class="info"> to inline-block, you will remove this small space. 通过删除将<div class="info">为inline-block的样式,您将删除此小空间。

header div.top-nav div.info {
    background-color: #f1f1f1;
    width: 100%;
    /* display: inline-block; */
}

 /* header div.nav { background-color: #fff; } */ header div.top-nav { overflow: hidden; border: solid 1px; } header div.top-nav div.info { background-color: #f1f1f1; width: 100%; /* display: inline-block; */ } header div.info div.contact { float: left; } header div.top-nav div.contact a { padding: 3px 16px; display: inline-block; } header div.info div.social { float: right; } header div.top-nav div.social a { color: #333; } header div.top-nav div.social ai { padding: 8px 16px; } header div.top-nav div.social ai:hover { color: #6b6b6b; transition: 0.5s; } .nav { border: solid 1px; } header div.nav div.brand { float: left; } header div.nav div.links { float: right; } header div.nav div.brand a { display: block; color: #f07e0b; text-align: center; padding: 14px 16px; text-decoration: none; } header div.nav div.brand a:hover { display: block; color: #ffc863; text-align: center; padding: 14px 16px; text-decoration: none; } ul { list-style-type: none; margin: 0; padding: 0; overflow: hidden; } li { float: left; } li a { display: block; color: #333; text-align: center; padding: 14px 16px; text-decoration: none; } li a:hover { background-color: #111; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script> <link href="https://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet"/> <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/> <header> <div class="top-nav"> <div class="info"> <div class="container"> <div class="contact"> <a>hello@arriveradio.com</a> </div> <div class="social"> <a href="https://twitter.com/radioarrive"><i class="fa fa-twitter-square"></i></a> </div> </div> </div> </div> <div class="nav"> <div class="container"> <div class="brand"> <a>ArriveRadio</a> </div> <div class="links"> <ul> <li><a href="#">Home</a></li> <li><a href="#">News</a></li> <li><a href="#">Contact</a></li> <li><a href="#">About</a></li> </ul> </div> </div> </div> </header> 

Here is a jsfiddle: https://jsfiddle.net/45v15kjr/ 这是一个jsfiddle: https ://jsfiddle.net/45v15kjr/

header div.top-nav div.info {
    background-color: #f1f1f1;
    width: 100%;
    display: block; /* this is part of the issue */
}

Also there are a few containers that need clearfixes. 也有一些容器需要clearfix。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM