Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html CSS汉堡包菜单没有';t在更大的屏幕上正确变换_Html_Css_Navbar_Hamburger Menu - Fatal编程技术网

Html CSS汉堡包菜单没有';t在更大的屏幕上正确变换

Html CSS汉堡包菜单没有';t在更大的屏幕上正确变换,html,css,navbar,hamburger-menu,Html,Css,Navbar,Hamburger Menu,我有一个CSS汉堡包菜单,应该显示在屏幕上的525px大。在这个尺寸之后,汉堡包菜单应该变成一个普通的菜单,由4个链接组成,浮动到页面的右侧,而徽标浮动到左侧。以下是完整的代码: 零重力 ☰ 虽然我使4个链接的包含divdisplay:inline block仍然占据div的整个宽度,显示在h1(徽标)下 如何使h1和菜单(.menu)相邻显示,具有相同的高度?我真的没有主意了 试试这个 CSS 试试这个 CSS 事实上,在这种情况下,罪魁祸首是明确的:两者加上宽度:100%在菜单

我有一个CSS汉堡包菜单,应该显示在屏幕上的525px大。在这个尺寸之后,汉堡包菜单应该变成一个普通的菜单,由4个链接组成,浮动到页面的右侧,而徽标浮动到左侧。以下是完整的代码:


零重力
☰
虽然我使4个链接的包含div
display:inline block
仍然占据div的整个宽度,显示在h1(徽标)下

如何使h1和菜单(.menu)相邻显示,具有相同的高度?我真的没有主意了

试试这个

CSS

试试这个

CSS


事实上,在这种情况下,罪魁祸首是明确的:两者加上宽度:100%在菜单选择器上

你应该去掉width:100%,你可以使用clear:right(这就是你应该清理的地方)

我建议完全删除浮动(从.menu中删除浮动:left、clear:both和width:100%,从media query.menu中删除浮动:right)。这样做效果很好

事实上,使用float作为最后手段,或者只有在您确信它是正确的用例时才使用。除非您完全理解它,并且在大多数情况下有更好的方法来实现您的目标,否则float是很棘手的


此外,我还建议您考虑一下布局的目的。后者目前只在现代浏览器中工作(我认为edge仍然存在问题,IE没有也永远无法处理它)。

事实上,在这种情况下,罪魁祸首是明确的:两者加上宽度:100%在菜单选择器上

你应该去掉width:100%,你可以使用clear:right(这就是你应该清理的地方)

我建议完全删除浮动(从.menu中删除浮动:left、clear:both和width:100%,从media query.menu中删除浮动:right)。这样做效果很好

事实上,使用float作为最后手段,或者只有在您确信它是正确的用例时才使用。除非您完全理解它,并且在大多数情况下有更好的方法来实现您的目标,否则float是很棘手的


此外,我还建议您考虑一下布局的目的。后者目前只在现代浏览器中工作(我认为edge仍然存在问题,IE没有也永远无法处理它)。

它工作了,thx。您能解释一下您的额外代码是如何工作的吗?我从未使用过“清除:无”直到现在。再次Thx!@CasiaHospi因为你制作了
h1
元素
浮动:左
。菜单
浮动:右
,还提到了
清除:两者和宽度:100%
。菜单
类。因为清除两者都可以防止菜单向右浮动和宽度100%。这是有意义的。它重写了手机版的样式。Thx!它起作用了,Thx。你能解释一下你的额外代码是如何工作的吗?我从来没有用过“清除:无”直到现在。再次Thx!@CasiaHospi因为你制作了
h1
元素
浮动:左
。菜单
浮动:右
,还提到了
清除:两者和宽度:100%
。菜单
类。因为清除两者都可以防止菜单向右浮动和宽度100%。这是有意义的。它重写了手机版的样式。Thx!我发布的代码是一个更大项目的一部分,所以你的解决方案不起作用。我只是在学习CSS,在跳转到Flexbox或CSS网格之前,我试图掌握非常基本的方法,但我一定会检查它们。Thx!我发布的代码是一个更大项目的一部分,所以你的lution并没有真正起作用。我只是在学习CSS,在跳到Flexbox或CSS网格之前,我试图掌握最基本的方法,但我肯定会检查它们。Thx!
<div class="nav">

         <h1>Zero Gravity</h1>

         <label for="toggle">&#9776</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>
@media only screen and (min-width: 525px)
.menu {
    text-align: right;
    display: inline-block;
    float: right;
    width: auto;
    clear: none;
}