RWD 與 Bootstrap入門
講者:王婕瑜
日期:2020/4/9
OUTLINE
-
RWD 介紹
-
Bootstrap 介紹
RWD 介紹
- 基本概念
- 實作
- LAB-01
- LAB-02
Responsive web design 響應式設計

舉個例子
基本概念
為什麼要用 RWD?


減少開發成本
舒適的瀏覽體驗
實作
設定 Viewport
<!--<head>-->
<meta name="viewport" content="width=device-width; initial-scale=1.0">| 屬性 | 解釋 |
|---|---|
| width | 畫面寬度 |
| height | 畫面高度 |
| initial-scale | 初始縮放比例 |
| minimum-scale | 最小縮放比例 |
| maximum-scale | 最大縮放比例 |
| user-scaleble | 是否允許使用者改變縮放比例 |
圖片設定
/*<style>*/
img {
width:100%;
height:auto;
}設計模式

Media Queries
| 屬性 | 解釋 |
|---|---|
| width | 視區寬度 |
| height | 視區高度 |
| device-width | 裝置寬度 |
| device-height | 裝置高度 |
| orientation | 裝置寬高比 |
| aspect-ratio | 視區寬高比 |
| 裝置類型 | |
|---|---|
| all | 所有裝置 |
| screen | 一般電腦螢幕 |
| 印表機列印輸出 | |
| speech | 朗讀式裝置 |
| 條件語法 | |
|---|---|
| and | 符合多個條件 |
| only | 單一條件 |
| not | 不要某一個條件 |
版面流動方式
@media (min-width: 600px) {
.c2, .c3, .c4, .c5 {
width: 50%;
}
}
@media (min-width: 800px) {
.c1 {
width: 60%;
}
.c2 {
width: 40%;
}
.c3, .c4 {
width: 33%;
}
.c5 {
width: 34%;
}
}LAB - 01
500 px
1000 px
300 px
100px
裝置:一般電腦螢幕
<!DOCTYPE html>
<html>
<head>
<title>lab1</title>
<style>
.box{
width: 300px;
height: 100px;
background-color: pink;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>創造一個區塊
<!--Media Queries-->
<style>
@media screen and (min-width: 500px){
.box{
width: 500px;
background-color: green;
}
}
@media screen and (min-width: 1000px){
.box{
width: 1000px;
background-color: blue;
}
}
</style>加上 Media Queries
<!DOCTYPE html>
<html>
<head>
<title>lab1</title>
<style>
.box{
width: 300px;
height: 100px;
background-color: pink;
}
@media screen and (min-width: 500px){
.box{
width: 500px;
background-color: green;
}
}
@media screen and (min-width: 1000px){
.box{
width: 1000px;
background-color: blue;
}
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html><!--Media Queries-->完整程式碼
<!DOCTYPE html>
<html>
<head>
<title>LAB 2</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width; initial-scale=1.0">
<style type="text/css">
* {
box-sizing: border-box;
background-color: #FAF0E6;
}
p {
margin: 20px;
}
img {
max-width: 100%;
height: auto;
}
.container {
max-width: 800px;
margin: 0 auto;
display: flex;
flex-flow: row wrap;
}
.s1, .s2, .s3{
width: 100%;
border: 1px solid #000;
}
.s1 {
background-color: #FFE4C4;
}
.s2 {
background-color: #FAEBD7;
}
.s3 {
background-color: #FFF8DC;
}
.footer {
background-color: #FFE8BF;
}
/* media query */
@media (min-width: 600px) {
.s2, .s3{
width: 50%;
}
}
@media (min-width: 800px){
.s1{
width: 90%;
}
.s2 {
width: 45%;
}
.s3{
width: 45%;
}
}
</style>
</head>
<body>
<div class="header">
<h1>When your life is not going right, then turn left.</h1>
</div>
<div class="container">
<img src="https://cdn.royalcanin-weshare-online.io/jyJEPmYBaxEApS7LtgZ4/v3/ec52h-older-cats-and-incontinence-causes-and-treatment-hero-cat"></a>
<h2>Lorem ipsum</h2>
<div class="s1">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam pulvinar aliquet fermentum. Integer auctor accumsan turpis. Cras sodales a velit sit amet sagittis.</p>
</div>
<div class="s2">
<p>Duis gravida neque dictum lorem rhoncus, vitae placerat nulla vestibulum. Nunc ut nisi at justo placerat malesuada ac vitae odio. Vivamus tempus egestas laoreet. Mauris consequat vitae enim ut auctor. Donec pharetra, orci tincidunt sollicitudin porttitor, dui felis bibendum tellus, quis facilisis ante nulla ut est.</p>
</div>
<div class="s3">
<p>Pellentesque efficitur at massa non iaculis. Pellentesque elementum erat quis elit cursus efficitur. Quisque nisl ipsum, mollis sit amet eleifend vel, aliquet eu est.</p>
</div>
</div>
</body>
</html>完整程式碼
Bootstrap 介紹
- 基本概念
- 實作
- Grid System
- LAB-03
基本概念

- 前端框架
- 提供建立 RWD 網站的功能
Bootstrap 3 vs Bootstrap 4
為什麼要使用 Bootstrap?
- 簡單
- 響應式
- 網頁兼容性
- 行動優先(mobile-first)

載入 BootstrapCDN
<!--放在head標籤裡-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">實作
語言設定
<html lang="zh-TW"><p lang="fr">Je suis français</p>特定段落設定語言
Grid System

Column(行)
Row(列)
<div class="container">
<div class="row">
<div class="col-*-*"></div>
<div class="col-*-*"></div>
</div>
<div class="row">...</div>
</div>
<div class="container">....| 設備 | 縮寫 |
|---|---|
| 手機設備 | xs |
| 平板設備 | sm |
| 電腦版 | md |
| 電腦版桌面 | lg |
.col - 設備 - 占了幾格
LAB - 03
用 Grid system 的概念,改寫 LAB - 02

LAB - 03
<!DOCTYPE html>
<html>
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width; initial-scale=1.0">
<title>lab 3</title>
<style type="text/css">
* {
box-sizing: border-box;
background-color: #FAF0E6;
}
p {
margin: 20px;
text-align: center;
}
img {
max-width: 100%;
height: auto;
}
.container {
max-width: 800px;
margin: 0 auto;
display: flex;
flex-flow: row wrap;
}
</style>
</head>
<body>
<div class="header">
<h1>When your life is not going right, then turn left.</h1>
</div>
<div class="container">
<img src="https://cdn.royalcanin-weshare-online.io/jyJEPmYBaxEApS7LtgZ4/v3/ec52h-older-cats-and-incontinence-causes-and-treatment-hero-cat"></a>
<h2>Lorem ipsum</h2>
<div class="row">
<div style="background-color: #FFE4C4; width: 100%; border: 1px solid #000;">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam pulvinar aliquet fermentum. Integer auctor accumsan turpis. Cras sodales a velit sit amet sagittis.</p>
</div>
<div style="background-color: #FAEBD7; width: 100%; border: 1px solid #000;">
<p>Duis gravida neque dictum lorem rhoncus, vitae placerat nulla vestibulum. Nunc ut nisi at justo placerat malesuada ac vitae odio. Vivamus tempus egestas laoreet. Mauris consequat vitae enim ut auctor. Donec pharetra, orci tincidunt sollicitudin porttitor, dui felis bibendum tellus, quis facilisis ante nulla ut est.</p>
</div>
<div style="background-color: #FFF8DC; width: 100%; border: 1px solid #000;">
<p>Pellentesque efficitur at massa non iaculis. Pellentesque elementum erat quis elit cursus efficitur. Quisque nisl ipsum, mollis sit amet eleifend vel, aliquet eu est.</p>
</div>
<div style="background-color: #FFF8DC; width: 100%; border: 1px solid #000;">
<p>Pellentesque efficitur at massa non iaculis. Pellentesque elementum erat quis elit cursus efficitur. Quisque nisl ipsum, mollis sit amet eleifend vel, aliquet eu est.</p>
</div>
</div>
</div>
</body>
</html>題目
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width; initial-scale=1.0">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">設定語言、引入BootstrapCDN
<div class="container">
<h2>Lorem ipsum</h2>
<div class="row">
<div class="col-xs-6 col-sm-4 col-md-3" style="background-color: #FFE4C4; width: 100%; border: 1px solid #000;">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam pulvinar aliquet fermentum. Integer auctor accumsan turpis. Cras sodales a velit sit amet sagittis.</p>
</div>
</div>
</div>
Grid System
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width; initial-scale=1.0">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<title>lab 3</title>
<style type="text/css">
* {
box-sizing: border-box;
background-color: #FAF0E6;
}
p {
margin: 20px;
text-align: center;
}
img {
max-width: 100%;
height: auto;
}
.container {
max-width: 800px;
margin: 0 auto;
display: flex;
flex-flow: row wrap;
}
</style>
</head>
<body>
<div class="header">
<h1>When your life is not going right, then turn left.</h1>
</div>
<div class="container">
<img src="https://cdn.royalcanin-weshare-online.io/jyJEPmYBaxEApS7LtgZ4/v3/ec52h-older-cats-and-incontinence-causes-and-treatment-hero-cat"></a>
<h2>Lorem ipsum</h2>
<div class="row">
<div class="col-xs-6 col-sm-4 col-md-3" style="background-color: #FFE4C4; width: 100%; border: 1px solid #000;">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam pulvinar aliquet fermentum. Integer auctor accumsan turpis. Cras sodales a velit sit amet sagittis.</p>
</div>
<div class="col-xs-6 col-sm-4 col-md-3" style="background-color: #FAEBD7; width: 100%; border: 1px solid #000;">
<p>Duis gravida neque dictum lorem rhoncus, vitae placerat nulla vestibulum. Nunc ut nisi at justo placerat malesuada ac vitae odio. Vivamus tempus egestas laoreet. Mauris consequat vitae enim ut auctor. Donec pharetra, orci tincidunt sollicitudin porttitor, dui felis bibendum tellus, quis facilisis ante nulla ut est.</p>
</div>
<div class="col-xs-6 col-sm-4 col-md-3" style="background-color: #FFF8DC; width: 100%; border: 1px solid #000;">
<p>Pellentesque efficitur at massa non iaculis. Pellentesque elementum erat quis elit cursus efficitur. Quisque nisl ipsum, mollis sit amet eleifend vel, aliquet eu est.</p>
</div>
<div class="col-xs-6 col-sm-4 col-md-3" style="background-color: #FFF8DC; width: 100%; border: 1px solid #000;">
<p>Pellentesque efficitur at massa non iaculis. Pellentesque elementum erat quis elit cursus efficitur. Quisque nisl ipsum, mollis sit amet eleifend vel, aliquet eu est.</p>
</div>
</div>
<div class="container-fluid">
<div class="row">
<p>i am a footer</p>
</div>
</div>
</div>
</body>
</html>完整程式碼
REFERENCES
Dez (2019). RWD 教學入門:響應式網頁設計的實作方法 .Retrieved from https://tw.alphacamp.co/blog/rwd-responsive-web-design-introduction
鳥哥 (2017). 第 10 堂課 - 初探 bootstrap 網頁製作 .Retrieved from http://dic.vbird.tw/webdesign/main2017/unit10.php
Bootstrap (2020) . Bootstrap 4 繁體中文手冊 [六角學院譯] .Retrieved from https://bootstrap.hexschool.com/docs/4.1/getting-started/introduction/
THANKS FOR LISTENING
RWD 與 Bootstrap 入門
By juliewah
RWD 與 Bootstrap 入門
SIRLA 108-2 對外課程
- 271