首页 > 其他分享 >28. 移动端适配

28. 移动端适配

时间:2023-01-05 18:56:30浏览次数:36  
标签:网页 适配 28 像素 视口 vw 移动 CSS

一、移动端适配

  屏幕是由一个一个发光的小点构成,这一个一个的小点就是像素。我们所说的分辨率说的就是屏幕中小点的数量。在前端开发中,像素主要分为两个情况讨论:CSS像素物理像素;上述我们所说的小点就属于 物理像素。在编写网页时,我们所用的像素都是 CSS像素。浏览器在显示网页时,需要将 CSS像素 转换为物理像素然后呈现。一个 CSS像素 最终由几个物理像素显示,由浏览器决定,默认情况下,在 PC端,一个 CSS像素 等于一个 物理像素

  视口(viewport)就是屏幕中用来显示网页的区域。我们可以通过查看视口的大小,来观察 CSS像素 和 物理像素 的比值。

  在不同的屏幕,单位像素的大小是不同的,像素越小屏幕越清晰。智能手机的像素远远小于 PC端 的像素点。默认情况下,移动端的网页会将视口设置为一个固定的数值,即 980px(CSS像素),以确保 PC端 网页可以在移动端正常显示。 但是如果网页的宽度超过了这个数值,移动端的浏览器会自动会网页缩放以完整显示网页。所以基本大部分 PC端 网站都可以在移动端中正常浏览,但是往往不会有一个好的体验。为了解决这个问题,大部分网站都会专门为移动端设计网页。

  移动端默认的视口大小是 980px(CSS像素)。默认情况下,移动端的像素比 就是 物理像素/CSS像素,即 移动端宽度/视口大小。如果我们直接在网页中编写移动端代码,在这样的视口下,像素比是非常不好的,会导致网页中的内容非常非常的小。因此,在编写移动端页面时,必须要确保有一个比较合理的像素比。我们可以通过 <meta> 标签来设置视口大小。每一款移动设备设计时,都会有一个最佳的像素比。一般,我们只需要将像素比设置为该值即可得到一个最佳效果。将像素比设置为最佳像素比的视口大小,我们称其为 完美视口

<!DOCTYPE html>
<html>
    <head>
        <title>移动端适配</title>
        <meta charset="UTF-8">
        <!-- 设置视口大小 device-width表示设备的宽度(完美视口) -->
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <style>
            *{
                margin: 0;
                padding: 0;
            }

            .box1{
                width: 100px;
                height: 100px;
                background-color: #bfa;
            }  
        </style>
    </head>
    <body>
        <div class="box1"></div>
    </body>
</html>

  在写移动端的页面时,一定要加上以下代码:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

二、vw适配

  由于不同设备的视口和像素比不同,所以同样的像素大小在不同的设备下的意义也是不同的。所以,在移动端开发时,对网页不会能使用 px 来进行局部,应该使用 vw 来进行布局。vw 表示的视口宽度(viewport width)。vw 这个单位永远相对于视口宽度进行计算;

  • 100vw = 1个视口宽度;
  • 1vw = 1%视口宽度;

  假设设计图的宽度为 750px,使用 vw 作为单位,即 100vw = 750px ==> 1px = 0.13333333333333333vw;假设创建一个大小为 48px * 35px 大小的 div。

<!DOCTYPE html>
<html>
    <head>
        <title>移动端适配</title>
        <meta charset="UTF-8">
        <!-- 设置视口大小 device-width表示设备的宽度(完美视口) -->
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <style>
            *{
                margin: 0;
                padding: 0;
            }

            html{
                /* 
                    0.13333333333333333vw = 1px 
                */
                font-size: 0.13333333333333333vw;
            }

            .box1{
                /*
                    1rem = 1 html的字体大小 
                */
                width: 48rem;
                height: 35rem;
                background-color: #bfa;
            }  
        </style>
    </head>
    <body>
        <div class="box1"></div>
    </body>
</html>

  在有些旧版的浏览器中,网页中字体大小最小是 12px,不能设置一个比 12px 还要小的字体。如果我们设置了一个小于 12px 的字体,浏览器可能会将字体自动设置为 12px。此时,我们可以通过以下方式设置:

<!DOCTYPE html>
<html>
    <head>
        <title>移动端适配</title>
        <meta charset="UTF-8">
        <!-- 设置视口大小 device-width表示设备的宽度(完美视口) -->
        <meta name="viewport" content="width=device-width, initial-scale=1.0">

        <style>
            *{
                margin: 0;
                padding: 0;
            }

            html{
                /* 
                    0.13333333333333333vw = 1px 
                    6.66667vw = 50px
                */
                font-size: 6.66667vw;
            }

            .box1{
                /*
                    1rem = 1 html的字体大小 
                    1rem = 50px(设计图)
                */
                width: 0.96rem;
                height: 0.7rem;
                background-color: #bfa;
            }  
        </style>
    </head>
    <body>
        <div class="box1"></div>
    </body>
</html>

标签:网页,适配,28,像素,视口,vw,移动,CSS
From: https://www.cnblogs.com/nanoha/p/17028619.html

相关文章

  • 开发Adobe AIR移动应用程序的考虑事项
    扩展:​​http://mobile.51cto.com/Adobe-302658.htm​​ AdobeAIR经过发展演进,已经超越了最初作为桌面应用程序平台的目标。如今,它支持跨移动、桌面和数字家用设备的独立......
  • Adobe AIR * 设置移动应用程序属性
    ​ 对于其他AIR应用程序,可以在应用程序描述符文件中设置基本应用程序属性。移动应用程序会忽略某些特定于桌面的属性,例如窗口大小和透明度。移动应用程序还可以使用自己......
  • GitHub优秀移动开源项目大集合
    ​​GitHub上最火的40个Android开源项目(一)​​​​GitHub上最火的40个Android开源项目(二)​​​​GitHub上最火的74个Android开源项目(三)​​​​GitHub上最火的40个iOS开源项......
  • Unity游戏副本地图点击图标移动功能
    本篇讲相同的功能即:点击地图中的一个位置,让图标瞬间移动到点击位置,同时3D场景中人物也可以抵达场景中对应的点击位置。如图:操作方法和之前一样:找到大地图的渲染的Rawimage。......
  • unity之人物移动到鼠标点击位置
    建立一个cube作为player,建立一个plane作为地面并且Tag设置为Terrain。将下面脚本NewBehaviourScript绑定到相机上。然后把cube拖到脚本里。点击鼠标左键在地面上即可看到cub......
  • unity3d相机跟随物体平滑移动(C#代码)
    usingUnityEngine;usingSystem.Collections;publicclassCameraFollow:MonoBehaviour{publicTransformtarget;privateVector3wantedPosition......
  • Unity3d碰撞器与触发器的区别详解(rigidbody移动和charactercontroller移动区别)
    Rigidbody或者charactercontroller移动才可以用collider的碰撞。正文:要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理......
  • Android屏幕适配小技巧swdp
    最近做一个项目需要适配到不同的平板和手持设备上,在屏幕适配上遇到了一些问题,查了Android官方文档了解了一些技巧的,现在总结如下:先解释几个概念:1、dpi(dotperinch),即每英......
  • C#实现treeview节点上下左右自由移动
    以下是节点移动类NodeMove.cs源码:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Collections;namespaceNo......
  • 中国移动魔百盒 安装当贝桌面
    中国移动魔百盒安装当贝桌面TableofContents一、起因二、经过三、效果ReferenceTable1.修改历史日期修订人备注2022-12-25崔嘉诚......