成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何用 HTML 和 CSS 實現一個響應式導航欄效果

開發 前端
在今天的文章中,我們將一起來學習如何用 HTML 和 CSS 制作響應式導航欄效果。

在今天的文章中,我們將一起來學習如何用 HTML 和 CSS 制作響應式導航欄效果。

這篇文章主要是面向初學者的,如果你是有經驗的開發者,請直接跳過或者忽略。

在這篇文章中,我們將一起來實現一個響應式導航欄效果,實現后,你可以在你的任何項目中使用它。

現在,我們就開始吧。

01、添加基本的 HTML結構

HTML 是一門超文本標記語言。它的主要工作是給我們的項目創建友好的網頁結構。我們將使用這種標記語言來完成我們的項目結構。 

現在,讓我們一起來看看我們項目的 HTML 代碼結構,具體如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>如何用 HTML和CSS 實現一個響應式導航欄效果</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <nav>
    <input type="checkbox" id="nav-toggle">
    <div class="logo"><strong>web前端開發</strong></div>
    <ul class="links">
      <li><a href="#home">網站主頁</a></li>
      <li><a href="#about">關于我們</a></li>
      <li><a href="#work">工作內容</a></li>
      <li><a href="#projects">開發項目</a></li>
      <li><a href="#contact">聯系我們</a></li>
    </ul>
    <label for="nav-toggle" class="icon-burger">
      <div class="line"></div>
      <div class="line"></div>
      <div class="line"></div>
    </label>
  </nav>
  <div class="container">
    <img src="01.jpg" alt="">
    <img src="02.jpg" alt="">
  </div>
  <label for="nav-toggle" class="icon-burger">
    <div class="line"></div>
    <div class="line"></div>
    <div class="line"></div>
  </label>
</body>
</html>
  • 我們將從制作一個新的 HTML 文件開始。為了在多種字體樣式之間切換,我們將在頭部部分添加指向外部 CSS 文件和 Google 字體的鏈接。
  • 現在,利用 <nav> 標簽,我們將構建任何網頁的標題或導航欄。
  • 我們現在將在 nav 標簽中添加一個帶有徽標的 div 元素,我們將使用無序列表將不同的菜單項添加到我們的導航欄。
  • 為了使用菜單項鏈接到不同的部分,我們將錨元素放在列表項中。
  • 我們現在將使用 label 標簽為我們的導航欄切換添加標簽,稍后我們將使用它來使用 CSS 為我們的導航欄響應。
  • 為了幫助大家理解標題的引用,我們在容器中放置了兩個圖像。

現在,讓我們看看頁面的結構輸出的效果:

02、為響應式導航添加CSS代碼

body {
    padding: 0;
    margin: 0;
  }
  .container {
    position: relative;
    margin-top: 100px;
  }
  .container img {
    display: block;
    width: 100%;
  }
  nav {
    position: fixed;
    z-index: 10;
    left: 0;
    right: 0;
    top: 0;
    font-family: "Montserrat", "sans-serif";
    height: 100px;
    background-color: #00a6bc;
    padding: 0 5%;
  }
  nav .logo {
    float: left;
    width: 40%;
    height: 100%;
    display: flex;
    align-items: center;
    font-size: 24px;
    color: #fff;
  }
  nav .links {
    float: right;
    padding: 0;
    margin: 0;
    width: 60%;
    height: 100%;
    display: flex;
    justify-content: space-around;
    align-items: center;
  }
  nav .links li {
    list-style: none;
  }
  nav .links a {
    display: block;
    padding: 1em;
    font-size: 16px;
    font-weight: bold;
    color: #fff;
    text-decoration: none;
    position: relative;
  }
  nav .links a:hover {
    color: white;
  }
  nav .links a::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: white;
    visibility: hidden;
    transform: scaleX(0);
    transition: all 0.3s ease-in-out 0s;
  }
  nav .links a:hover::before {
    visibility: visible;
    transform: scaleX(1);
    color: white;
  }
  #nav-toggle {
    position: absolute;
    top: -100px;
  }
  nav .icon-burger {
    display: none;
    position: absolute;
    right: 5%;
    top: 50%;
    transform: translateY(-50%);
  }
  nav .icon-burger .line {
    width: 30px;
    height: 5px;
    background-color: #fff;
    margin: 5px;
    border-radius: 3px;
    transition: all 0.5s ease-in-out;
  }
  @media screen and (max-width: 768px) {
    nav .logo {
      float: none;
      width: auto;
      justify-content: center;
    }
    nav .links {
      float: none;
      position: fixed;
      z-index: 9;
      left: 0;
      right: 0;
      top: 100px;
      bottom: 100%;
      width: auto;
      height: auto;
      flex-direction: column;
      justify-content: space-evenly;
      background-color: rgba(0, 0, 0, 0.8);
      overflow: hidden;
      transition: all 0.5s ease-in-out;
    }
    nav .links a {
      font-size: 20px;
    }
    nav :checked ~ .links {
      bottom: 0;
    }
    nav .icon-burger {
      display: block;
    }
    nav :checked ~ .icon-burger .line:nth-child(1) {
      transform: translateY(10px) rotate(225deg);
    }
    nav :checked ~ .icon-burger .line:nth-child(3) {
      transform: translateY(-10px) rotate(-225deg);
    }
    nav :checked ~ .icon-burger .line:nth-child(2) {
      opacity: 0;
    }
  }

添加完CSS后,我們將得到如下效果:

圖片

當我們把瀏覽器的窗口逐漸縮小時,頁面上的導航菜單也會折疊起來:

點擊折疊漢堡菜單,我們就會看到導航欄其他內容,效果如下:

圖片

03、解釋一下CSS代碼

第 1 步:我們將使用 body 標簽將網頁上的邊距和填充設置為“0”。

我們將使用類選擇器 (.container) 來設計我們的圖像。我們為圖像添加了“100px”的上邊距。我們的圖像寬度設置為 100%,其顯示設置為“block”。

body {
  padding: 0;
  margin: 0;
}
.container {
  position: relative;
  margin-top: 100px;
}
.container img {
  display: block;
  width: 100%;
}

第 2 步:我們現在將使用標簽選擇器 (nav) 自定義導航欄。 

為了讓它看起來更靠近窗口,我們將位置固定在網頁上,并將 z-index 增加到 10。選擇了“Montesirat”字體系列。高度設置為“100px”,背景色為“#00a6bc”。

nav {
  position: fixed;
  z-index: 10;
  left: 0;
  right: 0;
  top: 0;
  font-family: "Montserrat", "sans-serif";
  height: 100px;
  background-color: #00a6bc;
  padding: 0 5%;
}

第 3 步:使用類選擇器,我們現在將設置我們的子元素 (.logo) 的樣式。 

我們指定它應該“浮動到窗口的左側”。高度和寬度的定義分別為“100%”和“40%”。 

文章居中對齊,字體顏色為“白色”。

我們為導航欄中的鏈接添加了一些樣式。他們的位置被描述為“向右浮動”。寬度和高度的定義分別為“60%”和“100%”。這些項目居中并且顯示設置為“flex”。

nav .logo {
  float: left;
  width: 40%;
  height: 100%;
  display: flex;
  align-items: center;
  font-size: 24px;
  color: #fff;
}
nav .links {
  float: right;
  padding: 0;
  margin: 0;
  width: 60%;
  height: 100%;
  display: flex;
  justify-content: space-around;
  align-items: center;
}

第4步:現在我們將樣式添加到我們的字體鏈接。 

字體大小設置為 16px,文本裝飾為無,字體顏色為“白色”,我們添加了一些懸停屬性,當用戶懸停時,白色底部邊框將出現在鏈接下方。

nav .links {
  float: right;
  padding: 0;
  margin: 0;
  width: 60%;
  height: 100%;
  display: flex;
  justify-content: space-around;
  align-items: center;
}
nav .links li {
  list-style: none;
}
nav .links a {
  display: block;
  padding: 1em;
  font-size: 16px;
  font-weight: bold;
  color: #fff;
  text-decoration: none;
  position: relative;
}
nav .links a:hover {
  color: white;
}
nav .links a::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: white;
  visibility: hidden;
  transform: scaleX(0);
  transition: all 0.3s ease-in-out 0s;
}
nav .links a:hover::before {
  visibility: visible;
  transform: scaleX(1);
  color: white;
}
#nav-toggle {
  position: absolute;
  top: -100px;
}
nav .icon-burger {
  display: none;
  position: absolute;
  right: 5%;
  top: 50%;
  transform: translateY(-50%);
}
nav .icon-burger .line {
  width: 30px;
  height: 5px;
  background-color: #fff;
  margin: 5px;
  border-radius: 3px;
  transition: all 0.5s ease-in-out;
}

第 5 步:現在窗口的屏幕尺寸已經減小到等于窗口的規定寬度。

我們將在 CSS 中添加一個響應性和測試功能,以添加一個切換欄來顯示菜單項。

@media screen and (max-width: 768px) {
  nav .logo {
    float: none;
    width: auto;
    justify-content: center;
  }
  nav .links {
    float: none;
    position: fixed;
    z-index: 9;
    left: 0;
    right: 0;
    top: 100px;
    bottom: 100%;
    width: auto;
    height: auto;
    flex-direction: column;
    justify-content: space-evenly;
    background-color: rgba(0, 0, 0, 0.8);
    overflow: hidden;
    transition: all 0.5s ease-in-out;
  }
  nav .links a {
    font-size: 20px;
  }
  nav :checked ~ .links {
    bottom: 0;
  }
  nav .icon-burger {
    display: block;
  }
  nav :checked ~ .icon-burger .line:nth-child(1) {
    transform: translateY(10px) rotate(225deg);
  }
  nav :checked ~ .icon-burger .line:nth-child(3) {
    transform: translateY(-10px) rotate(-225deg);
  }
  nav :checked ~ .icon-burger .line:nth-child(2) {
    opacity: 0;
  }
}

到這里,我們要實現的效果就算完成了,希望你也已經學會了怎么使用 HTML 和 CSS 來實現一個響應式導航欄效果了。

責任編輯:華軒 來源: web前端開發
相關推薦

2023-07-18 15:49:22

HTMLCSS

2021-01-28 06:11:40

導航組件Sidenav Javascript

2021-09-13 06:03:42

CSS 技巧搜索引擎

2023-05-22 09:10:53

CSSloading 效

2013-07-09 09:24:29

響應式HTML5CSS3

2023-10-23 08:48:04

CSS寬度標題

2023-02-26 01:37:57

goORM代碼

2016-09-06 19:45:18

javascriptVue前端

2023-03-06 08:14:48

MySQLRedis場景

2017-03-20 17:59:19

JavaScript模板引擎

2017-03-15 08:43:29

JavaScript模板引擎

2023-07-05 16:07:02

JavaScriptWeb 應用程序

2022-12-12 11:11:05

2012-05-27 18:28:46

jQuery Mobi

2021-02-09 00:28:59

WebCSS開源

2020-10-26 08:19:53

算法隊列

2022-04-14 20:43:24

JavaScript原型鏈

2018-06-22 10:30:56

C語言虛擬機編譯器

2017-05-02 11:30:44

JavaScript數組惰性求值庫

2023-12-30 13:33:36

Python解析器JSON
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 影视先锋av资源噜噜 | 狠狠久| 国产精品久久久久久久久久久久 | 亚洲第一av网站 | 国产精品久久久久久久毛片 | 久久激情五月丁香伊人 | 亚洲一区二区综合 | 日韩成人| 精品人伦一区二区三区蜜桃网站 | 射久久| 亚洲精品国产第一综合99久久 | 91精品国产综合久久国产大片 | 日韩手机在线视频 | 国产精品不卡一区 | 免费在线观看黄色av | 91精品国产自产精品男人的天堂 | 国产一在线观看 | caoporon| 影视先锋av资源噜噜 | 中文字幕一区二区三区在线视频 | 欧美电影一区 | 高清欧美性猛交 | 久久精品一区二区 | 久久久资源 | 久草在线 | 亚洲区一区二 | 成人精品一区二区三区中文字幕 | 热99在线 | 日韩在线观看中文字幕 | 精品欧美久久 | 91av免费看 | 综合久久av | 超碰男人天堂 | 日韩中文字幕一区二区三区 | 91视频麻豆 | 夜夜艹天天干 | 一级片av | 中文二区 | 国产亚洲成av人在线观看导航 | 欧美久久电影 | 视频在线一区二区 |