響應式開發 1. 響應式開發原理 使用媒體查詢針對不同寬度的設備進行佈局和樣式的設置,從而適配不同設備的目的 | 設備劃分 | 尺寸區間 | | | | | 超小屏幕(手機) | =768px~=992px~=1200px | 2. 響應式佈局容器 響應式需要一個父級作為佈局容器,來配合子級元素來實 ...
響應式開發
響應式開發原理
使用媒體查詢針對不同寬度的設備進行佈局和樣式的設置,從而適配不同設備的目的
設備劃分 尺寸區間 超小屏幕(手機) <768px 小屏設備(平板) >=768px~<992px 中等屏幕(桌面顯示器) >=992px~<1200px 寬屏設備(大桌面顯示器) >=1200px
響應式佈局容器
- 響應式需要一個父級作為佈局容器,來配合子級元素來實現變化的效果
- 【原理】在不同屏幕下,通過媒體查詢來改變這個佈局容器的大小,在改變裡面子元素的排列方式和大小,從而實現不同屏幕下,看到不同的頁面佈局和樣式變化
- 響應式尺寸劃分
- 超小屏幕(手機/小於768px):設置寬度為100%
- 小屏幕(平板,大於等於768px):設置寬度為750px
- 中等屏幕(桌面顯示其,大於等於992px):寬度設置為970px
- 大屏幕(打桌面顯示器,大於等於1200px):寬度設置為1170px
Bootstrap簡介
- Bootstrap來自Twitter,是目前最受歡迎的前端框架。Bootstrap是基於HTML、CSS和JAVASCRIPT,他的簡介靈活,使得Web開發更加快捷
- 中文官網:http://www.bootcss.com/
- 官網:http://getbootstrap.com/
- 推薦使用:http://bootstrap.css88.com/
- 【優點】
- 標準化的html+css編碼規範
- 提供一套簡潔、直觀、強悍的組件
- 有自己的生態圈,不斷的更新迭代
- 讓開發更簡單,提高開發效率
bootstrap使用
創建文件夾結構
創建html骨架結構
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <!--要求當前網頁使用IE瀏覽器最高版本的內核渲染--> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3個meta標簽*必須*放在最前面,任何其他內容都*必須*跟隨其後! --> <title>Bootstrap 101 Template</title> <!-- Bootstrap --> <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> <!-- HTML5 shim 和 Respond.js 是為了讓 IE8 支持 HTML5 元素和媒體查詢(media queries)功能 --> <!-- 警告:通過 file:// 協議(就是直接將 html 頁面拖拽到瀏覽器中)訪問頁面時 Respond.js 不起作用 --> <!--[if lt IE 9]> <!--解決ie9以下瀏覽器對html5新增標簽的不識別,並導致CSS不起作用的問題--> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/html5shiv.min.js"></script> <!--解決ie9一下瀏覽器對css3 Media Query的不識別--> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dest/respond.min.js"></script> <![endif]--> </head> <body> <h1>你好,世界!</h1> <!-- jQuery (Bootstrap 的所有 JavaScript 插件都依賴 jQuery,所以必須放在前邊) --> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script> <!-- 載入 Bootstrap 的所有 JavaScript 插件。你也可以根據需要只載入單個插件。 --> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js"></script> </body> </html>
引入相關樣式文件
書寫內容
bootstrap佈局容器
- Bootstrap需要為頁面內容和柵格系統包裹一個.container容器,Bootstrap預定義好的類
- .container類
- 響應式佈局的容器 固定寬度
- 大屏(>=1200px)寬度定位1170px
- 中屏(>=992px)寬度定位970px
- 小屏(>=768px)寬度定位750px
- 超小屏(100%)
- .contaimer-fluidlei
- 流式佈局容器 百分比寬度
- 占據全部視口(vieport)的容器
- 適合於單獨做移動端開發
柵格系統簡介
- 柵格系統英文為“grid systems”,也有人翻譯為“網格系統”,他是指將頁面佈局劃分為等寬的列,然後通過列數的定義來模塊化頁面佈局
- Bootstrap提供了一套響應式/移動設備優先的流式柵格系統,隨著屏幕或者視口尺寸的增加,系統會自動分為最多12列
- Bootstrap裡面container寬度是固定的,但是不同屏幕下,container的寬度不同,我們再把container劃分為12等分
柵格化選項參數
柵格化系統用於通過一系列的行(row)與列(column)的組合來創建頁面佈局,頁面內容就可以放入這些創建好的佈局中。
超小屏幕(手機)<768px 小屏設備(平板)>=768px 中等屏幕(桌面顯示器)>=992px 寬屏設備(大桌面顯示器)>=1200px .container最大寬度 自動(100%) 750px 970px 1170px 類首碼 .col-xs- .col-sm- .col-md- .col-lg- 列(column)數 - 行(row)必須放在container佈局容器裡面
- 實現列的平均劃分 需要給列添加類首碼
- xs-extra small:超小;sm-small:小;md-medium:中等;lg-large:大
- 列(column)大於12,多餘的“列(column)”所在的元素將被作為一個整體另起一行排列
- 每一列預設有左右15像素的padding
- 可以同時為一列制定多個設備的雷鳴,以便劃分不同分數,例如class=“col-md-4 col-sm-6”
柵格列嵌套
柵格系統內置的柵格系統將內容再次嵌套。簡單理解就是一個列內再分成若幹份小列。可以通過添加一個新的.row元素和一系列.col-sm-*元素到已經存在的.col-sm-*元素內
列嵌套最好加1個row這樣可以取消父元素的padding值 而且高度自動和父級一樣高
<div class="col-sm-4"> <div class="row"> <div class="col-sm-6">a</div> <div class="col-sm-6">a</div> </div> </div>
柵格列偏移
- 使用.col-md-offset-* 類可以將列向右側偏移。這些類實際是通過使用* 選擇器為當前元素增加了左側的邊距
柵格列排序
- 通過使用.col-md-push-* 和.col-md-pull-* 類就可以很容易的改變列(column)的順序
響應式工具
為了加快對移動設備友好的頁面開發工作,利用媒體查詢功能,並使用這些工具可以方便的針對不同設備展示或隱藏頁面內容
類名 超小屏 小屏 中屏 大屏 .hidden-xs 隱藏 可見 可見 可見 .hidden-sm 可見 隱藏 可見 可見 .hidden-md 可見 可見 隱藏 可見 .hidden-lg 可見 可見 可見 隱藏