Day14:響應式網頁

通過媒體查詢、Bootstrap 框架完成騰訊全端網頁響應式布局。


一、響應式布局方案

1、什么是響應式布局

它的主要特點是能夠使網頁根據不同的設備屏幕尺寸(如桌面電腦、平板電腦、手機等)和分辨率自動調整布局和顯示效果,以提供最佳的用戶體驗。

  • 適應不同屏幕寬度:確保頁面元素在各種屏幕大小下都能合理顯示,不會出現內容溢出或布局混亂的情況。
  • 保持可讀性和可用性:文字大小、按鈕間距等元素會自動適配,方便用戶操作和閱讀。
  • 優化圖片顯示:圖片會根據屏幕尺寸進行縮放,避免浪費帶寬和加載時間。

這里以騰訊全端為例,當網頁尺寸變化時,頁面布局也跟著變化。

在這里插入圖片描述

2、怎么實現響應式布局
  1. 媒體查詢
@media (條件) {html {height: 300px;background-color: green;}
}
  1. Boostrap 框架

Bootstrap 是由 Twitter 公司開發維護的前端 UI 框架,它提供了大量編寫好的 CSS 樣式,允許開發者結合一定 HTML 結構及 JavaScript,快速編寫功能完善的網頁及常見交互效果。


二、媒體查詢

1、媒體查詢完整寫法(了解)

這里先講一下媒體查詢的完整寫法:

@media 媒體類型 關鍵詞 (媒體特性) {選擇器 {樣式}
}
  • 媒體類型

媒體類型是用來區分設備類型的,如:屏幕設備、打印設備等,其中手機、平板、電腦都屬于屏幕設備。

類型名稱描述
屏幕screen帶屏幕的設備
打印預覽print打印預覽模式
閱讀器speech屏幕閱讀模式
不區分類型all默認值,包括以上3中情況
  • 關鍵詞/邏輯操作符

(1)and
(2)only
(3)not

  • 媒體特性

媒體特性主要用來描述媒體類型的具體特征,如當前屏幕的寬高、分辨率、橫屏或豎屏等。

特性名稱屬性
視口的寬高width、height數值
視口的最大寬或高max-width、max-height數值
視口的最小寬或高min-width、min-height數值
屏幕方向orientationportrait: 豎屏
landscape: 橫屏

媒體查詢完整的寫法了解就可以了,因為實際開發中,我們經常使用的是簡寫的寫法,即:

@media (媒體特性) {選擇器 {樣式}
}
2、min-width 和 max-width
  • min-width:最小寬度,作為媒體特性的條件時,表示最小寬度等于 某個px 值時,即 當視口寬度 大于等于 某個px 值 時,媒體查詢生效。

  • max-width:最大寬度,作為媒體特性的條件時,表示最大寬度等于 某個px 值時,即 當視口寬度 小于等于某個px 值 時,媒體查詢生效。

3、書寫順序

當媒體特性是 max-width 和 min-width 時,書寫順序很重要,如果順序錯了,可能導致效果無法實現,因為 css 具有層疊性。

  • min-width:從小到大的書寫順序
  • max-width:從大到小的書寫順序

拿 min-width 舉例,如果不按這個順序寫,比如先寫 min-width:1200px,再寫 min-width: 992px,當視口寬度大于 1200px 時,也滿足大于 992px,因為 css 具有層疊性, min-widht: 992px 里面的代碼會覆蓋 min-width: 1200px里面的代碼,導致當屏幕大于 1200px 時,無法顯示 min-width: 1200px 里面的代碼。所以要按照順序,不能打亂順序書寫。

<head><title>書寫順序</title><style>/* 網頁默認背景色是灰色 */body {background-color: #ccc;}/*如果不按這個順序寫,比如先寫 min-width:1200,再寫 min-width: 992當視口寬度大于1200,也滿足大于 992,min-widht: 992 里面的代碼會覆蓋 min-width: 1200 里面的代碼。所以要按照順序,不能打亂順序書寫。min-width:大于等于某個px值才生效, 想象屏幕逐漸變大, 后面的媒體查詢想要生效,只能px值越大,越往后面寫,才能生效,書寫順序從小到大max-width:小于等于某個px值才生效, 想象屏幕逐漸變下, 后面的媒體查詢想要生效,只能px值越小,越往后面寫,才能生效,書寫順序從大到小*//* 屏幕寬度 大于等于 768px,網頁背景色是粉色 min */@media (min-width: 768px) {body {background-color: pink;}}/* 屏幕寬度 大于等于 992px,網頁背景色是綠色 min */@media (min-width:992px) {body {background-color: green;}}/* 屏幕寬度 大于等于 1200px,網頁背景色是 skyblue  min */@media (min-width: 1200px) {body {background-color: skyblue;}}</style>
</head>
4、媒體查詢-外部CSS

在實際開發項目中,如果使用媒體查詢的次數或代碼很少時,可以將代碼寫在內部樣式表中,如果媒體查詢用到的次數或代碼很多,可以在使用link標簽在引入外部CSS時進行媒體查詢,滿足媒體查詢時 html 才加載 CSS 文件,當不滿足媒體查詢時,html 移除這個 CSS 文件,CSS 文件中就不需要在寫媒體查詢了,只需要正常寫 CSS 代碼就行。

  • 完整寫法 (了解)
<link rel="stylesheet" media="媒體類型 邏輯操作符 (媒體查詢)" href="xx.css">
// 當視口寬度小于等于 768px 時,引入 pink.css 這個文件
<link rel="stylesheet" media="screen and (max-width: 768px)" href="./pink.css">
  • 簡寫寫法(常用)
<link rel="stylesheet" media=" (媒體查詢)" href="xx.css">
// 當視口寬度大于等于 1200px 時,引入 green.css 這個文件
<link rel="stylesheet" media="(min-width: 1200px)" href="./green.css">

這種寫法是動態加載 CSS,只有滿足媒體查詢時,html 才加載 CSS 文件,當不滿足的時候,html 就移除這個 CSS 文件,并不是滿足時加載之后,就一直加載了,不滿足時還會移除這個 CSS 文件。


三、Bootstrap

1、Bootstrap 簡介

Bootstrap 是由 Twitter 公司開發維護的前端 UI 框架,它提供了大量編寫好的 CSS 樣式,允許開發者結合一定 HTML 結構及 JavaScript,快速編寫功能完善的網頁及常見交互效果。

2、Bootstrap 下載
  • 下載步驟:Bootstrap 中文文檔 → 下載 → Bootstrap 生產文件

在這里插入圖片描述

3、Bootstrap 使用

這里只簡單的講解一下 Bootstrap 的使用,這個框架功能很多,如果要全部講解,能夠專門開一個專欄講解了。網上也有很多講解這個框架怎么使用的博客是視頻,感興趣的同學可以自行去找。

  1. 將下載解壓好的文件拖入到工程。

  2. 引入 Bootstraps CSS 文件

<link rel="stylesheet" href="./Bootstrap/css/bootstrap.min.css">
  1. 調用類名:container:響應式布局版心居中類。
<div class="container">版心居中</div>
4、Bootstrap 柵格系統

柵格化是指將整個網頁視口寬度分成12等份,每個盒子占用的對應的分數。

例如:一行排 4 個盒子,則每個盒子占 3 份,即(12 / 4 = 3)。

在這里插入圖片描述

在這里插入圖片描述

使用柵格布局,要使用類名為 row 的元素作為父級,子級才能使用柵格系統布局。

柵格系統布局以 col-*-* 的格式作為類名,如:col-xl-3 表示當視口寬度大于等于 1200px 時,該元素占了 3 份,即該元素寬度占視口寬度的 1/4 。

估計這對于新接觸這個框架的同學有很多疑問,為什么這么寫類名、為什么這么寫就能實現這些功能等等,但是這些類名的命名和寫法是框架開發者規定的,必須這么寫,我們只能通過多寫多練,將這些常用的類名記住,沒有其他捷徑。

下面通過一個例子,幫助大家理解:

<head><title>柵格系統</title><link rel="stylesheet" href="./Bootstrap/css/bootstrap.min.css">
</head><body><!-- 視口寬度大于等于1200px,一個盒子占3份, 即一行排4個視口寬度大于等于768px,一個盒子占6份, 即一行排2個視口寬度大于等于576px,一個盒子占12分, 即一行排1個...沒有書寫順序的要求--><!-- 版心 → row → 子級 --><div class="container"><div class="row"><div class="col-sm-12 col-md-6 col-xl-3" style="background-color: red;">1</div><div class="col-sm-12 col-md-6 col-xl-3" style="background-color: yellow;">2</div><div class="col-sm-12 col-md-6 col-xl-3" style="background-color: green;">3</div><div class="col-sm-12 col-md-6 col-xl-3" style="background-color: pink;">4</div></div></div>
</body>

在這里插入圖片描述

5、Bootstrap Button 類

Bootstrap 提供了很多 Button 類 的樣式,也不用刻意去背,使用的時候知道在哪里找就可以了。

在這里插入圖片描述

6、Bootstrap 表格類

Bootstrap 提供了很多 表格類 的樣式,感興趣的同學可以去看一看。

在這里插入圖片描述

此外,Bootstrap 還提供了現成的組件字體圖標等等,感興趣的同學可以了解下。


四、綜合案例-騰訊全端

接下來通過今日所學的媒體查詢和 Bootstrap 框架,模仿騰訊全端實現下面的響應式布局效果。

在這里插入圖片描述

想要完整代碼的,點擊這里獲取Day14綜合案例完整代碼。完全免費,僅供學習參考使用。



在這里插入圖片描述

乾坤未定,你我皆是黑馬


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

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

相關文章

python的plt.axis()、plt.xlim() 和 plt.ylim()函數

坐標軸相關設置1、plt.axis():坐標軸設置 函數 plt.axis(*v, **kwargs) 主要用于設置坐標軸的屬性,返回值為當前的坐標軸范圍 [xmin, xmax, ymin, ymax],幾種調用方式如下: 調用方式 說明 axis() 返回當前的坐標軸范圍 [xmin, xmax, ymi…

pytorch構建模型訓練數據集

pytorch構建模型訓練數據集 pytorch構建模型訓練數據集1.AlexNet:1.1.導入必要的庫&#xff1a;1.2.數據預處理和增強&#xff1a;1.3.加載數據集&#xff1a;1.4.劃分測試集和訓練集&#xff1a;1.5.創建數據加載器&#xff1a;1.6.加載AlexNet模型&#xff1a;1.7.修改模型以…

qt qDebug兼容LOGE

目錄 普通qDebug用法 qt qDebug兼容LOGE 模板參數2實現 qDebug 實現LOGE一樣的用法,這樣Android和qt同時支持LOGE打印日志 普通qDebug用法 #include <QApplication> #include <QDebug>int main(int argc, char *argv[]) {QApplication app(argc, argv);int ret…

帝國cms接入騰訊云人臉識別認證代碼

利用帝國cms在做一些會員系統的時候&#xff0c;需要做人臉識別認證&#xff0c;之前接入了某api接口&#xff0c;發現身份證識別率真的低&#xff0c;還好充值的少&#xff0c;否則要出問題&#xff0c;后來發現會員注冊率降低了不少&#xff0c;最終還是決定使用騰訊云的人臉…

三十五篇:數字化轉型的引擎:賦能企業的ERP系統全景

數字化轉型的引擎&#xff1a;賦能企業的ERP系統全景 1. 引言 在這個快速變化的數字時代&#xff0c;現代企業面臨著前所未有的挑戰和機遇。企業資源計劃&#xff08;ERP&#xff09;系統&#xff0c;作為數字化轉型的核心&#xff0c;扮演著至關重要的角色。它不僅是企業運營…

第二十六章HTML與CSS書寫規范

1.HTML書寫規范 1.文檔類型聲明及編碼 統一為html5 聲明類型。編碼統一為utf-8。 2.頁面tdk TDK是一個縮寫&#xff0c;其中“T”表示為網頁定義標題&#xff0c;“D”表示為網頁定義描述 description&#xff0c;“K”表示為搜索引擎定義關鍵詞keywords。 1、<title&g…

NFT Insider #133:蘇富比將拍賣BAYC系列NFT,Taiko創世NFT系列已上線

引言&#xff1a;NFT Insider由NFT收藏組織WHALE Members &#xff08;https://twitter.com/WHALEMembers&#xff09;、BeepCrypto &#xff08;https://twitter.com/beep_crypto&#xff09;聯合出品&#xff0c;濃縮每周NFT新聞&#xff0c;為大家帶來關于NFT最全面、最新鮮…

立創·天空星開發板-GD32F407VE-EXTI

本文以 立創天空星開發板-GD32F407VET6-青春版 作為學習的板子&#xff0c;記錄學習筆記。 立創天空星開發板-GD32F407VE-EXTI 中斷硬件觸發中斷示例軟件觸發中斷示例 中斷 中斷分為內部中斷和外部中斷 外部中斷是由外部設備&#xff08;如按鍵、傳感器、通信接口等&#xff09…

rollup.js(入門篇)

前沿 Rollup 是一個用于 JavaScript 的模塊打包工具&#xff0c;它將小的代碼片段編譯成更大、更復雜的代碼&#xff0c;例如庫或應用程序。它使用 JavaScript 的 ES6 版本中包含的新標準化代碼模塊格式&#xff0c;而不是以前的 CommonJS 和 AMD 等特殊解決方案。ES 模塊允許…

如何在Python中處理時間和日期

在Python中處理時間和日期&#xff0c;我們通常使用內置的datetime模塊。這個模塊提供了類來操作日期和時間&#xff0c;包括date、time、datetime、timedelta以及tzinfo。以下是datetime模塊的一些基本用法&#xff1a; 1. 獲取當前日期和時間 python復制代碼 from datetime…

Linux編程for、while循環if判斷以及case語句用法

簡介 語法描述if條件語句if else條件判斷語句if else-if else多條件判斷語句for循環執行命令while循環執行命令until直到條件為真時停止循環case ... esac多選擇語句break跳出循環continue跳出當前循環 1. for 循環 for語句&#xff0c;定量循環&#xff0c;可以遍歷一個列表…

一文讀懂AI時代GPU的內存新寵-HBM

一文讀懂GPU最強輔助&#xff1a;HBM HBM&#xff0c;即高帶寬內存&#xff0c;是一項領先的3D堆疊DRAM技術&#xff0c;專為高性能計算和圖形處理單元&#xff08;GPU&#xff09;設計&#xff0c;滿足其對內存帶寬和容量的極致需求。該技術由AMD與海力士攜手研發&#xff0c;…

Apache安裝教程

目錄 一、Apache知識點 Apache服務簡介 Apache下載網址 Apache的主要特點 二、Apache服務的搭建 1. 關閉防火墻 2. 安裝依賴環境以及編譯工具 3. 將apache安裝包拖入xshell內 4. 解壓壓縮包 5. 進入httpd主包 6. 指定安裝路徑&#xff0c;啟用字符集支持等 7. 優化執…

重慶工商大學社會工作專業試題及答案,分享幾個實用搜題和學習工具 #媒體#學習方法#知識分享

搜題軟件一般都是通過識別題目內容搜索出問題的答案&#xff0c;當識別內容不正確或搜索不到答案時&#xff0c;又得重新到其他軟件進行重復的操作&#xff0c;很是麻煩。所以我們可以使用專業的識別工具&#xff0c;對題目內容進行識別&#xff0c;然后把提取出來的內容單獨保…

流量錄制學習

AREX Cloud | AREX (arextest.com) 流量錄制學習&#xff0c;比vivo的moonbox要好用

android 異屏同顯二.

android主屏: android副屏 | | mediaProjection ----SufaceTextrue ---Open…

【數據結構】平衡二叉樹左旋右旋與紅黑樹

平衡二叉樹左旋右旋與紅黑樹 平衡二叉樹 定義 平衡二叉樹是二叉搜索樹的一種特殊形式。二叉搜索樹&#xff08;Binary Search Tree&#xff0c;BST&#xff09;是一種具有以下性質的二叉樹&#xff1a; 對于樹中的每個節點&#xff0c;其左子樹中的所有節點都小于該節點的值…

【vector模擬實現】附加代碼講解

vector模擬實現 一、看源代碼簡單實現1. push_backcapacity&#xff08;容量&#xff09;sizereserve&#xff08;擴容&#xff09;operator[ ] &#xff08;元素訪問&#xff09; 2. pop_back3. itorator&#xff08;迭代器&#xff09;4.insert & erase &#xff08;頭插…

哈夫曼樹的創建

要了解哈夫曼樹&#xff0c;可以先了解一下哈夫曼編碼&#xff0c;假設我們有幾個字母&#xff0c;他們的出現頻率是A: 1 B: 2 C: 3 D: 4 E: 5 F: 6 G: 7。那么如果想要壓縮數據的同時讓訪問更加快捷&#xff0c;就要讓頻率高的字母離根節點比較進&#xff0c;容易訪問&#xf…

立創·天空星開發板-GD32F407VE-GPIO

本文以 立創天空星開發板-GD32F407VET6-青春版 作為學習的板子&#xff0c;記錄學習筆記。 立創天空星開發板-GD32F407VE-GPIO 基礎概念三極管MOS管 GPIO輸出模式輸出線與GPIO輸入模式GPIO點燈 基礎概念 GPIO&#xff0c;全稱為“通用輸入/輸出”&#xff08;General Purpose …