亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為某些分辨率添加元素

為某些分辨率添加元素

HUWWW 2022-06-05 09:42:08
我發現我對這類問題可能不清楚,所以我會盡力用兩種格式解釋它:1)目前我正在研究我的網站的響應性和可用性。由于我的菜單在 pc 上看起來不錯,但在移動設備上不好看,我想使用一個導航欄,它只在智能手機上可見。我在 W3Schools 上找到了一些幫助,但它不會讓我有針對不同分辨率的單獨菜單。如何在我的 html 頁面上添加一個在電腦屏幕或平板電腦上不可見但在手機上可見的 div?2) 這就是我要找的:我想要 2 個菜單,一個僅用于個人電腦/筆記本電腦或平板電腦屏幕,另一個僅用于智能手機。我想在智能手機菜單上使用導航欄(使用漢堡菜單)。如果我在主頁上使用導航欄的類,它會以每種格式顯示,而如果我使用 display: none; 它不會在任何地方顯示。我該如何解決?我在stackoverflow(和其他網站)上搜索了這個問題并找到了一個類似的問題,盡管到目前為止那里的解決方案對我沒有用。如果那里的答案實際上滿足了我在這里提出的問題,那么我做錯了什么?當前代碼:html:<div class="topnav">  <a href="#home" class="active">Logo</a>  <div id="myLinks">    <a href="#news">News</a>    <a href="#contact">Contact</a>    <a href="#about">About</a>  </div>  <a href="javascript:void(0);" class="icon" onclick="myFunction()">    <i class="fa fa-bars"></i>  </a></div><script type="text/javascript">function myFunction() {  var x = document.getElementById("myLinks");  if (x.style.display === "block") {    x.style.display = "none";    } else {    x.style.display = "block";  }}CSS:/*I won't put all css in here, as it would get a bit messy*/* {box-sizing: border-box;}.topnav {  display: block;}@media only screen and (max-height: 768px){.topnav {overflow: hidden;background-color: #333;position: relative;}.topnav #myLinks {display: none;}.topnav a {color: white;padding: 14px 16px;text-decoration: none;font-size: 17px;display: block;}.topnav a:hover {background-color: #ddd;color: black;}.active {background-color: #4CAF50;color: white;}}
查看完整描述

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 使用跨度創建漢堡菜單的好處是當你希望它有漂亮的動畫時,從漢堡菜單變為十字或箭頭等。


查看完整回答
反對 回復 2022-06-05
?
紅顏莎娜

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";

        }


查看完整回答
反對 回復 2022-06-05
  • 2 回答
  • 0 關注
  • 92 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號