适配

文章目录

适配

方案


	让移动端的网页在各种移动端设置上 ,能够完好显示
	适配方案:
		> 1.百分比- 固定高度,宽度不固定(动态)
			大部分的元素 大小分布比较均匀  单位%  flex
		
		> 2.固定宽度 - 在啥情况 使用都可以,但是相对而言比较少,用KM打包工具打包成APP,布局错乱
			单位是具体的 px % flex

		> 3.rem  目前用得比较普遍,在不同的移动端上 元素的大小也各不相同,因为是根据屏幕的宽度进行适配的
			单位 是 rem flex %
			rem:
                    r  root  -> Html

                    em
                        根据自身的文字去计算 元素默认的文字是16px 那1em= 16px
                    rem : 根据 html的文字大小 去进行计算元素的大小


	 media  在特定的设备或宽度里,要控制某些元素或文字大小,会结合media
	 vw vh 1vw是占屏幕宽度的1% 1vh占高度的1% 有兼容问题,比较少,自适应项目会用到
            dpr  有js api获取到设备的像素比

	响应式
                可以在移动端进行显示,最好不要,如果做app,移动端和PC端分开
                响应式布局的网页非常不适合嵌套在app


rem

下载koala软件可以动态实时的将css预处理文件less 更新到css文件中,less文件可以定义变量,koala将
变量计算好实时的更新到css文件中

index.html


<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <!--如果不写视口大小,那么视口是980px,那么html body的大小也是980,所以要我规定视口大小为设备的屏幕-->
    <script>
//        根据设备的宽度,动态设置 html的文字大小
        var html = document.querySelector('html');
        var width = html.getBoundingClientRect().width;
        html.style.fontSize = width/10 + 'px'; // 把屏幕的大小分成 10等分
    </script>

    <title>Document</title>
    <link rel="stylesheet" href="css/index.css">
</head>
<body>
    <div>
        <ul class="clearFix">
            <li><a href=""><img src="img1/1.png" alt="" width="100%" height="100%"></a><span>京东超市</span></li>
            <li><a href=""><img src="img1/2.png" alt="" width="100%" height="100%"></a><span>全球购</span></li>
            <li><a href=""><img src="img1/3.png" alt="" width="100%" height="100%"></a><span>全球服饰</span></li>
            <li><a href=""><img src="img1/4.png" alt="" width="100%" height="100%"></a><span>京东生鲜</span></li>
            <li><a href=""><img src="img1/5.png" alt="" width="100%" height="100%"></a><span>京东到家</span></li>
        </ul>
        <ul class="clearFix">
            <li><a href=""><img src="img1/6.png" alt="" width="100%" height="100%"></a><span>充值缴费</span></li>
            <li><a href=""><img src="img1/7.png" alt="" width="100%" height="100%"></a><span>京东豆</span></li>
            <li><a href=""><img src="img1/8.png" alt="" width="100%" height="100%"></a><span>领卷</span></li>
            <li><a href=""><img src="img1/9.png" alt="" width="100%" height="100%"></a><span>赚钱</span></li>
            <li><a href=""><img src="img1/10.png" alt="" width="100%" height="100%"></a><span>物流查询</span></li>
        </ul>
    </div>

    <script>
/*
        在移动端:
            1倍屏幕  1倍设计图
            2倍屏幕  2倍设计图
            3倍屏幕  3倍设计图

        1倍屏幕  1倍设计图
            300px  img 300px
        2倍屏幕  2倍设计图
            300px  img 300px  dpr=2 像素比  高清屏幕
            实际大小是
                300*2 大小
                    图片放大会模糊
         3倍屏幕  3倍设计图
            300px  img 300px  dpr=3
                  300*3 大小
                        图片放大会模糊
            dpr 像素比 = 物理像素 / 独立像素
                物理像素: 设备分辨率
                独立像素: 用户用设备看网页,网页是谁开发的? 开发者怎么设置大小( css PX ),然后转换成 设备分辨率?
               dpr =2  css 的1px 它会把其显示成2px

*/

    </script>
</body>
</html>


index.less

/*定义变量@rem = 64rem */
@rem:640/10rem;

*{
  margin: 0;
  padding: 0;
}
li{
  list-style: none;
}
div{}
div ul{
  display: flex;
  height: 110/@rem;
}
div ul li{
  flex: 1;
  font-size: 21/@rem;
  text-align: center;
  line-height: 40/@rem;
}
div ul li a{
  display: block;
  width: 68/@rem;
  height: 69/@rem;
  margin: 0 auto;
}
div ul li span{

}

index.css

/*定义变量@rem = 64rem */
* {
  margin: 0;
  padding: 0;
}
li {
  list-style: none;
}
div ul {
  display: flex;
  height: 1.71875rem;
  width:70%;
  margin:0px auto;
  border:1px solid red;
}
div ul li {
  flex: 1;
  font-size: 0.328125rem;
  text-align: center;
  line-height: 0.625rem;
}
div ul li a {
  display: block;
  width: 1.0625rem;
  height: 1.078125rem;
  margin: 0 auto;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值