谁能帮我翻转汉堡菜单的位置和左边的文字。尝试多次但失败了。我试过使用 Z-Index 来改变位置,但似乎没有帮助。 我网站上的最终图片如附件所示。任何帮助将不胜感激。
我还想将汉堡包从普通的条形图更改为圆形图标。如果我能针对我所描述的内容获得一些帮助,那就太好了。
代码:
.moreoptions{
padding-top: 0px;
float: left;
position: relative;
margin-bottom: -10px;
}
.outer {
overflow: hidden;
position: relative;
}
.middle {
margin: 0 auto;
}
label {
top: 10px;
display: inline-block;
padding: 7px 10px;
background-color: transparent;
cursor: pointer;
margin: 10px;
z-index: 3;
position: fixed;
}
.bar {
display: block;
/*background-color: #38618c;*/
background-color: black;
width: 30px;
height: 3px;
border-radius: 5px;
margin: 5px auto;
transition: background-color 0.4s ease-in, transform 0.4s ease-in,
width 0.4s ease-in;
}
<!--- Hamburger-->
<div class ="moreoptions">
<h1> More Options </h1>
</div>
<label for="myInput">
<span class="bar top"></span>
<span class="bar middle"></span>
<span class="bar bottom"></span>
</label>
最佳答案
这里有几个答案:
- 只需重新排列您的 HTML,即可将图标置于左侧。请参阅下面的示例代码,了解如何重写 HTML。
- 不幸的是,z-index 无法按照您需要的方式工作。它只控制重叠元素的堆叠顺序,而不控制布局的流向。将您的“按钮”包裹在具有 float 或 flex 子元素的单个元素中是可行的方法。如果您的使用 float ,请不要忘记 clearfix。
- 我提供了一个最小示例,说明您可以如何从汉堡包图标过渡到关闭图标,see it on CodePen .要实现从汉堡包到圆形图标的变形(猜想中间有一个
x
吗?),有很多选择,最基本的是堆叠两个不同的图标,并转换不透明度
使用 CSS 切换。
<nav class="navbar">
<input type="checkbox" id="toggle" />
<label for="toggle" class="btn menu--btn">
<div class="icon icon--menu">
<div></div>
<div></div>
<div></div>
</div>
More Options
</label>
<h1>Heading</h1>
</nav>
input[type="checkbox"] {
display: none;
}
h1 {
text-align: center;
}
.navbar {
padding: 8px 16px;
background-color: #f7f7f7;
}
.btn {
display: inline-block;
padding: 6px 12px 6px 8px;
line-height: 24px;
border-width: 1px;
border-style: solid;
border-color: #ccc;
background-color: #fff;
color: #333;
cursor: pointer;
clear: both;
transition: color 150ms ease,
background-color 150ms ease,
border-color 150ms ease;
}
.btn:hover {
background-color: #ddd;
color: #000;
border-color: #999;
}
input[type="checkbox"]:checked + .btn {
color: #fff;
background-color: #555;
border-color: #000;
}
.icon {
width: 24px;
height: 24px;
margin-right: 8px;
box-sizing: border-box;
float: left;
}
.icon--menu {
padding: 6px 4px;
}
.icon--menu > div {
height: 2px;
background-color: currentColor;
transition: background-color 150ms ease,
transform 200ms ease,
opacity 200ms linear;
}
.icon--menu > div:not(:last-child) {
margin-bottom: 3px;
}
input[type="checkbox"]:checked + .btn .icon--menu > div:nth-child(1) {
transform: translateY(5px) rotate(-45deg);
}
input[type="checkbox"]:checked + .btn .icon--menu > div:nth-child(2) {
opacity: 0;
}
input[type="checkbox"]:checked + .btn .icon--menu > div:nth-child(3) {
transform: translateY(-5px) rotate(45deg);
}
关于html - CSS 中的汉堡包渲染错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59591523/