」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 HTML 和 CSS 建立導覽列

如何使用 HTML 和 CSS 建立導覽列

發佈於2024-11-04
瀏覽:320

How to Create a Navigation Bar Using HTML and CSS

精心设计且功能齐全的导航栏(navbar)是任何网站的关键组件之一。它充当用户的路线图,帮助他们浏览各个页面。导航栏通常位于网页的顶部,用户始终可以看到它来访问关键链接。在本文中,我们将探讨如何使用 HTML 和 CSS 创建一个具有视觉吸引力和功能性的 CSS 导航栏。我们还将讨论确保导航栏保持在页面顶部的各种技术。

您可以查看此导航栏的现场演示,并通过访问 CodePen 上的预览来探索其功能。

以下代码片段演示了如何创建带有徽标、菜单项和号召性用语按钮的响应式导航栏。 HTML 和 CSS 代码如下:


  
    
    
    Navbar
    
  

  
    
  


分解代码
让我们仔细看看如何使用 HTML 和 CSS 创建导航栏。

HTML结构

代码的 HTML 部分很简单。它由一个 nav 元素组成,该元素包含三个主要组件:

  • 徽标(图像)
  • 带有可点击链接的 **菜单 **列表(主页、关于我们、联系我们、博客)
  • 一个**按钮**,充当号召性用语(立即致电)
  • 该结构被包装在一个元素内,该元素充当导航栏的容器。


徽标是使用 如何使用 HTML 和 CSS 建立導覽列 标签创建的。菜单是一个无序列表(

    )
,包含列表项(
  • )
  • ,每个列表项都有一个锚标记 () 创建到不同页面的链接。最后,按钮是一个带有样式的简单标签。

    使用 CSS 设计样式

    神奇的事情发生在 CSS 部分,我们在其中定义导航栏的布局和外观。让我们讨论一些关键要素。

    背景和身体造型
    主体具有从蓝色 (#2258c3) 过渡到粉红色 (#fd2df3) 的渐变背景。高度设置为 100vh(视口高度),这可确保背景填充整个屏幕,并且没有边距以避免页面周围出现不必要的空间。

    body {
      background: linear-gradient(0deg, #2258c3 10%, #fd2df3 90%);
      height: 100vh;
      margin: 0;
      padding-top: 10px;
    }
    
    

    导航栏样式

    导航栏有白色背景和圆角(边框半径:30px)。内边距和边距在导航栏内部和外部创建间距。 display: flex 属性使导航栏成为弹性框,允许其子元素水平对齐。 justify-content: space- Between 确保徽标、菜单和按钮均匀分布。

    .navbar {
      display: flex;
      background: #fff;
      border-radius: 30px;
      padding: 10px 20px;
      margin: 0 auto;
      width: 95%;
      justify-content: space-between;
      align-items: center;
    }
    
    

    将导航栏固定到顶部

    导航栏的关键功能之一是在滚动时保持在页面顶部。为了实现这一点,我们使用position:fixed属性。这允许导航栏保持固定在顶部 (top: 0) 无论滚动如何。此外,z-index: 9999 确保导航栏始终位于页面上其他元素的上方。

    .navbar {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 9999;
    }
    
    

    菜单项和交互性

    菜单项使用 .menu 类上的 display: flex 水平显示。这些项目通过边距指定间距,并且每个项目的样式都被设置为删除默认列表样式和填充。菜单项中的链接没有文字装饰,并且采用粗体和深色样式。

    链接上的悬停效果会更改颜色以匹配蓝色背景颜色(#2258c3),提供链接是交互式的视觉提示。

    .menu {
      display: flex;
      list-style-type: none;
      margin: 0;
      padding: 0;
    }
    
    .item {
      margin: 0 15px;
    }
    
    .item a {
      text-decoration: none;
      color: #333;
      font-weight: bold;
    }
    
    .item a:hover {
      color: #2258c3;
    }
    
    

    按钮样式

    按钮的样式为蓝色背景(#2258c3)、白色文本和圆角(border-radius: 20px)。悬停时,背景变为粉红色 (#fd2df3) 以匹配背景中的渐变。

    button {
      background-color: #2258c3;
      color: white;
      border: none;
      padding: 10px 20px;
      border-radius: 20px;
      cursor: pointer;
    }
    
    button:hover {
      background-color: #fd2df3;
    }
    
    

    如何保持导航栏始终位于顶部

    要使用 CSS 将标题固定在页面顶部,请使用position:fixed 属性和 top:0。这可确保导航栏在用户滚动时保持在顶部。下面是它在代码中的应用方式:

    .navbar {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 9999;
    }
    
    
    版本聲明 本文轉載於:https://dev.to/bitlearners/how-to-create-a-navigation-bar-using-html-and-css-3lp3?1如有侵犯,請聯絡[email protected]刪除
    最新教學 更多>
    • 如何處理PHP文件系統功能中的UTF-8文件名?
      如何處理PHP文件系統功能中的UTF-8文件名?
      在PHP的Filesystem functions中處理UTF-8 FileNames 在使用PHP的MKDIR函數中含有UTF-8字符的文件很多flusf-8字符時,您可能會在Windows Explorer中遇到comploreer grounder grounder grounder gro...
      程式設計 發佈於2025-04-11
    • 如何限制動態大小的父元素中元素的滾動範圍?
      如何限制動態大小的父元素中元素的滾動範圍?
      在交互式接口中實現垂直滾動元素的CSS高度限制,控制元素的滾動行為對於確保用戶體驗和可訪問性是必不可少的。一種這樣的方案涉及限制動態大小的父元素中元素的滾動範圍。 問題:考慮一個佈局,其中我們具有與用戶垂直滾動一起移動的可滾動地圖div,同時與固定的固定sidebar保持一致。但是,地圖的滾動無限...
      程式設計 發佈於2025-04-11
    • 如何通過單擊鼠標單擊的div中編程選擇所有文本?
      如何通過單擊鼠標單擊的div中編程選擇所有文本?
      在鼠標上選擇div文本單擊帶有文本內容,用戶如何使用單個鼠標單擊單擊div中的整個文本?這允許用戶輕鬆拖放所選的文本或直接複製它。 在單個鼠標上單擊的div元素中選擇文本,您可以使用以下Javascript函數: function selecttext(canduterid){ if(d...
      程式設計 發佈於2025-04-11
    • 如何有效地選擇熊貓數據框中的列?
      如何有效地選擇熊貓數據框中的列?
      在處理數據操作任務時,在Pandas DataFrames 中選擇列時,選擇特定列的必要條件是必要的。在Pandas中,選擇列的各種選項。 選項1:使用列名 如果已知列索引,請使用ILOC函數選擇它們。請注意,python索引基於零。 df1 = df.iloc [:,0:2]#使用索引0和1 ...
      程式設計 發佈於2025-04-11
    • 如何將MySQL數據庫添加到Visual Studio 2012中的數據源對話框中?
      如何將MySQL數據庫添加到Visual Studio 2012中的數據源對話框中?
      在Visual Studio 2012 儘管已安裝了MySQL Connector v.6.5.4,但無法將MySQL數據庫添加到實體框架的“ DataSource對話框”中。為了解決這一問題,至關重要的是要了解MySQL連接器v.6.5.5及以後的6.6.x版本將提供MySQL的官方Visual...
      程式設計 發佈於2025-04-11
    • 如何有效地轉換PHP中的時區?
      如何有效地轉換PHP中的時區?
      在PHP 利用dateTime對象和functions DateTime對象及其相應的功能別名為時區轉換提供方便的方法。例如: //定義用戶的時區 date_default_timezone_set('歐洲/倫敦'); //創建DateTime對象 $ dateTime = ne...
      程式設計 發佈於2025-04-11
    • Python讀取CSV文件UnicodeDecodeError終極解決方法
      Python讀取CSV文件UnicodeDecodeError終極解決方法
      在試圖使用已內置的CSV模塊讀取Python中時,CSV文件中的Unicode Decode Decode Decode Decode decode Error讀取,您可能會遇到錯誤的錯誤:無法解碼字節 在位置2-3中:截斷\ uxxxxxxxx逃脫當CSV文件包含特殊字符或Unicode的路徑逃...
      程式設計 發佈於2025-04-11
    • 如何將來自三個MySQL表的數據組合到新表中?
      如何將來自三個MySQL表的數據組合到新表中?
      mysql:從三個表和列的新表創建新表 答案:為了實現這一目標,您可以利用一個3-way Join。 選擇p。 *,d.content作為年齡 來自人為p的人 加入d.person_id = p.id上的d的詳細信息 加入T.Id = d.detail_id的分類法 其中t.taxonomy ...
      程式設計 發佈於2025-04-11
    • 如何使用node-mysql在單個查詢中執行多個SQL語句?
      如何使用node-mysql在單個查詢中執行多個SQL語句?
      Multi-Statement Query Support in Node-MySQLIn Node.js, the question arises when executing multiple SQL statements in a single query using the node-mys...
      程式設計 發佈於2025-04-11
    • 找到最大計數時,如何解決mySQL中的“組函數\”錯誤的“無效使用”?
      找到最大計數時,如何解決mySQL中的“組函數\”錯誤的“無效使用”?
      如何在mySQL中使用mySql 檢索最大計數,您可能會遇到一個問題,您可能會在嘗試使用以下命令:理解錯誤正確找到由名稱列分組的值的最大計數,請使用以下修改後的查詢: 計數(*)為c 來自EMP1 按名稱組 c desc訂購 限制1 查詢說明 select語句提取名稱列和每個名稱...
      程式設計 發佈於2025-04-11
    • 如何簡化PHP中的JSON解析以獲取多維陣列?
      如何簡化PHP中的JSON解析以獲取多維陣列?
      php 試圖在PHP中解析JSON數據的JSON可能具有挑戰性,尤其是在處理多維數組時。 To simplify the process, it's recommended to parse the JSON as an array rather than an object.To do...
      程式設計 發佈於2025-04-11
    • 如何使用PHP將斑點(圖像)正確插入MySQL?
      如何使用PHP將斑點(圖像)正確插入MySQL?
      essue VALUES('$this->image_id','file_get_contents($tmp_image)')";This code builds a string in PHP, but the function call fil...
      程式設計 發佈於2025-04-11
    • 如何在php中使用捲髮發送原始帖子請求?
      如何在php中使用捲髮發送原始帖子請求?
      如何使用php 然後,配置以下選項: curlopt_url:請求 [要發送的原始數據指定內容類型,為原始的帖子請求指定身體的內容類型很重要。在這種情況下,它是文本/平原。要執行此操作,請使用包含以下標頭的數組使用curlopt_httpheader選項:響應將存儲在變量$ result。 示例代...
      程式設計 發佈於2025-04-11
    • 在程序退出之前,我需要在C ++中明確刪除堆的堆分配嗎?
      在程序退出之前,我需要在C ++中明確刪除堆的堆分配嗎?
      在C中的顯式刪除 在C中的動態內存分配時,開發人員通常會想知道是否有必要在heap-procal extrable exit exit上進行手動調用“ delete”操作員,但開發人員通常會想知道是否需要手動調用“ delete”操作員。本文深入研究了這個主題。 在C主函數中,使用了動態分配變量(...
      程式設計 發佈於2025-04-11
    • 如何配置Pytesseract以使用數字輸出的單位數字識別?
      如何配置Pytesseract以使用數字輸出的單位數字識別?
      Pytesseract OCR具有單位數字識別和僅數字約束 在pytesseract的上下文中,在配置tesseract以識別單位數字和限制單個數字和限制輸出對數字可能會提出質疑。 To address this issue, we delve into the specifics of Te...
      程式設計 發佈於2025-04-11

    免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

    Copyright© 2022 湘ICP备2022001581号-3