CSS -- 08. 移动WEB开发之流式布局

news2025/1/19 23:06:59

文章目录

  • 移动WEB开发之流式布局
    • 1 移动端基础
      • 1.1 浏览器现状
      • 1.2 手机屏幕现状
      • 1.3 移动端调试方法
    • 2 视口
      • 2.1 布局视口 layout viewport
      • 2.2 视觉视口 visual viewport
      • 2.3 理想视口 ideal viewport
      • 2.4 meta视口标签
    • 3 二倍图
      • 3.1 物理像素&物理像素比
      • 3.2 多倍图
      • 3.3 背景缩放 background-size
    • 4 移动端开发选择
      • 4.1 单独移动端页面(主流)
      • 4.2 响应式兼容PC移动端
    • 5 移动端常见布局
      • 5.1 流式布局(百分比布局)

移动WEB开发之流式布局

1 移动端基础

1.1 浏览器现状

国内的UC和QQ,百度等手机浏览器都是根据Webkit修改过来的内核,国内尚无自主研发的内核,就像国内的手机操作系统都是基于Android修改开发的一样。

总结:兼容移动端主流浏览器,处理Webkitr内核浏览器即可。

image-20221220151305334

1.2 手机屏幕现状

  • 移动端设备屏幕尺寸非常多,碎片化严重。
  • Android设备有多种分辨率:480x800,480x854,540x960,720x1280,1080x1920等,还有传说中的2K,4k屏。
  • 近年来iPhone的碎片化也加剧了,其设备的主要分辨率有:640x960,640x1136,750x1334,1242x2208等。
  • 作为开发者无需关注这些分辨率,因为我们常用的尺寸单位是px。

注:作为前端开发,不建议大家去纠结dp,dpi,pt,ppi等单位.

image-20221220151428880

1.3 移动端调试方法

  • Chrome DevTools(谷歌浏览器)的模拟手机调试
  • 搭建本地web服务器,手机和服务器个局域网内,通过手机访问服务器
  • 使用外网服务器,直接IP或域名访问

image-20221220151624611

2 视口

视口(viewport)就是浏览器显示页面内容的屏幕区域。视口可以分为布局视口、视觉视口和理想视口

2.1 布局视口 layout viewport

  • 一般移动设备的浏览器都默认设置了一个布局视口,用于解决早期的PC端页面在手机上显示的问题。
  • iOS, Android:基本都将这个视口分辨率设置为980px,所以PC上的网页大多都能在手机上呈现,只不过元素看上去很小,一般默认可以通过手动缩放网页。

image-20221220152030331

2.2 视觉视口 visual viewport

  • 字面意思,它是用户正在看到的网站的区域。注意:是网站的区域。
  • 我们可以通过缩放去操作视觉视口,但不会影响布局视口,布局视口仍保持原来的宽度。

image-20221220152126007

2.3 理想视口 ideal viewport

  • 为了使网站在移动端有最理想的浏览和阅读宽度而设定
  • 理想视口,对设备来讲,是最理想的视口尺寸
  • 需要手动添写meta视口标签通知浏览器操作
  • meta视口标签的主要目的:布局视口的宽度应该与理想视口的宽度一致,简单理解就是设备有多宽,我们布局的视口就多宽

2.4 meta视口标签

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

image-20221220152342563

标准的viewport设置

  • 视口宽度和设备保持致
  • 视口的默认缩放比例1.0
  • 不允许用户自行缩放
  • 最大允许的缩放比例1.0
  • 最小允许的缩放比例1.0

3 二倍图

3.1 物理像素&物理像素比

  • 物理像素点指的是屏幕显示的最小颗粒,是物理真实存在的。这是厂商在出厂时就设置好了,比如苹果6/7/8是750*1334
  • 我们开发时候的1px不是一定等于1个物理像素的(对于电脑端是1:1的关系)
  • PC端页面,1个px等于1个物理像素的,但是移动端就不尽相同
  • 一个px的能显示的物理像素点的个数,称为物理像素比或屏幕像素比

image-20221220151428880

  • PC端和早前的手机屏幕/普通手机屏幕:1CSS像素=1物理像素的
  • Retina(视网膜屏幕)是一种显示技术,可以将把更多的物理像素点压缩至一块屏幕里从而达到更高的分辨率,并提高屏幕显示的细腻程度。

image-20221220153403643

3.2 多倍图

  • 对于一张50px*50px的图片,在手机Retina屏中打开,按照刚才的物理像素比会放大倍数,这样会造成图片模糊
  • 在标准的viewport设置中,使用倍图来提高图片质量,解决在高清设备中的模糊问题
    • 例子:我们需要一个50 *50像素(css像素)的图片,如果把50 * 50的图片直接放到我们的iphone8里面会放大2倍变成100 *100就会模糊,我们采取的是放一个100 *100图片然后手动的把这个图片缩小为50 * 50(css像素),这样手机在自动放大后就会显示为100 * 100像素的图片,就和原始图片一样,我们准备的图片比我们实际需要的大小大2倍,这就方式就是2倍图
  • 通常使用二倍图,因为iPhone6/7/8的影响,但是现在还存在3倍图4倍图的情况,这个看实际开发公司需求
  • 背景图片注意缩放问题

image-20221220153642086

3.3 背景缩放 background-size

background-size属性规定背景图像的尺寸

background-size:背景图片宽度 背景图片高度;

只写一个参数表示的是高度,宽度会自动等比例缩放

  • 单位:长度 | 百分比 | cover |contain;
  • cover:把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。
  • contain:把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域
/* background-size: 图片的宽度 图片的高度; */
background-size: 500px 200px;
/* 1.只写一个参数 肯定是宽度 高度省略了  会等比例缩放 */
background-size: 500px;
/* 2. 里面的单位可以跟%  相对于父盒子来说的 */
background-size: 50%;
/* 3. cover 等比例拉伸 要完全覆盖div盒子  可能有部分背景图片显示不全 */
background-size: cover;
/* 4. contain 高度和宽度等比例拉伸 当宽度 或者高度 铺满div盒子就不再进行拉伸了 可能有部分空白区域 */
background-size: contain;

为了使用二倍图的背景图片,我们可以使用下面写法:

<style>
    /* 1. 我们有一个 50 * 50的盒子需要一个背景图片,但是根据分析这个图片还是要准备2倍, 100*100 */
    /* 2. 我们需要把这个图片缩放一半,也就是 50*50  background-size*/

    div {
        width: 50px;
        height: 50px;
        border: 1px solid red;
        background: url(images/apple100.jpg) no-repeat;
        background-size: 50% 50%;
    }
</style>

4 移动端开发选择

4.1 单独移动端页面(主流)

通常情况下,网址域名前面加**m(mobile)**可以打开移动端。通过判断设备,如果是移动设备打开,则跳到移动端页面。

技术选型

  • 流式布局(百分比布局)
  • flex弹性布局(强烈推荐)
  • less+rem+媒体查询布局
  • 混合布局

image-20221220160557438

4.2 响应式兼容PC移动端

三星电子官网:www.samsung.com/cn/,通过判断屏幕宽度来改变样式,以适应不同终端。

缺点:制作麻烦,需要花很大精力去调兼容性问题

技术选型

  • 媒体查询
  • bootstarp

5 移动端常见布局

image-20221220162312209

5.1 流式布局(百分比布局)

  • 流式布局,就是百分比布局,也称非固定像素布局。
  • 通过盒子的宽度设置成百分比来根据屏幕的宽度来进行伸缩,不受固定像素的限制,内容向两侧填充。
  • 流式布局方式是移动web开发使用的比较常见的布局方式
  • max-width:最大宽度(max-height)
  • min-width:最小宽度(min-height)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106122.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

clickhouse-部署指南(亲测超详细)

文章目录环境要求测试环境Tar方式安装clickhouse用户授权访问控制服务配置启动连接测试TABIX webUI性能测试环境要求 ClickHouse可以在任何具有x86_64&#xff0c;AArch64或PowerPC64LE CPU架构的Linux&#xff0c;FreeBSD或Mac OS X上运行 官方预构建的二进制文件通常针对x86…

prometheus+grafana对数据库mysql监控

安装 mysql docker run --name mysql-test -p MYSQL ROOT_PASSWORD123456 -p23306:3306 mysql:5.7.26启动镜像的时候 已经是把docker容器内部的3306端口 映射到本机了 直接通过navicat连上 进入mysql容器内部 docker exec -it 容器id /bin/bash, 启动 mysql. docker start d…

33.flink cdc 实时数据同步利器

什么是flink cdc? 对很多初入门的人来说是无法理解cdc到底是什么个东西。 有这样一个需求&#xff0c;比如在mysql数据库中存在很多数据&#xff0c;但是公司要把mysql中的数据同步到数据仓库(starrocks), 数据仓库你可以理解为存储了各种各样来自不同数据库中表。 数据的同步…

2-2-3-7、FutureCompletableFuture详解

Runnable 线程的任务接口&#xff0c;用于定义被执行任务方法的抽象&#xff0c;是函数式接口&#xff08;仅存在一个需要实现方法的接口&#xff09;&#xff0c;其方法为run方法通过对并发编程中java线程的了解&#xff0c;Thread调用start方法&#xff0c;最后操作系统会通过…

Confluence 调整会话超时(session timeout)

文章目录前言一、概括二、实际场景应用1.更改空闲超时2.更改记住我 cookie 的生命周期3.在用户通过身份验证后的某个时间强制注销用户总结前言 在 Confluence 中有两个会话 Cookie&#xff1a; JSESSIONID: 由 Tomcat 使用和管理。 默认情况下&#xff0c;这被视为会话 cooki…

类与对象(中)

类与对象类的6个默认成员函数构造函数概念特性析构函数概念特性拷贝构造函数概念特性赋值运算符重载运算符重载赋值运算符重载前置 后置 重载const成员函数取地址及const取地址操作符重载类的6个默认成员函数 当类中没有任何成员时&#xff0c;称作空类 但是呢&#xff0c;编译…

Docker使用(容器、镜像相关命令)

虚拟化 在计算机中&#xff0c;虚拟化&#xff08;英语&#xff1a;Virtualization&#xff09;是一种资源管理技术&#xff0c;是将计算机的各种实体资源&#xff0c;如服务器、网络、内存及存储等&#xff0c;予以抽象、转换后呈现出来&#xff0c;打破实体结构间的不可切割…

虹科方案|将以太网连接添加到Dell EMC PowerVault™ ML3 SAS库

一、Dell EMC 和 ATTO 磁带解决方案 Dell EMC 和 ATTO 提供了业界唯一的商用解决方案&#xff0c;可将高速以太网连接添加 到标准 SAS LTO 磁带驱动器。ATTO XstreamCORE ET 8200 智能网桥允许您使用 iSCSI 和 iSER 协议通过标准以太网远程连接到 SAS 磁带驱动器。当与采用最新…

花 2 个月备战字节跳动Java岗,3 轮面试拿下 60W Offer

最近收到一位刚入职字节的 Java 工程师朋友投稿——以下内容来自其亲身经历&#xff0c;某双非硕士拿到 字节 60W offer &#xff0c;感谢他的走心分享&#xff08;文末附硬货笔记&#xff09; PART1&#xff1a;个人情况简介 菜 J 一枚&#xff0c;本硕都是计算机&#xff08…

[论文阅读] SqueezeSeg V1

文章目录1. 主要思想2. 具体方法2.1 数据处理方式2.2 网络架构3. 实验支撑4. 总结启示5. 相关文献paper 原论文的链接 code: 源代码链接 paper全称&#xff1a;SqueezeSeg: Convolutional Neural Nets with Recurrent CRF for Real-Time Road-Object Segmentation from 3D LiDA…

【02】FreeRTOS获取10.4.6源码+移植到STM32F407步骤

目录 1.获取FreeRTOS源码 1.1 FreeRTOS官网下载步骤 1.2FreeRTOS源码内容 1.3FreeRTOS内核文件 1.3.1Demo文件夹 1.3.2Source文件夹 2.FreeRTOS移植 2.1添加FreeRTOS源码 2.1.1复制FreeRTOS源码 2.1.2将文件添加到工程 2.1.3添加头文件路径 2.2添加FreeRTOS.h 2.3修改SYS…

vpp process类型节点调度过程

vpp节点类型 VLIB_NODE_TYPE_PROCESS&#xff1a;process类型节点可以被挂起也可以被恢复&#xff0c;main线程上调度 &#xff08;免费订阅,永久学习&#xff09;学习地址: Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家-学习视频教程-腾讯课堂 process节点注册 pro…

【MC】新加载器 Quilt 好用吗?和 Fabric 相比好在哪?

在今年四月 (2022/4/20) &#xff0c;一个船新加载器 Quilt 发布了第一个测试版。 Quilt officially entered its first beta today, attracting an influx of new users and an amazing amount of support and positive feedback. By the end of the day, Quilt was happily l…

Go语言设计与实现 -- 字符串

Go语言的字符串与Java和python是一样的。具有不可变性。是一个只读的字节数组&#xff0c;如图所示。 因为Go的字符串具有不可变性&#xff0c;所以我们只能通过string和[]byte类型之间反复转换实现修改。 将这一段内存复制到栈上将变量的类型转换成[]byte后并修改字节数据将修…

功能上新|使用 Excel 低门槛进行指标分析!

Kyligence Zen 功能上新啦&#xff01;用户不仅可以在 Kyligence Zen 中定义、分析和管理指标&#xff0c;还可直接使用 Excel 插件来分析 Kyligence Zen 中已经定义好的指标&#xff0c;学习无门槛&#xff0c;上手更轻松&#xff01;欢迎访问 http://zen.kyligence.io 申请免…

实验二A 图像的空域(源代码一站式复制粘贴)

实验二A 图像的空域一、实验目的二、实验原理三、实验内容与要求四、实验的具体实现一、实验目的 1.掌握图像滤波的基本定义及目的。 2.理解空间域滤波的基本原理及方法。 3.掌握进行图像的空域滤波的方法。 二、实验原理 1.空域增强 空域滤波是在图像空间中借助模板对图像进…

阳哥JUC并发编程之AQS后篇全网最详细源码笔记

文章目录AQS后序课程笔记AQS源码ReentryLock锁的原理分析公平锁以及非公平锁源码详解Aquire方法调用原码流程分析第一步、tryAquire第二步、addwrite第三步&#xff1a;aquireQueuedAQS释放锁的过程第一步、释放锁第二步进入aquireQueueAQS异常情况下走Cancel流程分析第一种队尾…

ECharts项目实战:全球GDP数据可视化

【课程简介】 可视化是前端里一个几乎可以不用写网页&#xff0c;但又发展得非常好的方向。在互联网产品里&#xff0c;无论是C端中常见的双十一购物节可视化大屏&#xff0c;还是B端的企业中后台管理系统都离不开可视化。国家大力推动的智慧城市、智慧社区中也有很多可视化的…

对于DDoS攻击防御有哪些误区?

​  DDoS攻击是属于常见网络攻击之一&#xff0c;也是一种较难防御的网络攻击。它的特点就是易于启动、难防御、有害、难跟踪等。因此DDoS攻击也是众多站长最怕遇见的网络攻击。那么大家在使用海外服务器时&#xff0c;会有哪些DDoS攻击防御的误区呢? 1、防御全部DDoS攻击 防…

CSS -- 09. 移动WEB开发之flex布局

文章目录移动WEB开发之flex布局1 flex布局原理2 常见的父项属性2.1 设置主轴方向 flex-direction2.2 设置主轴上的子元素排列方式 justify-content2.3 设置元素是否换行 flex-wrap2.4 设置侧轴上的子元素的排列方式&#xff08;单行&#xff09; align-items2.5 设置侧轴上的子…