- HTML 教程
- HTML - 首頁
- HTML - 路線圖
- HTML - 簡介
- HTML - 歷史與演變
- HTML - 編輯器
- HTML - 基本標籤
- HTML - 元素
- HTML - 屬性
- HTML - 標題
- HTML - 段落
- HTML - 字型
- HTML - 塊
- HTML - 樣式表
- HTML - 格式化
- HTML - 引號
- HTML - 註釋
- HTML - 顏色
- HTML - 圖片
- HTML - 圖片地圖
- HTML - 內聯框架
- HTML - 短語元素
- HTML - 元標籤
- HTML - 類
- HTML - ID
- HTML - 背景
- HTML 表格
- HTML - 表格
- HTML - 表格標題和標題
- HTML - 表格樣式
- HTML - 表格 Colgroup
- HTML - 巢狀表格
- HTML 列表
- HTML - 列表
- HTML - 無序列表
- HTML - 有序列表
- HTML - 定義列表
- HTML 連結
- HTML - 文字連結
- HTML - 圖片連結
- HTML - 郵件連結
- HTML 顏色名稱和值
- HTML - 顏色名稱
- HTML - RGB
- HTML - HEX
- HTML - HSL
- HTML 表單
- HTML - 表單
- HTML - 表單屬性
- HTML - 表單控制元件
- HTML - 輸入屬性
- HTML 媒體
- HTML - 影片元素
- HTML - 音訊元素
- HTML - 嵌入多媒體
- HTML 頭部
- HTML - 頭元素
- HTML - 新增 Favicon
- HTML - Javascript
- HTML 佈局
- HTML - 佈局
- HTML - 佈局元素
- HTML - 使用 CSS 進行佈局
- HTML - 響應式
- HTML - 符號
- HTML - 表情符號
- HTML - 樣式指南
- HTML 圖形
- HTML - SVG
- HTML - Canvas
- HTML API
- HTML - 地理位置 API
- HTML - 拖放 API
- HTML - Web Workers API
- HTML - WebSocket
- HTML - Web 儲存
- HTML - 伺服器傳送事件
- HTML 雜項
- HTML - 文件物件模型 (DOM)
- HTML - MathML
- HTML - 微資料
- HTML - IndexedDB
- HTML - Web 訊息傳遞
- HTML - Web CORS
- HTML - Web RTC
- HTML 演示
- HTML - 音訊播放器
- HTML - 影片播放器
- HTML - 網頁幻燈片
- HTML 工具
- HTML - Velocity Draw
- HTML - 二維碼
- HTML - Modernizer
- HTML - 驗證
- HTML - 顏色拾取器
- HTML 參考
- HTML - 速查表
- HTML - 標籤參考
- HTML - 屬性參考
- HTML - 事件參考
- HTML - 字型參考
- HTML - ASCII 碼
- ASCII 表格查詢
- HTML - 顏色名稱
- HTML - 實體
- MIME 媒體型別
- HTML - URL 編碼
- 語言 ISO 程式碼
- HTML - 字元編碼
- HTML - 已棄用標籤
- HTML 資源
- HTML - 快速指南
- HTML - 有用資源
- HTML - 顏色程式碼生成器
- HTML - 線上編輯器
HTML - 響應式網頁設計
響應式網頁設計是關於設計一個在所有終端使用者裝置(如手機、平板電腦和桌上型電腦)上看起來都很好的網頁。它會根據使用者裝置自動調整大小和其他功能。
響應式網頁有助於提高網站的使用者體驗、可訪問性和效能。
如何製作響應式網頁?
有幾種方法可以使我們的網頁具有響應性。一種常見的做法是使用內建的 CSS 或 Bootstrap 框架,這些框架提供預先設計好的元件和網格系統。以下是一些確保網頁響應性的通用步驟。
- 使用響應式網格佈局
始終使用靈活的網格結構設計佈局,這樣當螢幕尺寸增大時,網格也會相應地擴充套件。 - 靈活的影像和媒體
確保網頁中的影像在其容器內正確縮放。您可以使用 CSS 屬性,例如 "max-width: 100%;" 和 "height: auto;"。 - 使用媒體查詢
您可以使用 CSS 媒體查詢為不同的螢幕尺寸應用不同的樣式。這允許您根據裝置的寬度調整佈局、字型大小和其他設計元素。您可以在這裡瞭解有關媒體查詢的資訊 這裡。 - 包含帶有視口的元標籤
HTML 頭部內的視口元標籤可確保在移動裝置上正確縮放和渲染。 - 使用相對單位
對於字型大小、填充和邊距,使用 em、rem 或百分比等相對單位,以確保文字按比例縮放。
設定視口以進行響應式設計
視口代表使用者裝置的可見區域。如果滾動,則可以檢視視口之外的內容。它透過控制頁面的寬度和比例,幫助網頁在不同的裝置上良好渲染。
要控制視口,請在 <head> 部分新增以下 <meta> 標籤
<meta name="viewport" content="width=device-width, initial-scale=1.0">
上述標籤告訴瀏覽器將頁面寬度與螢幕寬度匹配,並在使用者首次載入頁面時設定初始縮放級別。
我們可以調整視口設定的寬度、初始縮放比例、最大縮放比例、最小縮放比例和使用者可縮放比例。這些調整可以使我們的網站更易於訪問和使用者友好。
HTML <meta> 視口標籤屬性
以下 <meta> 視口標籤的屬性用於響應式設計
| 屬性 | 描述 |
|---|---|
| width | 它控制虛擬視口的寬度。 |
| height | 它控制虛擬視口的高度。 |
| initial-scale | 它指定網頁首次載入時視口的初始縮放級別。 |
| minimum-scale | 它指定使用者可以縮放頁面的最小縮放級別。 |
| maximum-scale | 它定義使用者可以縮放頁面的最大縮放級別。 |
| user-scalable | 它指定使用者是否可以放大或縮小。 |
| interactive-widget | 它定義互動式 UI 小部件如何影響視口。 |
響應式網頁示例
以下是一些使用 HTML 和 CSS 進行響應式網頁設計的示例。檢視以下示例,以瞭解響應式網頁設計的概念。
為網頁設定視口
以下示例說明如何使用 <meta> 視口標籤使網頁具有響應性。
<html>
<head>
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
<style>
.container {
background-color: #f1f1f1;
display: flex;
flex-direction: row;
}
.col {
width: 47%;
margin: auto 1%;
background-color: #4CAF50;
color: white;
text-align: center;
line-height: 100px;
font-size: 10px;
}
</style>
</head>
<body>
<h2>
Setting up dimensions in percentage
for the HTML element
</h2>
<div class="container">
<div class="col"> Column 1 </div>
<div class="col"> Column 2 </div>
</div>
</body>
</html>
建立響應式文字
在 HTML 中,要建立根據視口自動調整字型大小的 響應式文字,我們需要使用 CSS 的 font-size 屬性以及 "vw" 長度單位。vw 是一個縮寫,代表 視口寬度,它是 CSS 的相對長度單位。
相對長度單位始終相對於另一個元素的大小計算。請注意,1vw 等於視口寬度的 1%。
在此示例中,我們使用 "vw" 長度單位來使文字具有響應性。
<html>
<head>
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
</head>
<body>
<h1 style="font-size:6vw;">
Example of Responsive Typography
</h1>
<h2 style="font-size:5vw;">
Responsive text by Using the vw length unit.
</h2>
<p style="font-size:3vw;">
The text will adapt the font size according
to the device's width.
</p>
</body>
</html>
建立響應式影像
在 HTML 中,我們可以建立響應式影像,這意味著它們可以調整大小以適應視口。為此,我們可以將影像的 width 屬性設定為 100% 或 max-width 屬性設定為 100%。width 屬性可以將影像縮放至大於其原始大小,而另一方面,max-width 屬性可確保影像不會縮放超出其原始大小。
以下示例顯示如何建立響應式影像。對於第一個影像,我們使用 width 屬性,對於第二個影像,我們使用 max-width 屬性。
<html>
<head>
<meta name="viewport"
content="width=device-width, initial-scale=1.0">
</head>
<body>
<h2>
Setting the width property to 100%
</h2>
<img src="/images/logo.png"
alt="logo"
style="width:100%; ">
<h2>
Creating the responsive image by
setting the max-width property to
100%
</h2>
<img src="/images/logo.png"
alt="logo"
style="max-width:100%; height:auto; ">
</body>
</html>
使用媒體查詢進行響應式設計
CSS 媒體查詢 充當過濾器,使我們能夠選擇性地為不同的裝置設定網頁樣式。單個網頁可以有多個媒體查詢,每個查詢對應一個特定的螢幕尺寸。為了定義這些螢幕尺寸,我們使用媒體查詢斷點並相應地設定 HTML 元素的樣式。以下是常見的斷點
- 手機:360 x 640 px
- 平板電腦:768 x 1024 px
- 筆記型電腦:1366 x 768 px
- 高畫質桌面:1920 x 1080 px
以下 HTML 程式碼演示了在設計響應式佈局中使用媒體查詢。
<html>
<head>
<style>
.main {
width: 50%;
height: 50vh;
display: flex;
align-items: center;
text-align: center;
margin: 10px auto;
flex-direction: column;
}
img {
width: 100%;
height: 100%;
}
.description {
width: 100%;
height: 100%;
font-size: 30px;
color: red;
margin-top: 20px;
}
/* using media query */
@media screen and (max-width: 600px) {
.main {
width: 100%;
height: 100vh;
margin: 5px auto;
}
.description {
font-size: 20px;
color: blue;
margin-top: 10px;
}
}
</style>
</head>
<body>
<div class="main">
<img src="/images/logo.png"
alt="logo"
width="100"
height="200">
<div class="description">
The above is a logo of Tutorilaspoint.
The logo is responsive, and it will be
displayed in the centre of the screen.
</div>
</div>
</body>
</html>
響應式 Flexbox 佈局
以下示例將使用 Flexbox 佈局 建立一個響應式網頁。對於螢幕寬度小於 768 畫素的裝置,側邊欄將保持在頂部。
<!DOCTYPE html>
<html lang="en">
<head>
<title>
Responsive Flexbox Layout
</title>
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: sans-serif;
line-height: 1.6;
}
.header, .footer {
background-color: #333;
color: white;
text-align: center;
padding: 1rem;
}
.container {
display: flex;
flex-wrap: wrap;
min-height: 80vh;
}
.sidebar {
background: #f4f4f4;
flex: 1;
min-width: 200px;
padding: 1rem;
}
.main-content {
background: #fff;
flex: 3;
padding: 1rem;
min-width: 300px;
}
.footer {
margin-top: auto;
}
@media (max-width: 768px) {
.container {
flex-direction: column;
}
}
</style>
</head>
<body>
<header class="header">
<h1>Header</h1>
</header>
<div class="container">
<aside class="sidebar">
<h2>Sidebar</h2>
<p>Sidebar content goes here.</p>
</aside>
<main class="main-content">
<h2>Main Content</h2>
<p>Main content goes here.</p>
<p>
Resize output window to see
responsiveness.
</p>
</main>
</div>
<footer class="footer">
<p>Footer</p>
</footer>
</body>
</html>