![](/img/trans.png)
[英]Login page doesn't position correctly on bigger screen - React Bootstrap
[英]CSS hamburger menu doesn't transform correctly on a bigger screen
我有一个CSS汉堡菜单,该菜单应在最大525像素的屏幕上显示。 达到该大小后,汉堡菜单应转换为普通菜单,该菜单由4个链接组成,并浮动在页面右侧,而徽标则浮动在左侧。 这是完整的代码: https : //codepen.io/Cilvako/pen/zjvBrE
<div class="nav">
<h1>Zero Gravity</h1>
<label for="toggle">☰</label>
<input type="checkbox" id="toggle"/>
<div class="menu">
<a href="#">About Us</a>
<a href="#">Contact</a>
<a href="#">Blog</a>
<a href="#"><span>Free Trial</span></a>
</div>
</div>
尽管我将4个链接的包含div display: inline-block
它仍然占据div的整个宽度,并显示在h1(徽标)下方。
如何使h1和菜单(.menu)彼此相邻显示,并且高度相同? 我真的没有主意。
尝试这个
CSS
@media only screen and (min-width: 525px)
.menu {
text-align: right;
display: inline-block;
float: right;
width: auto;
clear: none;
}
实际上,在这种情况下,罪魁祸首很明显:.menu选择器上的宽度和宽度均为100%。
您应该摆脱宽度:100%的限制,然后可以使用clear:right(这是您要进行清除的位置)。
我建议完全删除浮动元素(从.menu移除浮动元素:向左,清除:宽度和宽度:100%,并从媒体查询.menu中移除浮动元素:向右。这样很好地工作。
实际上,将float用作最后的手段,或者仅在您确定这是正确的用例时使用。 除非您完全理解浮动,否则浮动是棘手的,在大多数情况下,有更好的方法可以实现目标。
我也建议您看看flexbox以及CSS网格 。 后者现在只能在现代浏览器中工作(我认为edge仍然有问题,IE永远不会也将无法处理它)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.