版本說明
當前版本號[20231122]。
版本 | 修改說明 |
---|---|
20231122 | 初版 |
目錄
文章目錄
- 版本說明
- 目錄
- 移動 Web 第五天
- 01-媒體查詢
- 基本寫法
- 書寫順序
- 案例-左側隱藏
- 媒體查詢-完整寫法
- 關鍵詞 / 邏輯操作符
- 媒體類型
- 媒體特性
- 媒體查詢-外部CSS
- 02-Bootstrap
- 簡介
- 使用步驟
- 下載
- 使用
- 柵格系統
- 全局樣式
- 按鈕
- 表格
- 組件
- 字體圖標
- 下載
- 使用
- 03-綜合案例-alloyTeam
- 準備工作
- 頭部導航
- 輪播圖圖片
- 輪播圖響應式
- 開源項目響應式
- 開源項目內容布局
移動 Web 第五天
響應式布局方案
- 媒體查詢
- Bootstrap框架
01-媒體查詢
基本寫法
- max-width:最大寬度(小于等于)
- min-width:最小寬度(大于等于)
書寫順序
- min-width(從小到大)
- max-width(從大到小)
如果不按順序去寫,按css的特性來說,后面的css就會重疊前面的css樣式,致使前面的無法生效。
案例-左側隱藏
需求:網頁寬度小于等于768px則隱藏左側區域
- HTML 結構
<div class="box"><div class="left">left</div><div class="main">響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果響應式網頁效果</div>
</div>
- CSS 樣式
.box {display: flex;
}.left {width: 300px;height: 500px;background-color: pink;
}.main {flex: 1;height: 500px;background-color: skyblue;
}@media (max-width: 768px) {.left {display: none;}
}
1、先建立初步的模型,同時放了一段800字左右的文章作為測試。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>媒體查詢</title><style>*{margin: 0;padding: 0;}</style>
</head>
<body><div class="box"><div class="left">left</div><div class="main">余華,中國當代著名作家,代表作品有《活著》、《許三觀賣血記》等。以下是一段來自余華的《活著》的原文段落:那天,我去看福貴。他正在田里干活,看到我,就放下手里的鋤頭,走過來跟我打招呼。他的臉上掛著笑容,那是一種發自內心的笑容,讓我想起了我們小時候一起玩耍的日子。福貴告訴我,他現在的生活雖然艱苦,但他已經很滿足了。他說:“我現在有地種,有飯吃,還有老婆孩子陪著我,這就夠了。”我看著他那張布滿皺紋的臉,心里不禁感嘆:這個曾經的富家子弟,如今已經變成了一個勤勞樸實的農民。我們一起走在鄉間的小路上,福貴一邊走,一邊給我講述著他的故事。他說,自從他的父親去世后,他就開始了艱難的生活。他先是賣掉了家里的地和房子,后來又把妻子和孩子送到了城里去打工。他自己則留在了鄉下,靠種地為生。福貴說:“那時候,我真的覺得活著沒有什么意義。每天辛辛苦苦地干活,卻換來的只是一碗稀飯。可是,我不能死,我要活下去,為了我的家人。”他的話讓我想起了那些年我們在城里的日子,那時候我們總是抱怨生活的艱辛,卻從未想過要放棄。我們走到了一片麥田前,福貴指著那片金黃的麥子說:“你看,這就是我現在的生活。雖然辛苦,但我覺得很幸福。因為我知道,這片麥子是我辛勤勞動的結果,它們會讓我的家人吃飽穿暖。”我看著他那充滿自信的眼神,心里不禁為他感到驕傲。夕陽西下,我們站在田埂上,看著遠處的山巒和田野。福貴說:“你知道嗎?我覺得我現在過得比那些有錢人還要幸福。因為他們雖然有錢,但他們失去了生活的意義。而我呢?雖然窮,但我活得充實。”我聽著他的話,心里不禁為他的豁達和樂觀感到敬佩。臨別時,福貴緊緊地握住我的手,說:“謝謝你來看我,希望我們以后還能常常見面。”我點點頭,心里默默地祝愿他的生活越來越好。那天,我從福貴那里學到了很多。他讓我明白了生活的真諦不在于物質的豐富,而在于心靈的滿足。只要我們用心去感受生活的美好,那么,無論我們身處何地,都能找到幸福的源泉。</div></div>
</body>
</html>
2、加入左側欄區域。
.left{width: 300px;height: 500px;background-color: pink;}
3、給文字區域添加高,并定好這個元素作為彈性容器,其子元素將按照彈性布局進行排列。
.box{display: flex;}.main{height: 500px;background-color: skyblue;}
4、給予固定寬高,讓flex為1,把left的寬度滿足后,剩下的區域均由main來占據。
.main{flex: 1;height: 500px;background-color: skyblue;}
5、實現了當網頁寬度小于等于768px,就隱藏左側區域。
@media (max-width : 768px) {.left{display: none;}}
媒體查詢-完整寫法
關鍵詞 / 邏輯操作符
- and
- only
- not
媒體類型
媒體類型用來區分設備類型
- screen:屏幕設備
- 打印預覽:print
- 閱讀器:speech
- 不區分類型:all
媒體特性
- 視口寬高:width / height
- 視口最大寬高:max-width ;max-height
- 視口最小寬高:min-width;min-height
- 屏幕方向:orientation
- protrait:豎屏
- landscape:橫屏
媒體查詢-外部CSS
02-Bootstrap
簡介
Bootstrap 是由 Twitter 公司開發維護的前端 UI 框架,它提供了大量編寫好的 CSS 樣式,允許開發者結合一定 HTML 結構及JavaScript,快速編寫功能完善的網頁及常見交互效果。
中文官網: https://www.bootcss.com/
想查看更多配置可點擊Bootstrap中文文檔:[Bootstrap中文文檔](Bootstrap 入門 · Bootstrap v5 中文文檔 v5.3 | Bootstrap 中文網 (bootcss.com))
嫌上面中文少的可以點這個:Bootstrap中文網
使用步驟
下載
下載:Bootstrap V5中文文檔 → 進入中文文檔 → 下載 →下載 Bootstrap 生產文件
使用
-
引入 Bootstrap CSS 文件
注:記得是:
/Bootstrap/css/bootstrap.min.css
!!!不要一下子tab就選了/Bootstrap/css/bootstrap-grid.min.css
.
<link rel="stylesheet" href="./Bootstrap/css/bootstrap.min.css">
- 調用類名: container 響應式布局版心類
<div class="container">測試</div>
1、做個案例來側試 Bootstrap 的使用方法。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>bootstrap使用</title><link rel="stylesheet" href="/Bootstrap/css/bootstrap.min.css"><style>div{height: 50px;background-color: pink;}</style>
</head>
<body><div class="container">1</div>
</body>
</html>
2、且還是響應式,根據不同的寬度,div盒子也能呈現不同的形狀:
柵格系統
作用:響應式布局
柵格化是指將整個網頁的寬度分成12等份,每個盒子占用的對應的份數
例如:一行排4個盒子,則每個盒子占 3份 即可(12 / 4 = 3)
- row 類:行,可以讓內容在一行排(flex布局)
完整網格示例如下:
在不同的視口區間,版心寬度要不同,才能做到不同的響應效果。子集排列方式也要不一樣,調用類名就能實現。
全局樣式
按鈕
類名
- btn:默認樣式
- btn-success:成功
- btn-warning:警告
- ……
- 按鈕尺寸:btn-lg / btn-sm
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="../Bootstrap/css/bootstrap.min.css">
</head>
<body><button class="btn btn-danger">按鈕1</button><button class="btn btn-success">按鈕2</button>
</body>
</html>
表格
表格類:
- table:默認樣式
- table-striped:隔行變色
- table-success:表格顏色
- ……
組件
1.引入樣式表
2.引入 js 文件
3.復制結構,修改內容
字體圖標
下載
導航 / Extend:圖標庫 → 安裝 → 下載安裝包 → bootstrap-icons-1.X.X.zip
使用
- 復制 fonts 文件夾到項目目錄
- 網頁引入 bootstrap-icons.css 文件
- 調用 CSS 類名(圖標對應的類名)
- 前面加上“ bi- ”。
<i class="bi-android2"></i>
03-綜合案例-alloyTeam
準備工作
-
HTML 結構
注:這里引用的css順序不得調換位置!先是
bootstrap.min.css
,再是bootstrap-icons.css
,最后才是index.css
.
<title>騰訊全端</title>
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<!-- 層疊性:咱們的css 要 層疊 框架的,所以要先列框架的css -->
<link rel="stylesheet" href="./Bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="./Bootstrap/font/bootstrap-icons.css">
<link rel="stylesheet" href="./css/index.css"><!-- 為實現動態效果而引入的JS -->
<script src="./Bootstrap/js/bootstrap.min.js"></script>
- less 樣式
// out: ../css/
頭部導航
- HTML 結構
<!-- 導航 -->
<nav class="navbar navbar-expand-lg bg-body-tertiary fixed-top"><div class="container"><a class="navbar-brand" href="#"><img src="./assets/images/logo.png" alt=""></a><button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button><div class="collapse navbar-collapse" id="navbarNav"><ul class="navbar-nav"><li class="nav-item"><a class="nav-link active" aria-current="page" href="#">首頁</a></li><li class="nav-item"><a class="nav-link" href="#">博客</a></li><li class="nav-item"><a class="nav-link" href="#">Github</a></li><li class="nav-item"><a class="nav-link" href="#">TWeb Conf</a></li><li class="nav-item"><a class="nav-link" href="#">SuperStar</a></li><li class="nav-item"><a class="nav-link" href="#">Web前端導航</a></li><li class="nav-item"><a class="nav-link" href="#">關于</a></li></ul></div></div>
</nav>
- less 樣式
// 導航
.bg-body-tertiary {background-color: transparent !important;.navbar-collapse {flex-grow: 0;}
}
1、引入導航欄,修改背景顏色。
.bg-light{background-color: pink !important;
}
輪播圖圖片
- HTML 結構
<!-- 輪播圖 -->
<div id="carouselExampleIndicators" class="carousel slide"><div class="carousel-indicators"><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="Slide 2"></button><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="3" aria-label="Slide 4"></button></div><div class="carousel-inner"><div class="carousel-item active"></div><div class="carousel-item"></div><div class="carousel-item"></div><div class="carousel-item"></div></div><button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev"><span class="carousel-control-prev-icon" aria-hidden="true"></span><span class="visually-hidden">Previous</span></button><button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next"><span class="carousel-control-next-icon" aria-hidden="true"></span><span class="visually-hidden">Next</span></button>
</div>
- less 樣式
.carousel {.carousel-item {height: 500px;background-size: cover;background-position: center 0;}.carousel-item:nth-child(1) {background-image: url(../assets/uploads/banner_1.jpg);}.carousel-item:nth-child(2) {background-image: url(../assets/uploads/banner_2.jpg);}.carousel-item:nth-child(3) {background-image: url(../assets/uploads/banner_3.jpg);}.carousel-item:nth-child(4) {background-image: url(../assets/uploads/banner_4.jpg);}
}
1、插入輪播圖所需圖片。
<div class="carousel-item active"></div><div class="carousel-item"></div><div class="carousel-item"></div>
// 輪播圖
.carousel{.carousel-item{height: 500px;background-image: url(../assets/uploads/banner_1.jpg);}
}
2、將四張照片均放進去,并把下面的輪播按鈕設為四個。
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="Slide 2"></button><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button><button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="3" aria-label="Slide 4"></button></div><div class="carousel-inner"><div class="carousel-item active"></div><div class="carousel-item"></div><div class="carousel-item"></div><div class="carousel-item"></div>
// 輪播圖
.carousel{.carousel-item{height: 500px;}.carousel-item:nth-child(1){background-image: url(../assets/uploads/banner_1.jpg);}.carousel-item:nth-child(2){background-image: url(../assets/uploads/banner_2.jpg);}.carousel-item:nth-child(3){background-image: url(../assets/uploads/banner_3.jpg);}.carousel-item:nth-child(4){background-image: url(../assets/uploads/banner_4.jpg);}
}
3、圖片太大,要記得縮放。
.carousel-item{height: 500px;background-size: cover;background-position: center 0;}
輪播圖響應式
- less 樣式
// 輪播圖: 小于768圖片高度250 max;大于等于768圖片高度400 min;大于等于992圖片高度500
.carousel {// 響應式 → 媒體查詢@media (max-width: 768px) {.carousel-item {height: 250px;}}@media (min-width: 768px) {.carousel-item {height: 400px;}}@media (min-width: 992px) {.carousel-item {height: 500px;}}.carousel-item {// height: 500px;background-size: cover;background-position: center 0;}
}
開源項目響應式
- HTML 結構
<!-- 開源項目 -->
<div class="project container"><div class="title"><h2>OpenSource / 開源項目</h2><p>種類眾多的開源項目,讓你愛不釋手</p></div><div class="content"><div class="row"><div class="col-lg-3 col-md-6">1</div><div class="col-lg-3 col-md-6">2</div><div class="col-lg-3 col-md-6">3</div><div class="col-lg-3 col-md-6">4</div></div></div>
</div>
- less 樣式
// 開源項目
// 視口寬度大于992;一行排4個盒子 col-lg-3
// 視口寬度大于768;一行排2個盒子 col-md-6
.project {margin-top: 60px;text-align: center;
}
1、設置中間文字。
<!-- 開源項目 --><div class="project container"><div class="title"><h2>OpenSource / 開源項目</h2><p>種類眾多的開源項目,讓你愛不釋手</p></div></div>
// 開源項目
.project{margin-top: 60px;text-align: center;
}
2、進一步修改細節。
<div class="content"><div class="row"><div class="col-lg-3 col-md-6">1</div><div class="col-lg-3 col-md-6">2</div><div class="col-lg-3 col-md-6">3</div><div class="col-lg-3 col-md-6">4</div></div></div>
開源項目內容布局
- HTML 結構
<!-- 開源項目 -->
<div class="project container"><div class="title"><h2>OpenSource / 開源項目</h2><p>種類眾多的開源項目,讓你愛不釋手</p></div><div class="content"><div class="row"><div class="col-lg-3 col-md-6"><a href="#">1</a></div><div class="col-lg-3 col-md-6"><a href="#">1</a></div><div class="col-lg-3 col-md-6"><a href="#">1</a></div><div class="col-lg-3 col-md-6"><a href="#">1</a></div></div></div>
</div>
- less 樣式
.project {margin-top: 60px;text-align: center;.row {div {margin-bottom: 10px;height: 200px;// background-color: pink;a {// 塊級的寬度和父級一樣大display: block;height: 200px;background-color: green;border-radius: 4px;}&:nth-child(1) a {background-color: #70c3ff;}&:nth-child(2) a {background-color: #fd6a7f;}&:nth-child(3) a {background-color: #7f8ea0;}&:nth-child(4) a {background-color: #89d04f;}}}
}
1、分為四個部分,后續只需要把圖片上傳完即可。
// 開源項目
.project{margin-top: 60px;text-align: center;.row {div {margin-bottom: 10px;height: 200px;// background-color: pink;a {// 塊級的寬度和父級一樣大display: block;height: 200px;background-color: green;border-radius: 4px;}}}
}