2 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
要設(shè)置媒體查詢,您可以使用
@media (//media size in here) {
// css for that media query in here
}
一個(gè)真實(shí)的例子是,例如
@media (max-width: 990px) {
.menu {
display: none;
}
}
通過執(zhí)行以下步驟可以實(shí)現(xiàn)基本的漢堡菜單:
1) 使用 burger-menu 類創(chuàng)建一個(gè)作為要在移動(dòng)屏幕寬度上隱藏的導(dǎo)航的前一個(gè)兄弟元素。a)您不希望它顯示在您的桌面媒體上,因此在 css 中,將其設(shè)置為 display: none;
2) 為所需設(shè)備創(chuàng)建媒體查詢。假設(shè)移動(dòng)設(shè)備為 480 像素。
3)在此媒體查詢中,將您希望在懸停(或單擊)時(shí)顯示的導(dǎo)航設(shè)置為 display: none;
4) 在此媒體查詢中,為您的漢堡菜單設(shè)置樣式。在我的示例中,出于時(shí)間原因,我設(shè)置了一些非?;镜臉邮剑梢匝芯渴褂?span 來制作響應(yīng)式漢堡菜單。
5)在這個(gè)媒體查詢中,為你的漢堡菜單聲明一個(gè)懸停偽類,它可以訪問隱藏的導(dǎo)航。由于您將 burger-menu 作為導(dǎo)航的前一個(gè)兄弟元素放置,因此您可以使用 + css 規(guī)則來定位它
.burger-menu:hover + .menu {
}
這意味著,當(dāng)您將鼠標(biāo)懸停在漢堡菜單上時(shí),您將影響 .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 在單擊漢堡菜單時(shí)向?qū)Ш讲藛翁砑雍蛣h除顯示來推進(jìn)這一點(diǎn)。
Ps 使用跨度創(chuàng)建漢堡菜單的好處是當(dāng)你希望它有漂亮的動(dòng)畫時(shí),從漢堡菜單變?yōu)槭只蚣^等。

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
(對不起我的英語不好,我也知道這個(gè)回復(fù)有點(diǎn)晚了,但我希望它有幫助)你可以有一個(gè)用于 PC 的 CSS 文件(在我的示例中稱為 pc.css),它隱藏了用于移動(dòng)設(shè)備的菜單display: none;和另一個(gè)它做同樣的事情,但隱藏了用于 PC 的那個(gè)(在我的示例中稱為 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";
}
添加回答
舉報(bào)