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.mzph.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语言&…