HTML - 響應式網頁設計

你好啊,有志於成為網頁開發者的你!今天,我們將進入令人興奮的響應式網頁設計世界。作為你鄰居的親切計算機老師,我將指導你走過這個旅程,一步一步來。所以,拿起你喜歡的飲料,舒適地坐好,我們一起踏上這個冒險吧!

HTML - Responsiveness

什麼是響應式網頁設計?

在我們跳進「如何」之前,先來了解「什麼」和「為什麼」響應式網頁設計。想像你正在讀一本神奇的書,當你把書靠近臉或是伸出手臂長度時,書的文字大小會自動調整。這不是很棒嗎?這就是響應式網頁設計對網站所做的!

響應式網頁設計是一種方法,讓網頁能在各種設備和視窗或屏幕尺寸上呈現得很好。從桌面計算機顯示器到平板電腦和手機,一個響應式設計確保你的網站在任何地方看起來都不錯,並且功能正常。

如何製作響應式網頁?

既然我們知道了什麼是響應式設計,那麼我們來動手學習如何創建響應式網頁。我們可以使用多種技巧,但會專注在最常見且最有效的方法上。

1. 流體網格

流體網格使用相對單位(如百分比)而不是絕對單位(如像素)。這樣可以讓佈局根據屏幕大小進行調整。

這裡有一個簡單的例子:

<div class="container">
<div class="column">欄位 1</div>
<div class="column">欄位 2</div>
<div class="column">欄位 3</div>
</div>
.container {
width: 100%;
}

.column {
float: left;
width: 33.33%;
}

在這個例子中,每個欄位總是會佔據容器的三分之一寬度,無論屏幕大小如何。

2. 響應式圖像

圖像可以通過設置其最大寬度為容器的100%來製作為響應式。

img {
max-width: 100%;
height: auto;
}

這個CSS規則確保當容器的尺寸變小於圖像原始尺寸時,圖像會縮小,但不會超出原始尺寸。

3. 媒體查詢

媒體查詢允許你為不同的屏幕尺寸應用不同的樣式。它們就像是CSS的條件語句。

/* 為小於600px的屏幕設置樣式 */
@media screen and (max-width: 600px) {
.column {
width: 100%;
}
}

這個媒體查詢會在屏幕寬度為600px或更小的時候改變佈局為單一欄位。

設置視口以適應響應式設計

現在,讓我們來討論一個對於響應式設計至關重要的元素:視口。視口是用戶網頁的可見區域。它會隨著設備而變化 - 在手機上會比計算機屏幕小。

要設置視口,我們使用<meta>標籤在HTML的<head>部分:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

這行代碼告訴瀏覽器將視口的寬度設置為設備的寬度,並將初始縮放級別設置為1.0(無縮放)。

HTML <meta> viewport 標籤屬性

視口<meta>標籤有幾個屬性,讓我們能夠控制我們的頁面如何顯示。我們來看看它們的表格格式:

屬性 描述
width device-width 或特定值 設置視口的寬度
height device-height 或特定值 設置視口的高度
initial-scale 0.0到10.0之間的數字 設置初始縮放級別
user-scalable yes 或 no 允許或不允許縮放操作
minimum-scale 0.0到10.0之間的數字 設置最小縮放級別
maximum-scale 0.0到10.0之間的數字 設置最大縮放級別

例如,如果你想要設置特定寬度並阻止用戶縮放,你可以使用:

<meta name="viewport" content="width=500, user-scalable=no">

但記住,通常來說,為了無障礙性,最好是允許用戶縮放!

響應式網頁的範例

現在,我們已經涵蓋了基礎知識,讓我們來看看一個更全面的響應式網頁範例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Responsive Web Design Example</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
}
.container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
.header {
background-color: #f2f2f2;
padding: 20px;
text-align: center;
}
.content {
display: flex;
flex-wrap: wrap;
}
.column {
flex: 1;
padding: 20px;
min-width: 200px;
}
@media screen and (max-width: 600px) {
.column {
flex: 100%;
}
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>歡迎來到我們的響應式網站</h1>
</div>
<div class="content">
<div class="column">
<h2>欄位 1</h2>
<p>這是第一欄的一些內容。</p>
</div>
<div class="column">
<h2>欄位 2</h2>
<p>這是第二欄的一些內容。</p>
</div>
<div class="column">
<h2>欄位 3</h2>
<p>這是第三欄的一些內容。</p>
</div>
</div>
</div>
</body>
</html>

在這個例子中,我們創建了一個簡單的網頁,有一個頭部和三個欄位。在較大的屏幕上,欄位會並排顯示,但在小於600px寬的屏幕上,它們會垂直堆疊。

至此,各位!你已經邁出了進入響應式網頁設計世界的第一步。記住,熟能生巧,所以不要害怕嘗試這些技巧。在你還沒有察覺之前,你就會創造出在任何設備上都看起來很棒的漂亮、響應式網站!

當我們結束時,我想到我曾經有過的一個學生,她對響應式設計感到害怕。她認為這是某種黑暗魔法。但在幾節課和大量的練習之後,她最終創造出一個響應式的作品集,並找到了一份很好的工作!所以持續努力,誰知道你新學到的技能會帶你到哪裡去呢?

大家快樂編程!?

Credits: Image by storyset