CSS基础:移动端开发常识,多倍图初始化等

2024-06-18 21:18

本文主要是介绍CSS基础:移动端开发常识,多倍图初始化等,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

了解

移动开发页面也是需要考虑一些问题,具体如下

兼容性

移动端浏览器的兼容性要比PC版的兼容性要求会相对低一些,毕竟PC浏览器的除了五大内核不同衍生的浏览器外,还有就是版本,不同版本导致的兼容性,让前端开发的时候焦头烂额的,而浏览器要好点,毕竟安卓机子都是除了谷歌原生系统就是原生系统衍生的国内版本,所有其webkit内核在安装机子上都兼容,而浏览器也是用这个内核(sa’fari内核也是webkit)。

手机屏幕

移动端的设备屏幕,我们很容易发现不同的手机型号哪怕就是同一个牌子手机的屏幕大小有可能就不相同,还有就是移动设备屏幕的不同带有不同的分辨率,但是很多时候在前端开发人员无需过渡关注这些分辨率,因为常用的尺寸单位是px。

调试设备

当然可以用手机模拟器或者手机了,不过个人建议为了方便直接使用谷歌浏览器,然后修改模式即可

在这里插入图片描述

视口

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

  • 布局视口(layout viewport):以前在移动端设置一个默认的布局视口,用于解决早期pc端网页在移动端呈现而已,现在很多时候都进行是设置,然后可以缩放。简单的说就是自己开发页面呈现的内容范围的大小。

  • 视觉视口:简单说就是人眼在移动端看到网页内容的区域。

  • 理想视口:就是自己开发人员最希望或者说网页最佳呈现方式,很多时候我们希望布局视口和视觉视口是一样的,但是很多时候都不是。布局窗口和理想窗口宽度一致,一般手动添加meta视口标签来通知浏览器操作。

    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
    
    属性解释
    width宽度设置为viewport宽度,可以市值device-with的特殊值
    initial-scale初始缩放比 大于0的数字
    maximum-scale最大缩放比大于0的数字
    minimum-scale最小缩放比大于0的数字
    user-scalable用户是否可以缩放,yes/no 选一个或者1/0

    其实这个能记住说明记忆力好,如果记不住就直接cv大法即可,随着多用也就记住了。

    演示:

    <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"><title>测试文档</title></head>
    <body>
    测试添加
    </body>
    </html>
    

在这里插入图片描述

可以看出添加了这个标签后呈现会进行自我调整,然后让呈现的内容更复合视图呈现的效果。

补充初始化

除了这个视口以外还有移动端的初始化,当然如果公司技术资深有自己的初始化css的话,就直接使用如果没有的话,有一个不错网站:https://necolas.github.io/normalize.css

多倍图

理解这个,首先要明白练两个概念物理象素和物理象素比。

  • 物理象素指的是屏幕显示的最小颗粒,是物理真是存在的。这个在手机出场的时候就背定义好的,前端人员无法更改。
  • 物理象素比指的是一个px能显示的物理象素点的个数。

一般在pc端网页一个px对应一个像素点,但是在移动端就不移动了有可能是2个也有可能是1.3个。

现在演示一些比如苹果12pro

在这里插入图片描述

我们可以看出其物理象素是2532和1170.

你演示一下:

既然宽度是1170,那我们设置200px看一下效果。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"><title>测试文档</title><style>*{margin: 0px;padding: 0px;}div{width: 200px;height: 200px;background-color: red;}</style>
</head>
<body>
<div ></div></body>
</html>

在这里插入图片描述

发现200px几乎占了内容区的一半了,所以可以看出了移动端有一个象素比的概念存在。

其实这个苹果12pro的象素比是多少,chrome浏览器已经告诉我们了,看上图390和844。这两个值其实就是我们的开发尺寸也就是我们常用的px。然后换算一下:

1170/390=3;
2532/844=3;

所以可以看出其象素比是3,其实不同的浏览器都有不同的比例,这个象素比3的意思什么呢?

就是在1px的范围内有3个象素点,毕竟手机屏幕更小所以需要在更小的范围内存放更多的物理象素提供屏幕的清晰度。

所以这个就引入了一个多倍图的概念,那就是放入的图片在移动网页端显示,就会默认放大,然后变的模糊,所以这个时候就需要放入一个多倍数图片,然后将其进行强制压缩,自然也会在1px中显示的图片象素点与css定了宽高压缩的比例而放相对的照片的象素。

来一个例子:

看原神移动网页端的:

在这里插入图片描述

可以看出这个图片的大小定义为390*51

下载器实际图片呢?

在这里插入图片描述

可以明显看出图片要大于这个象素的。差不多是2倍的样子。目前一般都会使用2倍图,但是也不是绝对的,有时候会使用3倍图等,看项目的具体要求了。

backgrou-size

如果使用jpg的话简单我们可以强制其大小也会显示的清晰:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"><title>测试文档</title><style>img:nth-child(2){width: 390px;height: 50px;}</style>
</head>
<body>
<div  class="b1"><img src="jpg/yuanshen1.png"><img src="jpg/yuanshen1.png"></div></body>
</html>

在这里插入图片描述

但是如果是背景图片的话,就需要这个属性了。

在这里插入图片描述

演示:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"><title>测试文档</title><style>div{margin: 10px;width: 500px;height: 500px;border: 1px solid red;}.box1{/*默认 background-size:auto ;*/background: url("jpg/anhei.jpg") no-repeat center;}.box2{/*这个属性需要放在北京图片后面,不然不会生效*/background-size: 200px 200px;background: url("jpg/anhei.jpg") no-repeat;}.box3{background: url("jpg/anhei.jpg")  no-repeat;background-size: 400px 200px;}.box4{background: url("jpg/anhei.jpg")  no-repeat;background-size:contain ;}.box5{background: url("jpg/anhei.jpg")  no-repeat;background-size:cover ;}</style>
</head>
<body>
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
<div class="box4"></div>
<div class="box5"></div></body>
</html>

在这里插入图片描述

注意:background-size属性要放在引入背景图片之后,不然是无效的。

移动端主流解决方式

  • 单独制作移动端页面,也是主流的一种方式,京东商城手机版,淘宝等等。比如有了一个m.域名的网址.

    很多时候又分:流式布局,flex弹性布局(很不错的方式后面聊),以及less+rem+媒体查询布局,混合布局。

  • 响应式页面兼容移动端,就是页面统一,但是根据不同的客户端可以呈现观看体检最佳的展示。比如很多手机网站例如华为等。

在这里插入图片描述

前者相对开发会更容易一些,毕竟只是为了匹配移动端而已,而后者却对兼容性要求更高,所以主流用第一种方式。当然以淘宝和京东自然有能力解决这个兼容问题,但是如果某些原因导致兼容问题的话,会影响用户的购物体验,所以购物访问频率高的网站就会相对来一个更稳定的方案,而不是秀网页开发能力。

视口的最大最小属性:max-width和 min-width

因为主流方式,还有一个问题那就是再拉动的时候会修改视口大小,所以又需要理解两个属性。

/*最小宽度*/    
min-width: 320px;
/*最大宽度*/ 
max-width: 640px;

意思是这个浏览器缩放的时候,无论如何最小不能小于320px,最大不会超过64px。

同样再移动版的时候元素占的宽度一般不用数值+px,而是用百分比(%)毕竟手机屏幕不同。

这篇关于CSS基础:移动端开发常识,多倍图初始化等的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073077

相关文章

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

CSS弹性布局常用设置方式

《CSS弹性布局常用设置方式》文章总结了CSS布局与样式的常用属性和技巧,包括视口单位、弹性盒子布局、浮动元素、背景和边框样式、文本和阴影效果、溢出隐藏、定位以及背景渐变等,通过这些技巧,可以实现复杂... 一、单位元素vm 1vm 为视口的1%vh 视口高的1%vmin 参照长边vmax 参照长边re

CSS3中使用flex和grid实现等高元素布局的示例代码

《CSS3中使用flex和grid实现等高元素布局的示例代码》:本文主要介绍了使用CSS3中的Flexbox和Grid布局实现等高元素布局的方法,通过简单的两列实现、每行放置3列以及全部代码的展示,展示了这两种布局方式的实现细节和效果,详细内容请阅读本文,希望能对你有所帮助... 过往的实现方法是使用浮动加

css渐变色背景|<gradient示例详解

《css渐变色背景|<gradient示例详解》CSS渐变是一种从一种颜色平滑过渡到另一种颜色的效果,可以作为元素的背景,它包括线性渐变、径向渐变和锥形渐变,本文介绍css渐变色背景|<gradien... 使用渐变色作为背景可以直接将渐China编程变色用作元素的背景,可以看做是一种特殊的背景图片。(是作为背

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...