2 回答

TA贡献1775条经验 获得超11个赞
要设置媒体查询,您可以使用
@media (//media size in here) {
// css for that media query in here
}
一个真实的例子是,例如
@media (max-width: 990px) {
.menu {
display: none;
}
}
通过执行以下步骤可以实现基本的汉堡菜单:
1) 使用 burger-menu 类创建一个作为要在移动屏幕宽度上隐藏的导航的前一个兄弟元素。a)您不希望它显示在您的桌面媒体上,因此在 css 中,将其设置为 display: none;
2) 为所需设备创建媒体查询。假设移动设备为 480 像素。
3)在此媒体查询中,将您希望在悬停(或单击)时显示的导航设置为 display: none;
4) 在此媒体查询中,为您的汉堡菜单设置样式。在我的示例中,出于时间原因,我设置了一些非常基本的样式,但您可以研究使用 span 来制作响应式汉堡菜单。
5)在这个媒体查询中,为你的汉堡菜单声明一个悬停伪类,它可以访问隐藏的导航。由于您将 burger-menu 作为导航的前一个兄弟元素放置,因此您可以使用 + css 规则来定位它
.burger-menu:hover + .menu {
}
这意味着,当您将鼠标悬停在汉堡菜单上时,您将影响 .menu 的 css。您可以在上面的 CSS 选择器中放置 .menu 的样式将如何受到影响。
这是此过程如何与您的代码一起使用的基本示例。
将此添加到您的 .menu 之前的 html
<div class="menu">
将此添加到您的 css 文件中,在底部
.burger-menu {
display: none;
}
@media (max-width: 480px) {
.menu {
display: none;
}
.burger-menu {
display: block;
background-color: white;
height: 30px;
width: 30px;
position: fixed;
top: 10px;
right: 10px;
}
.burger-menu:hover + .menu {
display: block;
}
}
通常,您可以通过使用带有 JQuery 的 toggleClass 在单击汉堡菜单时向导航菜单添加和删除显示来推进这一点。
Ps 使用跨度创建汉堡菜单的好处是当你希望它有漂亮的动画时,从汉堡菜单变为十字或箭头等。

TA贡献1842条经验 获得超13个赞
(对不起我的英语不好,我也知道这个回复有点晚了,但我希望它有帮助)你可以有一个用于 PC 的 CSS 文件(在我的示例中称为 pc.css),它隐藏了用于移动设备的菜单display: none;和另一个它做同样的事情,但隐藏了用于 PC 的那个(在我的示例中称为 mobile.css)。这可以通过以下 JS 来完成,该 JS 检查您的屏幕宽度是否小于或等于 699px,然后将 CSS 文件 pc.css 更改为 mobile.css
if (screen.width <= 699) {
// get all links in the head (including CSS)
var allLinks = document.head.getElementsByTagName('link');
// find and replace the element
for (var i = 0; i < allLinks.length; i++) {
if (allLinks[i].href = "pc.css") {
allLinks[i].href = "mobile.css";
}
添加回答
举报