当前位置: 首页 > article >正文

[CSS3]百分比布局

移动端特点

PC和手机

PC端网页和移动端网页的有什么不同?

  1. PC屏幕大,网页固定版心
  2. 手机屏幕小,网页宽度多数为100%

谷歌模拟器

使用谷歌模拟器可以在电脑里面调试移动端的网页

屏幕尺寸

了解屏幕尺寸概念

屏幕尺寸: 指的是屏幕对角线的长度,一般用英寸来度量

PC端主流设备的分辨率

  1. PC端常见分辨率
  • 这个分辨率是屏幕硬件的分辨率, 出厂自带, 无法修改, 就是物理分辨率
  • 1920 * 1080
  • 1366 * 760
  1. 在操作系统中, 都会有一个推荐的缩放比例
  • 应用这个缩放150%之后, 屏幕呈现的分辨率就变了
  • (1920/150%) * (1080/150%)
  • 这个实际使用的分辨率是操作系统(软件)控制的, 就是逻辑分辨率
  • 逻辑分辨率的作用就是统一屏幕的显示效果, 让不同分辨率的屏幕呈现一致的UI体验

移动端主流设备的分辨率

制作网页参考物理分辨率还是逻辑分辨率?

  1. 制作网页都要参考逻辑分辨率
  2. 下面是京东网站, 在我电脑上展示的宽度是1690, 这个就是我的屏幕的逻辑分辨率: 2560 / 150% = 1707

  1. 存在误差是因为京东网页右侧滚动条占用了一点宽度

  1. 下面是移动端网站, 使用的也是逻辑分辨率

适口标签

默认情况下,PC网页的宽度和逻辑分辨率是相同的

<!DOCTYPE html>
<html lang="en">/* 最简单的HTML */
/* 默认宽度就是屏幕的逻辑分辨率宽度 */
/* 2560 / 150% = 1707 */
<head><meta charset="UTF-8"><title>Document</title>
</head><body><div>hello</div>
</body></html>  

默认情况下,手机网页的宽度固定是980, 和逻辑分辨率无关

使用适口标签, 使移动端网页的宽度和设备宽度(逻辑分辨率)相同

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><!-- 适口: 显示HTML网页的区域 --><!-- 适口标签:  用来约束适口的标签 --><!-- 属性: viewport: 视口width=device-width: 视口宽度=设备宽度initial-scale=1.0: 缩放1倍(不缩放)--><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div>hello</div>
</body></html>

二倍图

设计师的设计图一般都是750px的图(也就是苹果6/7/8的物理分辨率), 称为二倍图

  1. 如果设计图是375px, 更方便我们写代码, 因为代码要按照设备的逻辑分辨率设置元素尺寸
  2. 但是375px的图放在750px的屏幕上显示, 效果是不好的,会模糊失真
  3. 为了保证显示效果, 设计稿都是按照物理分辨率(750px)设计
  4. 在H5中二倍图最多, App中, 有可能会遇到多倍图

能够使用像素大厨软件测量二倍图中元素的尺寸

  1. 拿到移动端设计稿之后, 我们把设计稿拖到像素大厨, 然后在开发模式里, 把设计稿选项里的1x改成2x,
  2. 然后再测量尺寸, 这个尺寸就是写代码的尺寸

百分比布局

百分比布局也叫流式布局,

  1. 就是宽度自适应(百分比单位), 高度固定(像素单位)
  2. 代码示例
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>京东</title><style>* {margin: 0;padding: 0;}li {list-style: none;}.toolbar {position: fixed;left: 0;bottom: 0;/* 百分比布局  流式布局 */width: 100%;height: 50px;background-color: pink;border-top: 1px solid #ccc;}.toolbar li img {height: 100%;}.toolbar li {float: left;width: 20%;height: 50px;}</style>
</head><body><div class="toolbar"><ul><li><a href="#"><img src="./images/index.png" alt=""></a></li><li><a href="#"><img src="./images/classify.png" alt=""></a></li><li><a href="#"><img src="./images/jd.png" alt=""></a></li><li><a href="#"><img src="./images/car.png" alt=""></a></li><li><a href="#"><img src="./images/login.png" alt=""></a></li></ul></div>
</body></html>

随着技术发展,行业要求也越高,现在也要求高度自适应.

http://www.lryc.cn/news/2383549.html

相关文章:

  • 【Java微服务组件】异步通信P2—Kafka与消息
  • R语言空间数据处理入门教程
  • 使用zap,对web应用/API接口 做安全检测
  • UE5.6新版本—— 动画光照系统重点更新
  • TypeScript 泛型讲解
  • 腾讯位置服务重构出行行业的技术底层逻辑
  • 面试相关的知识点
  • 如何用JAVA手写一个Tomcat
  • 使用 Qt QGraphicsView/QGraphicsScene 绘制色轮
  • 游戏开发实战(三):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】
  • 使用glsl 来做视频矫正
  • 03-Web后端基础(Maven基础)
  • LLM驱动下的软件工程再造:驾驭调试、测试与工程化管理的智能新范式
  • 大语言模型与人工智能:技术演进、生态重构与未来挑战
  • SpringSecurity授权、认证
  • 蓝桥杯19682 完全背包
  • DeepSeek源码解构:从MoE架构到MLA的工程化实现
  • leetcode 3355. 零数组变换 I 中等
  • 【VLNs篇】02:NavGPT-在视觉与语言导航中使用大型语言模型进行显式推理
  • (T_T),不小心删掉RabbitMQ配置文件数据库及如何恢复
  • 创建react工程并集成tailwindcss
  • TDengine 安全部署配置建议
  • Axure全链路交互设计:快速提升实现能力(基础交互+高级交互)
  • 为什么wifi有信号却连接不上?
  • 蓝桥杯框架-LED蜂鸣器继电器
  • uniapp-商城-64-后台 商品列表(商品修改---页面跳转,深浅copy应用,递归调用等)
  • Dify的大语言模型(LLM) AI 应用开发平台-本地部署
  • 使用教程:8x16模拟开关阵列可级联XY脚双向导通自动化接线
  • 移动端前端调试调研纪实:从痛点出发,到 WebDebugX 的方案落地
  • 8 种快速易用的Python Matplotlib数据可视化方法