HTML5響應式使用css媒體查詢

HTML 負責搭建頁面結構,CSS 負責樣式設計,并且通過媒體查詢實現了較好的響應式效果,能夠適應不同屏幕尺寸下面就是寫了一個詳細的實例。

CSS 部分

* {margin: 0;padding: 0;box-sizing: border-box;
}
  • *?是通配選擇器,會選中頁面上的所有元素。
  • margin: 0;?將所有元素的外邊距設置為 0。
  • padding: 0;?將所有元素的內邊距設置為 0。
  • box-sizing: border-box;?改變元素寬度和高度的計算方式,使元素的寬度和高度包含內邊距和邊框,但不包含外邊距。
body {font-family: Arial, sans-serif;line-height: 1.6;
}
  • font-family: Arial, sans-serif;?設置頁面主體文字的字體為 Arial,如果 Arial 不可用,則使用系統默認的無襯線字體。
  • line-height: 1.6;?設置行高為字體大小的 1.6 倍,讓文字在垂直方向上有合適的間距。
header {background-color: #333;color: white;padding: 1rem;
}
  • background-color: #333;?設置?header?元素的背景顏色為深灰色。
  • color: white;?設置?header?內文字的顏色為白色。
  • padding: 1rem;?給?header?元素添加 1 個根元素字體大小的內邊距。
nav {display: flex;justify-content: space-between;align-items: center;max-width: 1200px;margin: 0 auto;
}
  • display: flex;?將?nav?元素設置為彈性布局容器。
  • justify-content: space-between;?在水平方向上,將子元素均勻分布,兩端對齊。
  • align-items: center;?在垂直方向上,將子元素居中對齊。
  • max-width: 1200px;?設置?nav?元素的最大寬度為 1200 像素。
  • margin: 0 auto;?讓?nav?元素在水平方向上居中顯示。
nav ul {display: flex;list-style: none;
}
  • display: flex;?將?nav?內的無序列表設置為彈性布局容器。
  • list-style: none;?去除無序列表的默認列表項標記。
nav ul li {margin-left: 2rem;
}
  • margin-left: 2rem;?給?nav?內無序列表的每個列表項添加 2 個根元素字體大小的左外邊距。
nav a {color: white;text-decoration: none;
}
  • color: white;?設置?nav?內鏈接文字的顏色為白色。
  • text-decoration: none;?去除鏈接的下劃線。
.portfolio {display: grid;grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));gap: 2rem;padding: 2rem;max-width: 1200px;margin: 0 auto;
}
  • display: grid;?將?.portfolio?元素設置為網格布局容器。
  • grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));?定義網格列的布局,會根據容器寬度自動適應列數,每列最小寬度為 300 像素,最大寬度平均分配剩余空間。
  • gap: 2rem;?設置網格項之間的間距為 2 個根元素字體大小。
  • padding: 2rem;?給?.portfolio?元素添加 2 個根元素字體大小的內邊距。
  • max-width: 1200px;?設置?.portfolio?元素的最大寬度為 1200 像素。
  • margin: 0 auto;?讓?.portfolio?元素在水平方向上居中顯示。
.card {background: #f4f4f4;padding: 1rem;border-radius: 8px;box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
  • background: #f4f4f4;?設置?.card?元素的背景顏色為淺灰色。
  • padding: 1rem;?給?.card?元素添加 1 個根元素字體大小的內邊距。
  • border-radius: 8px;?給?.card?元素添加 8 像素的圓角。
  • box-shadow: 0 2px 5px rgba(0,0,0,0.1);?給?.card?元素添加一個輕微的陰影效果。
.card img {width: 100%;height: auto;border-radius: 4px;
}
  • width: 100%;?設置?.card?內圖片的寬度為父元素寬度的 100%。
  • height: auto;?讓圖片的高度根據寬度自動調整,保持圖片的原始比例。
  • border-radius: 4px;?給?.card?內圖片添加 4 像素的圓角。
.card h3 {margin: 1rem 0;
}
  • margin: 1rem 0;?給?.card?內的?h3?標題添加上下 1 個根元素字體大小的外邊距。
footer {background: #333;color: white;text-align: center;padding: 1rem;position: fixed;bottom: 0;width: 100%;
}
  • background: #333;?設置?footer?元素的背景顏色為深灰色。
  • color: white;?設置?footer?內文字的顏色為白色。
  • text-align: center;?讓?footer?內的文字居中顯示。
  • padding: 1rem;?給?footer?元素添加 1 個根元素字體大小的內邊距。
  • position: fixed;?將?footer?元素固定在頁面上。
  • bottom: 0;?讓?footer?元素位于頁面底部。
  • width: 100%;?設置?footer?元素的寬度為 100%。
/* 響應式設計 */
@media (max-width: 768px) {nav {flex-direction: column;text-align: center;}nav ul {margin-top: 1rem;flex-direction: column;}nav ul li {margin: 0.5rem 0;}.portfolio {grid-template-columns: 1fr;padding: 1rem;}
}
  • @media (max-width: 768px)?是媒體查詢,當屏幕寬度小于等于 768 像素時,應用以下樣式。
  • flex-direction: column;?將?nav?元素和?nav?內的無序列表的彈性布局方向改為垂直方向。
  • text-align: center;?讓?nav?內的文字居中顯示。
  • margin-top: 1rem;?給?nav?內的無序列表添加 1 個根元素字體大小的上外邊距。
  • margin: 0.5rem 0;?給?nav?內無序列表的每個列表項添加上下 0.5 個根元素字體大小的外邊距。
  • grid-template-columns: 1fr;?將?.portfolio?元素的網格布局改為單列。
  • padding: 1rem;?給?.portfolio?元素添加 1 個根元素字體大小的內邊距。

HTML 部分

<!DOCTYPE html>
<html lang="zh-CN">
  • <!DOCTYPE html>?聲明文檔類型為 HTML5。
  • <html lang="zh-CN">?定義 HTML 文檔的根元素,并設置語言為中文(中國大陸)。
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>響應式作品集</title><link rel="stylesheet" href="style.css">
</head>
  • <meta charset="UTF-8">?設置文檔的字符編碼為 UTF-8。
  • <meta name="viewport" content="width=device-width, initial-scale=1.0">?配置視口,讓頁面寬度與設備寬度相同,初始縮放比例為 1.0。
  • <title>響應式作品集</title>?設置頁面的標題為 “響應式作品集”。
  • <link rel="stylesheet" href="style.css">?引入外部樣式表?style.css
<body><header><nav><h1>我的作品集</h1><ul><li><a href="#home">首頁</a></li><li><a href="#works">作品</a></li><li><a href="#about">關于</a></li></ul></nav></header>
  • <header>?定義頁面的頁眉部分。
  • <nav>?定義導航欄。
  • <h1>我的作品集</h1>?顯示網站標題。
  • <ul>?定義無序列表。
  • <li>?定義列表項。
  • <a href="#home">首頁</a>?定義鏈接,點擊后跳轉到頁面內 ID 為?home?的元素位置(這里代碼中未給出?home?元素)。
    <main><section id="works" class="portfolio"><div class="card"><img src="https://via.placeholder.com/300" alt="作品1"><h3>作品標題1</h3><p>作品描述內容</p></div><div class="card"><img src="https://via.placeholder.com/300" alt="作品2"><h3>作品標題2</h3><p>作品描述內容</p></div><div class="card"><img src="https://via.placeholder.com/300" alt="作品3"><h3>作品標題3</h3><p>作品描述內容</p></div></section></main>
  • <main>?定義頁面的主要內容區域。
  • <section id="works" class="portfolio">?定義一個章節,ID 為?works,類名為?portfolio
  • <div class="card">?定義一個卡片容器。
  • <img src="https://via.placeholder.com/300" alt="作品1">?顯示一張占位圖片,alt?屬性為圖片的替代文本。
  • <h3>作品標題1</h3>?顯示作品標題。
  • <p>作品描述內容</p>?顯示作品描述。
    <footer><p>&copy;  All rights reserved.</p></footer>
</body>
</html>
  • <footer>?定義頁面的頁腳部分。
  • <p>&copy; All rights reserved.</p>?顯示版權信息,&copy;?是版權符號的 HTML 實體。

你盡管努力,剩下交給天意。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72914.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72914.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72914.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

洛谷P1434 [SHOI2002] 滑雪

P1434 [SHOI2002] 滑雪 - 洛谷 代碼區&#xff1a; #include<algorithm> #include<iostream> #include<cstring> using namespace std;const int MAX 105; int r, c; int arr[MAX][MAX], dp[MAX][MAX]; int xindex[4] {-1,1,0,0};//上下左右 int yindex[…

【操作系統】進程間通信方式

進程間通信方式 前言 / 概述一、管道管道命名管道 二、消息隊列三、共享內存四、信號量信號量概述互斥訪問條件同步信號 五、socket總結 前言 / 概述 每個進程的用戶地址空間都是獨立的&#xff0c;?般而言是不能互相訪問的&#xff0c;但內核空間是每個進程都共享的&#xff…

WPF 布局中的共性尺寸組(Shared Size Group)

1. 什么是共性尺寸組&#xff1f; 在 WPF 的 Grid 布局中&#xff0c;SharedSizeGroup 允許多個 Grid 共享同一列或行的尺寸&#xff0c;即使它們屬于不同的 Grid 也能保持大小一致。這樣可以保證界面元素的對齊性&#xff0c;提高布局的一致性。 SharedSizeGroup 主要用于需…

Netty源碼—2.Reactor線程模型二

大綱 1.關于NioEventLoop的問題整理 2.理解Reactor線程模型主要分三部分 3.NioEventLoop的創建 4.NioEventLoop的啟動 4.NioEventLoop的啟動 (1)啟動NioEventLoop的兩大入口 (2)判斷當前線程是否是NioEventLoop線程 (3)創建一個線程并啟動 (4)NioEventLoop的啟動總結 (…

前端項目中應該如何選擇正確的圖片格式

在前端項目中選擇正確的圖片格式是優化頁面性能、提升用戶體驗的關鍵步驟之一。以下是常見圖片格式的特點、適用場景及選擇建議&#xff0c;幫助你在不同場景下做出最優決策&#xff1a; 一、常見圖片格式對比 格式特點適用場景不適用場景JPEG- 有損壓縮&#xff0c;文件小- 不…

保姆級 STM32 HAL 庫外部中斷教學

1. 外部中斷概述 為什么用外部中斷&#xff1f; 當按鍵按下時&#xff0c;CPU 無需輪詢檢測引腳狀態&#xff0c;而是通過中斷機制立即響應&#xff0c;提高效率&#xff0c;適用于實時性要求高的場景。 關鍵概念 EXTI (External Interrupt/Event Controller)&#xff1a;ST…

Postman高級功能深度解析:Mock Server與自動化監控——構建高效API測試與監控體系

引言&#xff1a;Postman在API開發中的核心價值 在數字化時代&#xff0c;API&#xff08;應用程序編程接口&#xff09;已成為系統間交互的“神經網絡”&#xff0c;其質量直接影響用戶體驗與業務連續性。然而&#xff0c;傳統API測試面臨兩大挑戰&#xff1a; 開發階段依賴…

【程序人生】成功人生架構圖(分層模型)

文章目錄 ?前言?一、根基層——價值觀與使命?二、支柱層——健康與能量?三、驅動層——學習與進化?四、網絡層——關系系統?五、目標層——成就與財富?六、頂層——意義與傳承?外層&#xff1a;調節環——平衡與抗風險?思維導圖 標題詳情作者JosieBook頭銜CSDN博客專家…

【最后203篇系列】020 rocksdb agent

今天還是挺開心的一天&#xff0c;又在工具箱里加了一個工具。嗯&#xff0c;但是快下班的時候也碰到一些不太順心的事&#xff0c;讓我有點惱火。我還真沒想到一個專職的前端&#xff0c;加測試&#xff0c;以及其他一堆人&#xff0c;竟然不知道后端返回的markdown,在前端渲染…

10-- 網絡攻擊防御原理全景解析 | 從單包攻防到DDoS軍團作戰(包你看一遍全記住)

&#x1f6e1;? 網絡攻擊防御原理全景解析 | 從單包攻防到DDoS軍團作戰 如果你也對網絡工程師的內容感興趣的話&#xff0c;歡迎看我的最新文章9–BGP路由黑洞&#xff08;超萬字大解析&#xff09;&#xff1a;網絡世界的“百慕大三角“逃生指南(BGP路由配置實驗含路由黑洞,…

解鎖Python print()函數高級用法

print() 是 Python 中最常用的函數之一,用于將內容輸出到控制臺。雖然它的基本用法非常簡單,但 print() 函數還支持許多高級功能,如格式化輸出、重定向輸出、控制分隔符和結束符等。 1. print() 函數的基本用法 1.1 語法 print() 函數的基本語法如下: print(*objects, …

鬼泣:動作系統3

文章目錄 self-Tag&#xff1a;可以直接在游戲運行時通過標簽區分不同Actorsolid隔離&#xff1a;模塊化低耦合&#xff1a;將功能拆分成多個模塊&#xff0c;修改單一模塊時無需修改其他模塊 動作優先級&#xff1a;當前動作能否打斷上一動作函數不能使用timelineset timer by…

Polymer入門指南:從零開始構建、組織、管理Web Component

前言 Web Component是一種強大的技術&#xff0c;它允許開發者創建可重用的自定義元素&#xff0c;其功能和樣式都與原生HTML元素類似。Polymer是一個用于創建Web Component的庫&#xff0c;簡化了開發過程。今天我們將一起來了解如何基于Polymer開發Web Component。 什么是P…

廣度優先搜索(BFS) vs 深度優先搜索(DFS):算法對比與 C++ 實現

目錄 一、BFS 和 DFS 的核心思想 1. BFS&#xff08;廣度優先搜索&#xff09; 2. DFS&#xff08;深度優先搜索&#xff09; 二、BFS 和 DFS 的對比 三、C 代碼實現 1. BFS 實現&#xff08;鄰接表表示的無向圖&#xff09; 2. DFS 實現&#xff08;遞歸與迭代兩種方式&…

vulhub靶機----基于docker的初探索,環境搭建

環境搭建 首先就是搭建docker環境&#xff0c;這里暫且寫一下 #在kali apt update apt install docker.io配置docker源&#xff0c;位置在/etc/docker/daemon.json {"registry-mirrors": ["https://5tqw56kt.mirror.aliyuncs.com","https://docker…

第7章 類與面向對象

6-1 二維平面上的點操作&#xff08;Python3&#xff09; 題目描述 設計一個表示二維平面上點的類 Point。該類應該包含以下功能&#xff1a; 兩個私有屬性 _x 和 _y&#xff0c;分別表示點的橫坐標和縱坐標。 一個構造函數 __init__&#xff0c;用于初始化點的坐標。 一個…

算法訓練篇06--力扣611.有效三角形的個數

目錄 1.題目鏈接&#xff1a;611.有效三角形的個數 2.題目描述&#xff1a; 3.解法一&#xff1a;(暴力解法)(會超時)&#xff1a; 4.解法二(排序雙指針) 1.題目鏈接&#xff1a;611.有效三角形的個數 2.題目描述&#xff1a; 給定一個包含非負整數的數組 nums &#xf…

網絡編程之解除udp判斷客戶端是否斷開

思路&#xff1a;每幾秒發送一條不顯示的信息&#xff0c;客戶端斷開則不再發送信息&#xff0c;超時則表示客戶端斷開連接。&#xff08;心跳包&#xff09; 服務器 #include <head.h>#define MAX_CLIENTS 100 // 最大支持100個客戶端 #define TIMEOUT 5 // 5秒…

Python Cookbook-4.8 二維陣列變換

任務 需要變換一個列表的列表&#xff0c;將行換成列&#xff0c;列換成行。 解決方案 需要一個列表&#xff0c;其中的每一項都是同樣長度的列表&#xff0c;像這樣 arr [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]列表推導提供了簡單方便的方法以完成二維陣列的轉換: print …

B樹與B+樹在MySQL中的應用:索引

數據結構演示網站&#xff1a;Data Structure Visualization 先來了解兩個數據結構B樹與B樹 B樹&#xff1a; N階B樹每個節點最多存儲N-1個Key&#xff0c;N個指針 例如&#xff1a;一個5階B樹&#xff0c;當前節點存儲到5個Key時&#xff0c;中間的數會向上分離&#xff0c;…