H5第一天

移動Web - 基礎&流式布局

目標

  • 了解移動端主要瀏覽器的內核
  • 掌握用谷歌瀏覽器調試移動端頁面(重要)
  • 了解布局視口、視覺視口、理想視口
  • 使用mate標簽設置理想視口(重要)
  • 了解視網膜屏、物理像素、二倍圖
  • 會使用background-size設置二倍精靈圖(重要)
  • 掌握圣杯布局的兩種方法(border-box & margin)(重要)
  • 了解移動端兩類開發方案
  • 知道什么是流式布局(重要)
  • 能夠獨立完成京東移動端首頁(重要)

1、移動端瀏覽器和屏幕現狀

目標:了解移動端主要瀏覽器的內核、掌握用谷歌瀏覽器調試移動端頁面

1.1 瀏覽器現狀

- pc端:谷歌瀏覽器(Blink)、火狐瀏覽器(Gecko)、IE瀏覽器(Trident)、360瀏覽器、QQ瀏覽器、百度瀏覽器、搜狗瀏覽器

- 移動端:歐朋瀏覽器(Presto),UC瀏覽器,QQ瀏覽器,百度手機瀏覽器,360安全瀏覽器,谷歌瀏覽器,搜狗手機瀏覽器,獵豹瀏覽器,以及其他雜牌瀏覽器 ,內核大部分都是webkit

- 移動端瀏覽器內核:Webkit內核的適用范圍則較為廣泛,Android原生瀏覽器、蘋果的Safari、谷歌的Chrome(Android4.0使用)都是基于Webkit開源內核開發的

總結:兼容移動端主流瀏覽器,處理Webkit內核瀏覽器即可

1.2 手機屏幕現狀

移動端設備屏幕尺寸:非常多,碎片化嚴重。

Android設備有多種分辨率:480x800, 480x854, 540x960, 720x1280,1080x1920等,還有傳說中的2K,4k屏。

iPhone主要分辨率有:640x960, 640x1136, 750x1334, 1242x2208等。

查看手機屏幕尺寸網址:添加鏈接描述

總結:

  • 作為開發者無需關注這些分辨率,因為我們常用的尺寸單位是 px 。
  • 因此我們開發的網頁要做到適應各種手機屏幕尺寸

1.3 移動端頁面調試方法(重要)

Chrome DevTools(谷歌瀏覽器)的模擬手機調試

  • 進入手機模式

  • 選擇手機型號

    • 設置頁面百分比
  • 搭建本地web服務器,手機和服務器一個局域網內,通過手機訪問服務器(后面課程掌握)

  • 使用外網服務器,直接IP或域名訪問(后面課程掌握)

2. 視口

目標:了解布局視口、視覺視口、理想視口

視口(viewport):就是瀏覽器顯示頁面內容的屏幕區域, 視口可以分為布局視口視覺視口理想視口

2.1 布局視口 layout viewport

- 概念: 為了解決早期pc端頁面在移動端的顯示問題,一般移動端的瀏覽器設置的默認視口,稱為布局視口

- 大白話:瀏覽器默認的窗口寬度

- 布局視口大小:iOS, Android基本都將這個視口設置為 980px,所以PC上的網頁大多都能在手機上呈現,只不過元素看上去很小(把瀏覽器整體壓縮在一個小屏幕里面),一般默認可以通過手動縮放網頁
在這里插入圖片描述

2.2 視覺視口 visual viewport

- 概念:字面意思,它是用戶正在看到的網站的區域。注意:是網站的區域。
我們可以通過縮放去操作視覺視口,但不會影響布局視口,布局視口仍保持原來的寬度
在這里插入圖片描述

2.3 理想視口 ideal viewport+

- 概念:布局視口的一個理想尺寸,只有當布局視口(瀏覽器)的尺寸等于設備屏幕的尺寸時,才是理想視口
- 設置理想視口方法:mate標簽 (重要)

<meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no,maximum-scale=1.0,minimum-scale=1.0">

在這里插入圖片描述
最標準的viewport設置

  • 視口寬度和設備保持一致
  • 視口的默認縮放比例1.0
  • 不允許用戶手動自行縮放
  • 最大允許的縮放比例1.0
  • 最小允許的縮放比例1.0

3. 二倍圖

目標:了解屏幕分辨率、了解圖片分辨率、了解視網膜屏、會使用background-size設置背景圖的大小、會使用二倍精靈圖設置元素背景

3.1 手機屏幕

  • 通常我們所指的屏幕尺寸,實際上指的是屏幕對角線的長度(一般用英寸來度量)如下圖所示
  • 1英寸 = 2.54cm 絕對單位;(到哪都不會變的值)
    在這里插入圖片描述

3.2 物理像素(采光點)

- 概念:客觀存在。指計算機顯示設備中的最小單位,即一個像素點的大小。每一個像素點可以理解為就是屏幕上的一個發光點。每個點可以發一個顏色,就是我們看到的畫面
- 發展:早期的屏幕,物理像素點(客觀的小燈泡)都比較大,比如玩游戲的超級瑪麗的畫面的顆粒感很強:隨著技術的進步,物理像素點會被做的越來越小;會被做小;
在這里插入圖片描述

3.3 屏幕分辨率 & 視網膜屏 & css像素

屏幕分辨率:物理像素點的個數來衡量,表示屏幕水平和垂直方向的物理像素點的個數

  • iPhone3和iPhone4是同一個屏幕尺寸下,比較分辨率:
    在這里插入圖片描述
    在這里插入圖片描述
  • 分辨率高的優勢:直觀感受,畫面細膩,物理像素越小(屏幕發光點越小)
  • Retina視網膜屏幕)是一種顯示技術,可以將把更多的物理像素點壓縮至一塊屏幕里;從而達到更高的分辨率,并提高屏幕顯示的細膩程度,即1px代表更多的物理像素
  • CSS像素 px :1px代表的長度是固定的,因此屏幕分辨率越高,1px代表的物理像素就越多
    在這里插入圖片描述

3.4 圖片分辨率

  • 概念:指圖片橫縱方向各有多少個物理像素(光點)

  • 下圖:分辨率640*426 ,提供了多少個色彩發光點(迎合物理像素點);
    在這里插入圖片描述

  • 一個蘿卜一個坑:圖片在手機上展示時,圖片的光點會對應手機的光點(即物理像素點和物理像素點對接)

  • 圖片的光點比作蘿卜,手機的采光點比作坑,光點是一一對應的,所以稱:一個蘿卜一個坑

  • 假設有200*200分辨率的圖片,在不設置圖片寬高的情況下,展示在寬度分別是320(iphone3)、640(iphone4)分辨率的手機上,展示的效果如下:
    在這里插入圖片描述

  • 問題:相同的圖片不設置寬高,在不同的設備下,展示的大小不一樣

    • 寬度:第2個是第1個的0.5倍;
    • 面積:第2個是第1個的1/4倍;
  • 原因

    • 200*200分辨率的圖片:200個顏色發光點(蘿卜);
    • 一個物理像素點發一個顏色:一個蘿卜一個坑,屏幕都需要200個物理像素點;
    • 坑的寬度大小:320(1);640(0.5);
    • 所以顯示為上圖。
  • 目標:顯示大小一樣;

  • 解決方法

    • 直接設置圖片寬高相同(不建議):圖片在分辨率高的設備上會模糊
    • UI提供二倍圖

3.5 二倍圖-分辨率是尺寸2倍

  • 概念:設置的圖片的分辨率和圖片的寬高是2倍的關系稱為二倍圖
  • 大白話:設置CSS像素200px寬,320分辨率(200坑),640分辨率(400坑)
    像針對640分辨率手機屏(iPhone4),要求設計給400*400圖,對應我們CSS設置200px,有二倍的關系
  • 命名
    • xxxxx@2x.png:二倍圖
    • xxxxx@3x.png:三倍圖

3.6 用二倍精靈圖做背景

使用核心:UI給出精靈圖的分辨率應該是psdUI稿上圖片尺寸的二倍,所以應該將精靈圖縮小到原來一半,再定位

  • background-size
div {width: 500px;height: 500px;border: 2px solid red;background: url(images/dog.jpg) no-repeat;/* background-size: 圖片的寬度 圖片的高度; *//* background-size: 500px 200px; *//* 1.只寫一個參數 肯定是寬度 高度省略了  背景會等比例縮放 *//* background-size: 500px; *//* 2. 里面的單位可以跟%  相對于父盒子來說的 *//* background-size: 50%; *//* 3. cover 等比例拉伸 要完全覆蓋div盒子(以圖片寬高的最小值覆蓋全為準)  可能有部分背景圖片顯示不全關鍵詞:等比縮放,絕對沒有留白;*//* background-size: cover; *//* 4. contain 高度和寬度等比例拉伸 (以圖片寬高的最大值覆蓋全為準) 可能有部分空白區域 關鍵詞:等比縮放,顯示全面,可能留白 */background-size: contain;
}
  • 步驟
    1. 利用background-image引入二倍精靈圖
    2. 將二倍精靈圖在fw軟件中縮小至一倍,查看此時圖片的寬度,利用background-size設置背景大小
    3. 利用fw軟件測量此時需要的圖標的定位,利用background-position設置背景定位
  • 注意
    • 非精靈圖的二倍圖,UI給我們,我們該怎么用就怎么用,和普通圖片沒有區別
    • 在用fw打開二倍精靈圖時,千萬不要保存圖片,會導致圖片變成一倍分辨率

4. 移動端布局現狀

目標:了解目前移動端頁面開發的主流方法

  • 響應式:三星電子官網。添加鏈接描述 ;特點:可兼容PC 移動端,一個頁面多個端適配顯示;制作起來要考慮到兼容性的樣式
    • 媒體查詢
    • bootstarp
  • 單獨制作(主流):淘寶、京東、蘇寧手機端都是單獨制作的,流式、flex、rem布局、專門針對各種手機屏幕進行開發
    • 流式布局(百分比布局):移動web開發使用的比較常見的布局方式,不改變文字和圖片的大小(看情況而定)
    • flex 彈性布局(強烈推薦)
    • less+rem+媒體查詢布局
    • 混合布局

5. 移動端技術方案

目標:會使用-webkit-前綴解決webkit的兼容性問題 、移動端公共樣式的引用、圣杯布局

5.1 移動端瀏覽器兼容問題&特殊樣式設置

移動端瀏覽器基本以 webkit 內核為主,因此我們就考慮webkit兼容性問題。

我們可以放心使用 H5 標簽和 CSS3 樣式。

同時我們瀏覽器的私有前綴我們只需要考慮添加 webkit 即可

 /*CSS3盒子模型*/box-sizing: border-box;-webkit-box-sizing: border-box;/*點擊高亮我們需要清除清除  設置為transparent 完成透明*/-webkit-tap-highlight-color: transparent;/*在移動端瀏覽器默認的外觀在iOS上加上這個屬性才能給按鈕和輸入框自定義樣式*/-webkit-appearance: none;/*禁用長按頁面時的彈出菜單*/img,a { -webkit-touch-callout: none; }

5.2 移動端公共樣式

移動端 CSS 初始化推薦使用 normalize.css/

Normalize.css:保護了有價值的默認值

Normalize.css:修復了瀏覽器的bug

Normalize.css:是模塊化的

Normalize.css:擁有詳細的文檔

官網地址:添加鏈接描述

5.3 大量使用 box-sizing: border-box

/* 傳統:盒子的總寬度 = CSS中設置的 width + border + padding */
box-sizing: content-box;/* CSS3盒子模型:盒子的寬度:就是設置的寬度,且寬度width 里面包含了 border  padding */
box-sizing: border-box;

解決問題

  • 流式布局百分比設置寬高時,給盒子添加邊框或者內邊距,導致盒子掉下來
  • 圣杯布局

5.4 圣杯布局(左右兩側固定,中間自適應)兩種方法

box-sizing: border-box

<head>
<style>.warp{position: relative;width: 100%;height: 200px;box-sizing: box-border;padding: 0 200px;}.right,.left{position: absolute;width: 200px;height: 100%;background-color: blue;}.right {right: 0;top: 0;}.left{left: 0;top: 0;}.mid{width: 100%;height: 100%;background-color: blueviolet;}</style>
</head>
<body><div class='warp'><div class='left'></div><div class='mid'>111111</div><div class='right'></div></div>
</body>

margin : 中間盒子不設置寬,設置margin:0 200px; 左右兩邊固定寬高,定位

<head>
<style>.warp{position: relative;width: 100%;height: 200px;}.right,.left{position: absolute;width: 200px;height: 100%;background-color: blue;}.right {right: 0;top: 0;}.left{left: 0;top: 0;}.mid{margin: 0 200px;height: 100%;background-color: blueviolet;}</style>
</head>
<body><div class='warp'><div class='left'></div><div class='mid'>111111</div><div class='right'></div></div>
</body>

6. 京東案例

目標: 掌握視口標簽設置、二部圖使用(圖片、精靈圖)、流式布局的特點;

6.1 準備工作

搭建文件結構:
設置視口標簽、初始化樣式:

<meta name="viewport" content="width=device-width, user-scalable=no,initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/index.css">

body樣式的初始化設置:

body {width: 100%;min-width: 320px;max-width: 640px;margin: 0 auto;font-size: 14px;color: #666;
}

6.2 整體布局

  • 設置body
  • 布局劃分
    在這里插入圖片描述

6.3 dpg 、 webp

  • dpg:京東自主研發推出DPG圖片壓縮技術,經測試該技術,可直接節省用戶近50%的瀏覽流量,極大的提升了用戶的網頁打開速度。全部瀏覽器的兼容支持,壓縮后的圖片和webp的清晰度對比沒有差距。
  • webp:谷歌開發的一種旨在加快圖片加載速度的圖片格式。圖片壓縮體積大約只有JPEG的2/3,并能節省大量的服務器寬帶資源和數據空間;

6.4 涉及舊知識

  1. 先看這個盒子要不要設置高度;沒有高度的時候,一般是靠內部子元素撐起來的。
  2. 偽元素:左側或右側的線、簡單的圖標采用偽元素進行設置;
  3. 結構偽類選擇:n 作為參數,一定要放在前面
  4. 清除浮動:

6.4 涉及舊知識

  1. 先看這個盒子要不要設置高度;沒有高度的時候,一般是靠內部子元素撐起來的。
  2. 偽元素:左側或右側的線、簡單的圖標采用偽元素進行設置;
  3. 結構偽類選擇:n 作為參數,一定要放在前面
  4. 清除浮動:
/* 必須指定寬度*/
div {width: 100%;overflow: hidden;
}

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

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

相關文章

python數據結構之字典(未完成)

字典 dic {key:value} 1.字典特性 key必須是唯一的&#xff0c;值不必是唯一。 值可以是任何數據類型&#xff0c;比如list&#xff0c;tuple&#xff0c;字符&#xff0c;數值等。key只能是不可變的數據類型。 同一個key不允許重復&#xff0c;如果出現重復&#xff0c;后一個…

一個textView中的文字設置成兩種顏色

使用Spannablestring和ForegroundColorSpan。 SpannableString string2 new SpannableString("自助導入會員和連續開單\n3個月可獲得免費短信服務");ForegroundColorSpan span2 new ForegroundColorSpan(getResources().getColor(R.color.worker_main_worker));str…

boost::timer demo

#include <iostream> #include <boost/timer.hpp> //timer的頭文件 using namespace boost; //打開boost名字空間int main(int argc, char** argv) {timer t; //定義一個計時器對象,并開始計時/*可度量的最大時間,以小時為單位*/std::cout << "max …

H5的第二天

移動web開發——flex布局 目標 了解flex布局的優缺點及原理能夠說出flex布局原理、使用語法、特點&#xff08;重點&#xff09;能夠使用flex布局常用屬性&#xff08;重點&#xff09;能夠獨立完成攜程移動端首頁 1.0 傳統布局和flex布局對比 1.1傳統布局 兼容性好布局繁…

d3.js 入門指南 - 儀表盤

D3的全稱是Data-Driven Documents&#xff08;數據驅動的文檔&#xff09;&#xff0c;是一個用來做數據可視化的JavaScript函數庫&#xff0c;而JavaScript文件的后綴通常為.js&#xff0c;所以D3被稱為D3.js。 d3.js可以定制出各種圖形&#xff0c;今天來用d3.js制作一個簡易…

[轉帖]華為的“大海思”與“小海思”

華為的“大海思”與“小海思” https://www.cnbeta.com/articles/tech/828275.htm沒先到華為海思這么狠.. 作為華為的全資子公司&#xff0c;說起海思半導體&#xff0c;大家可能第一時間會想起麒麟處理器。經過多年的持續的研發投入&#xff0c;華為海思自研的麒麟處理器現在確…

H5第三天(1)

響應式布局 ?核心知識點 less媒體查詢 學習目標 掌握less基本語法能夠使用less編寫css代碼能夠掌握媒體查詢能夠使用媒體查詢實現響應式布局 Less介紹 維護CSS的弊端 CSS本質上不是一門語言,是一個簡單的樣式表.代碼維護相對老套,不夠靈活.LESS介紹 ?LESS預處理器: 依…

CocosPods 引入項目,哪些文件需要上傳到服務器呢?

以上除Podfile外&#xff0c;其它三個文件都不是必須提交的。其中Pods目錄沒必要提交&#xff0c;里面的文件都是根據Podfile描述的依賴庫的配置信息下載和生成的文件。因為CocoaPods支持語義化版本號&#xff0c;所以需要Podfile.lock文件記住當前使用的版本&#xff0c;當然這…

H5第三天(2)

移動web響應式布局 ?知識點-回顧 1. 什么是彈性盒子(伸縮布局) 2. 伸縮布局解決了什么問題 3. 伸縮盒子特點 有一條默認水平顯示的主軸有一條始終要垂直于主軸的側軸 4.重點掌握的屬性 設置伸縮盒子 display: flex;設置主軸對齊方式 justify-content設置側軸對齊方式 a…

X-AdminABP框架開發-系統日志

網站正常運行中有時出現異常在所難免&#xff0c;查看系統運行日志分析問題并能夠根據錯誤信息快速解決問題尤為重要&#xff0c;ABP對于系統運行日志這塊已經做了很好的處理&#xff0c;默認采用的Log4Net已經足夠滿足開發過程中的需要了(當然有需要的話也可以更換為其它日志組…

[Swift]LeetCode826. 安排工作以達到最大收益 | Most Profit Assigning Work

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★?微信公眾號&#xff1a;山青詠芝&#xff08;shanqingyongzhi&#xff09;?博客園地址&#xff1a;山青詠芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;?GitHub地址&a…

H5第四天(1)

boostrap框架介紹 核心知識點 boostrap框架柵格系統[重點,不是難點]基本的全局樣式 學習目標 能夠使用boostrap框架中的基本樣式能夠使用柵格系統完成阿里百秀案例 boostrap框架 介紹 https://www.bootcss.com/ Bootstrap 是最受歡迎的 HTML、CSS 和 JS 框架&#xff0c;用…

javascript基礎入門知識點整理

學習目標:- 掌握編程的基本思維- 掌握編程的基本語法 typora-copy-images-to: mediaJavaScript基礎 HTML和CSS 京東 課前娛樂 眾人皆笑我瘋癲,我笑爾等看不穿 課前說明 目標&#xff1a;掌握編程的基本思想掌握JavaScript的基礎語法,使用常見API(備注)完成相應案例及練習和作業…

學習筆記-canny邊緣檢測

Canny邊緣檢測 聲明&#xff1a;閱讀本文需要了解線性代數里面的點乘&#xff08;圖像卷積的原理&#xff09;&#xff0c;高等數學里的二元函數的梯度&#xff0c;極大值定義&#xff0c;了解概率論里的二維高斯分布 1.canny邊緣檢測原理和簡介 2.實現步驟 3.總結 一、 Canny邊…

H5第四天(2)

Bootstrap框架 Bootstrap框架 為什么要學Bootstrap框架 Bootstrap框架: 為我們提供了用來實現響應式開發的公共資源 總結: Bootstrap框架用來實現響應式布局Bootstrap框架中重點學什么 Bootstrap框架提供了很多豐富的網頁開發資源,代碼有上萬行代碼.1. 重點學習框架中提供的基…

javascript高級實戰學習

學習目標:- 理解面向對象開發思想- 掌握 JavaScript 面向對象開發相關模式- 掌握在 JavaScript 中使用正則表達式- typora-copy-images-to mediaJavaScript 高級 課程介紹 課程大綱 在線地址&#xff1a;JavaScript 高級 目標 理解面向對象開發思想 掌握 JavaScript 面向對象…

H5C3筆記微整合

傳統布局&#xff08;寬度百分比設置&#xff09; 伸縮布局&#xff08;flex&#xff09; 自適應布局&#xff08;lessrem媒體查詢&#xff09; 1、less的使用 2、rem的使用 我的理解&#xff1a; 1、假如想把ui 給的圖片設置在網頁上&#xff0c;給網頁設置個份額值為 x 2、…

如何開發出優秀的APICloud應用

APICloud定制平臺項目實施規范APICloud應用優化策略Top30如何開發出運行體驗良好、高性能的App如何開發出客戶滿意、能夠順利交付的App1. 引擎或模塊問題&#xff1a; 遇到應用層無法解決的問題&#xff0c;如果能確定需要引擎和模塊支持的&#xff0c;不要自己想辦法繞過去&am…

收破爛怎么入行

收破爛分為幾個環節。1、回收&#xff08;回收利用、消息傳遞&#xff0c;消息處理&#xff09;2、集中處理&#xff08;垃圾分類&#xff0c;垃圾測試&#xff0c;垃圾投入使用&#xff0c;成品&#xff09;3、應用&#xff08;垃圾回收再應用&#xff0c;提供給需要資源的單位…

javaScript第一天(2)

javaScript基礎 1. javaScript的由來【了解】 為什么會出現js 早期出現js的原因就是為了解決一個問題: 用戶和瀏覽器(網頁)進行交互其他了解: 系統程序員Brendan Eich 設計了js語言, js語言1借鑒C語言的基本語法; (2)借鑒Java語言的數據類型和內存管理; (3)借鑒Scheme語言&…