如何解决PC端和移动端自适应问题?

JS/JQ 实现无视系统和浏览器的缩放比例改为固定缩放比例 最近用笔记本做了一个网页,笔记本的系统缩放比是125%,浏览器是100%。 但是客户用的是台式机,客户的系统和浏览器的缩放比例都是100%,这个页面在100%会很丑,而且这个页面是为了全屏设计的,客户想不全屏的时候也能展示全所有信息。因此想尽可能少的改造代码就想到了zoom缩放。 zoom缩放的原理是: 1、先获取系统✖浏览器的缩放比例: window.devicePixelRatio;//假设系统缩放是100%,浏览器是100%,这个值就是1✖1=1 2、调整缩放: ... 阅读详情

如何解决PC端和移动端自适应问题?

   做网页时,我们通常需要考虑到不同电脑屏幕尺寸,以及不同手机屏幕大小等问题,解决样式发生改变的情况,那么如何解决呢?现在主要是采用自适应来解决高度,宽度的,以及图片自适应问题,下面就PC端和移动端来总结一下,通常进行自适应高度和宽度,图片时,一般与页面的布局存在关系。

1、最小尺寸分辨率1024*768(传统17寸显示器),则可以采用940px、960px、或者常用的980px作为最小宽度

2、1024*768之后稍大的分辨率就是1280*768了,则可以采用1200px或者1220px作为稍大的网页宽度

3、支持css3、html5的高级浏览器可以利用CSS3 Media Queries让网页在不同分辨率下自动调节布局标签

4、不支持css3、html5的脑残浏览器特别是<=ie8系列则需要用js以及resize事件来控制html的布局标签宽度了

5、宽度自适应需要对每个显示模块进行不同宽度的计算,在做html布局时需要大量的计算与适配。

6、宽度自适应为不同宽度显示器写布局元素时常用的css

下面我们看下,如何用js和css来自适应屏幕的大小。

一:了解高度和宽度的基础

      下面用图片来说明:

      

    网页可见区域高宽为:document.body.clientHeight||document.body.clientWidth

    网页正文的区域高宽为:document.body.scrollHeight||document.body.scrollWidth(包括滚轮的长度)

    网页被卷去的上左区域:document.body.scrollTop||document.body.scrollLeft

二: css自适应高度

   1.两栏布局,左边固定,右边宽度自适应

复制代码
方法一:
//html部分
<
div id="left">左边</div> <div id="bodyText">正文</div> //css部分
*{margin:0;padding:0}
#left{float:left;width:200px;background:red;}
#bodyText{margin-left:200px;background:yellow;

方法二:
//html部分
<div id="left">左边</div>
<div id="body">
    <div id="bodyText">正文</div>
</div>
//css部分
#left{float:left;width:200px;background:red;margin-right:-100%;}
#body{width:100%;float:left;}
#bodyText{margin-left:200px;background:yellow;}
复制代码

  2.三栏布局,两边定宽,中间自适应宽度

复制代码
方法一:
<
div id="left">左边</div>----注意和div的位置有关系 <div id="right">右边</div> <div id="center">中间</div>
//css部分
#left{width:200px;background:red;float:left;}
#center{width:auto;background:blue;}
#right{width:200px;background:yellow;float:right;}

方法二:
html部分:
<div id="body">
    <div id="center">中间</div>
</div>
<div id="left">左边</div>
<div id="right">右边</div>
css部分:
#body{width:100%;float:left;} //设置浮动和width:100%
#body #center{background:red;margin-left:200px;margin-right:300px;} //margin-left:100%的使用方法
#left{width:200px;background:yellow;margin-left:-100%;float:left}
#right{width:300px;background:blue;margin-left:-300px;float:left}
-----如果设置为margin-left:-100%,则会跑到body的左边。
-----如果设置为margin-left:-300px(即right的宽度),则会跑到body的右边
复制代码

 3.关于最小宽度和最大宽度

   这里依然结合布局来看,如下面的代码:自适应宽度,从而改变布局。

复制代码
//html部分
<
div id='container'> <div class='one'></div> <div class='two'></div> <div class='three'></div> </div> //css部分 #container{width:100%;} .one{width:20%;background:red;} .one,.two,.three{float:left; height:100px;} .two{width:60%;background:yellow;} .three{width:20%;background:blue;} @media (max-width:800px){--如果浏览器小于800px .one{width:40%;} .two{width:60%} .three{width:100%} } @media (max-width:400px)--如果浏览器宽度小于400px { .one{width:100%} .two{width:100%} .three{width:100%} }
复制代码

  理解什么叫最小宽度和最大宽度,最小宽度指为元素设置的最小宽度,到达最小宽度后,缩放文本不会起到任何作用

最大宽度是所有元素所能达到的一个上限,不能再继续往上增加。

三: css处理自适应高度

复制代码
//html部分代码
<div id="fit"></div>
//css代码
html,body{margin:0;height:100%;}
#fit{width:200px;background:yellow;height:100%;border:1px solid red;}

--这里同时给html和body加样式,是为了兼容各大浏览器。
IE 处于混杂模式时,body以窗口为高度参照,body设置为100%就可以使得页面和窗口一样高,body里面的嵌套div也可以扩展到窗口高度,
这样的话可以使布局适应浏览器窗口大小。窗体 》body》div  (html ,body {overflow:scroll}  一层滚动条)
      但是当处于标准模式时,body以html标签为高度参照,html标签才以窗口为参照,所以仅仅body 100%,并不能使它的子div100% 占据整个屏幕
还要使得 html 100%使得 html获得窗口大小才行。窗体》html》body》div (html ,body {overflow:scroll}  两层滚动条 ,html的滚动条从来不会用到)
复制代码

 父级随子级高度变化而自适应变化与子级随父级高度变化而变化

复制代码
<div id="fj">
   我是父级
   <div id="zj1">我是子级1</div>
   <div id="zj2">我是子级2</div>
</div>
//css部分
#fj{border:4px solid red;}
#zj1{border:2px solid yellow;}
#zj2{border:2px solid blue;}----这种情况下,父级高度随着子级div的高度自适应的改变
复制代码

如果子div使用了float属性,此时已经脱离标准流,父div不会随内容的高度变化而变化,解决的办法是在浮动的div下面,加一个空div,设置clear属性both

复制代码
<div id="fj">
   我是父级
   <div id="zj1">我是子级11111111111111111111111111</div>
   <div id="zj2">我是子级222222222222222222222222222222222222222222
  222222222222222222222222222</div>
   <div id="clear" style="clear:both"></div>------如果去掉这句话,则父级div高度,不会随着子级的高度变化而变化
</div>
//css部分
#fj{border:4px solid black;}
#zj1{border:2px solid yellow;float:left}
#zj2{border:2px solid blue;float:left}
复制代码

高度的自适应的方法还有很多,这里不再列举。像height:auto等等。

四:js处理高度和宽度自适应问题

复制代码
<div id="div1" >222222222222222222222</div>
//js部分
function setHeight(obj)
{
  var temHeight=null;
  //FF
  if(window.innerHeight)
  {
    temHeight=window.innerHeight;//包括页面高度和滚动条高度
  }
  else 
  {
     temHeight=document.body&&document.body.clientHeight;
  }
  if(temHeight>document.body.clientHeight)//页面高度
  {
     oDiv.style.height=temHeight+"px";
  }
  else
  {
    oDiv.style.height=document.body.clientHeight+"px";
  }
}
window.οnlοad=function()
{
  var oDiv=document.getElementById("div1");
  getHeight(oDiv);
}
复制代码

宽度自适应代码:

复制代码
function  setWidth(obj)
{ var screenWidth = window.screen.width; var width; var imgURL ; if (screenWidth >= 1440)
{ width = "1400px"; imgURL = "1400.png";//设置不同分辨率下的图片 }
else if (1024
< screenWidth && screenWidth < 1440)
{ width
= "1200px"; imgURL = "1200.png"; }
else { width
= "980px"; imgURL = "980.png"; } obj.style.width=width ;
obj.style.backgroundImage="url(" + imgURL + ")"; })
复制代码

 五:移动端的自适应高度和宽度

     移动端的相对要简单些,首先,在网页代码的头部,加入一行viewport标签。

    <meta name=”viewport” content=”width=device-width, initial-scale=1″ />

     viewport是网页默认的宽度和高度,上面的意思表示,网页的宽度默认等于设备屏幕的宽度,原始缩放比例为1,即网页初始大小占屏幕面积的100%。

    1:由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。具体说,CSS代码不能指定像素宽度:width:xxx px;只能指定百分比宽度:width: xx%;或者width:auto;

    2:一般使用em,尽量少使用px字体

    3:使用流动布局

    4:自适应网页设计”的核心,就是CSS3引入的media query模块。下载地址:http://download.youkuaiyun.com/download/song_121292057/8031781

    自动探测屏幕宽度,然后加载相应的CSS文件。

    <link rel="stylesheet" type="text/css"  media="screen and (max-device-width: 400px)" href="style.css" /> 

-------当屏幕小于400时,就加载style.css这个文件

  5:除了用html标签加载CSS文件,还可以在现有CSS文件中加载。

  @import url("style2.css") screen and (max-device-width: 800px);//当小于800px屏幕时,就加载style2.css文件

  6:图片的自动缩放,比较简单。只要一行CSS代码:img{ max-width: 100%;}建议根据不同的屏幕分辨率,加载不同大小像素的图片。      

    移动端的自适应,大体上差不多就这么多,主要核心是利用mediaquery,根据不同的屏幕大小,实现不同的布局。代码可看上面的列子。这里不再重复写。


大概总结了一下自己遇到的问题,还有什么好的方法,请给我留言哈!

作者:向婷风

出处:http://www.cnblogs.com/jtjds/p/5480857.html

如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者

本人同意 转载文章之后必须在 文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。

JavaScript实现页面自适应的方法 这些方法可以根据不同的条件和环境来调整页面的布局和样式,确保页面在不同设备和屏幕尺寸下都能呈现出良好的用户体验。例如,Bootstrap是一个流行的CSS框架,它提供了一套响应式的栅格系统和组件,可以方便地实现页面的自适应。在前端开发中,实现页面的自适应是非常重要的,因为不同设备和屏幕尺寸的存在,页面在不同的环境中需要适应不同的布局和显示效果。在上面的代码中,我们使用了Bootstrap的栅格系统,将页面分为两列,分别占据了50%的宽度。变量的值,我们可以动态地改变媒体查询的条件,从而实现页面的自适应。 阅读详情

相关推荐

javascript实现一个能自适应各大主流浏览器的浮动网页布局结构

javascript实现一个能自适应各大主流浏览器的浮动网页布局结构

希望我的博客,能帮上你解决学习中工作中所遇到的问题 261

pc端和移动端自适应, 做响应式网页

一套代码能够兼容适配不同的屏幕设备,内容不变布局效果变了,这样的网页就是响应式网页在开发中要想实现项目的响应式,建议使用媒体查询,在不同的宽度下显示不同的样式,1920下就是pc端的响应式,宽度设置的足够小可以匹配移动端的响应式。...

luoxiaonuan_hi的博客 1万+

Python读取三菱PLC数据

3、支持自定义的数据读写操作。直接调用Read方法,可以读取到原生的byte数组,然后进行组合数据。1、每次的数据交互您都可以判断是否成功,如果您不判断,如果网络断开或是异常,会影响程序的执行。Qna3E协议的ascii类 MelsecMcAsciiNet。A兼容1E协议的二进制类 MelsecA1ENet。Qna3E协议的二进制类 MelsecMcNet。2、读写操作支持单个数和数组。

weixin_46744807的博客 1998

前端移动端布局自适应 及移动端和PC端共用一套代码注意事项

移动端布局需要适应不同大小手机平板屏幕,所以字体图片等尺寸就要做到随着屏幕大小的变化去自适应,这样会给用户很好的体验感和美感。例如:以上就是今天要讲的内容,本文仅仅简单介绍了移动端布局注意事项。

weixin_43335008的博客 8549

PCB印刷电路缺陷检测实战:从数据集准备到模型训练全流程解析

本文详细解析了PCB缺陷检测从数据集准备到模型训练的全流程。重点介绍了PKU-Market-PCB数据集的特点与下载方法,并提供了数据格式转换、模型选择(如YOLOv8)与训练配置的实战代码。针对PCB小目标检测的难点,文章给出了数据分析和模型优化的具体策略,帮助读者构建高效的缺陷检测系统。

weixin_29065791的博客 546

扩视机器视觉—Halcon机器视觉48个实战项目六(检测定位角度)

此项目halcon检测检测定位角度问题,并显示。

qq_21516871的博客 1093

antd 能自适应吗_如何解决PC端和移动端自适应问题?

做网页时,我们通常需要考虑到不同电脑屏幕尺寸,以及不同手机屏幕大小等问题,解决样式发生改变的情况,那么如何解决呢?现在主要是采用自适应来解决高度,宽度的,以及图片自适应问题,下面就PC端和移动端来总结一下,通常进行自适应高度和宽度,图片时,一般与页面的布局存在关系。1、最小尺寸分辨率1024*768(传统17寸显示器),则可以采用940px、960px、或者常用的980px作为最小宽度2、1024...

weixin_31680649的博客 4835

WAVE格式

一.wave格式概述 Wave文件格式是用于多媒体文件存储的Microsoft RIFF(Resource Interchange FileFormat)的一个子集。每一个RIFF文件以一个文件头开始,后面是一系列数据块。Wave文件通常是包含“WAVE”块的RIFF文件。而该“WAVE”块由两个子块组成,称为“fmt”块。“fmt”块用于确定数据格式,并且“data”块包含实际的样本数据,

yejia1280的博客 4389

解决PC端和移动端自适应问题?

通常需要考虑到不同电脑屏幕尺寸,以及不同手机屏幕大小等问题,解决样式发生改变的情况,现在主要是采用自适应来解决高度,宽度的,以及图片自适应问题 现在有很多人的IE浏览器都升级到IE9以上了,所以这个时候就有又很多诡异的事情发生了,例如现在是IE9的浏览器,但是浏览器的文档模式却是IE8 为了防止这种情况,我们需要下面这段代码来让IE的文档渲染模式永远都是最新的 这段代码后面加了一个chrome...

怎么写,解决问题的博客 1万+

告别黑窗口!用VSCode+Native Debug调试C/C++程序,比GDB命令行舒服多了

本文介绍了如何使用VSCode配合Native Debug扩展来调试C/C++程序,替代传统的GDB命令行方式。通过可视化调试环境,开发者可以更高效地管理断点、查看变量和调用栈,大幅提升调试效率。文章详细讲解了环境配置、核心调试功能及高级技巧,帮助开发者快速上手这一现代调试工具。

weixin_26833139的博客 249

速腾聚创激光雷达复现FAST-LIO

记录复现FAST-LIO算法的过程和,代码梳理和理解。FAST-LIO的简化版、注释版。速腾激光雷达

abanchao的博客 2928

viewport在pc端是否生效_如何解决PC端和移动端自适应问题?

作网页时,咱们一般须要考虑到不一样电脑屏幕尺寸,以及不一样手机屏幕大小等问题,解决样式发生改变的状况,那么如何解决呢?如今主要是采用自适应来解决高度,宽度的,以及图片自适应问题,下面就PC端和移动端来总结一下,一般进行自适应高度和宽度,图片时,通常与页面的布局存在关系。一、最小尺寸分辨率1024*768(传统17寸显示器),则能够采用940px、960px、或者经常使用的980px做为最小宽度二、...

weixin_39620099的博客 896

Ubuntu虚拟机IP卡在127.0.0.1?别慌,试试这条万能命令 `sudo dhclient`

本文详细解析了Ubuntu虚拟机IP卡在127.0.0.1的常见原因及解决方案,重点介绍了`sudo dhclient`命令的使用方法及其变体,帮助用户快速恢复网络连接。同时提供了网络诊断工具和预防措施,适用于开发者和系统管理员应对网络故障。

weixin_29251131的博客 283

解决PC端、移动端页面自适应性问题

解决PC端、移动端页面自适应性问题

weixinhmz的博客 287

A100 NVLink集群极致优化指南

《A100 NVLink集群通信优化指南》摘要:针对A100 80G SXM机型NVLink 3.0集群,提供硬件配置检查方法(nvidia-smi topo -m)和强制启用指令。重点介绍NCCL参数调优(算法选择、低延迟协议配置)、GPUDirect RDMA启用步骤,以及单机/多机场景下的通信模式选择。包含PyTorch all_reduce基准测试方法,并给出带宽异常排查方案(dmesg检查、NCCL缓存重置)。通过CUDA Graph通信重叠和混合精度优化,可实现90%+带宽利用率。附猿界算力监控

2401_89353317的博客 583

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

PC端和移动端自适应问题解决方法

1、最小尺寸分辨率1024*768(传统17寸显示器),则可以采用940px、960px、或者常用的980px作为最小宽度。 简单理解为可视区域最大宽度为600px,即大于600px下不生效。 @media screen and (max-width: 600px) { .class { background: #fff; } } 简单理解为可视区域最小宽度为900px,即大于900px下生效。 @media screen and (min-width: 900px) { .class { b

HanXiaoXi_yeal的博客 2893

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

php适应pc和手机页面,如何解决PC端和移动端自适应问题? - 向婷风

做网页时,我们通常需要考虑到不同电脑屏幕尺寸,以及不同手机屏幕大小等问题,解决样式发生改变的情况,那么如何解决呢?现在主要是采用自适应来解决高度,宽度的,以及图片自适应问题,下面就PC端和移动端来总结一下,通常进行自适应高度和宽度,图片时,一般与页面的布局存在关系。1、最小尺寸分辨率1024*768(传统17寸显示器),则可以采用940px、960px、或者常用的980px作为最小宽度2、1024...

weixin_39527163的博客 855

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

body onload 控制窗口大小 html,如何解决PC端和移动端自适应问题?

做网页时,我们通常需要考虑到不同电脑屏幕尺寸,以及不同手机屏幕大小等问题,解决样式发生改变的情况,那么如何解决呢?现在主要是采用自适应来解决高度,宽度的,以及图片自适应问题,下面就PC端和移动端来总结一下,通常进行自适应高度和宽度,图片时,一般与页面的布局存在关系。1、最小尺寸分辨率1024*768(传统17寸显示器),则可以采用940px、960px、或者常用的980px作为最小宽度2、1024...

weixin_32296621的博客 380

使用flexible.js和第三方依赖包postcss-px2rem,解决pc端响应式和移动端自适应问题

使用flexible.js和第三方依赖包postcss-px2rem,解决pc端响应式和移动端自适应问题

在无知中学习,在学习中成长,在成长中学习 2130
上一篇: mongDB使用小技巧
下一篇: ES6,小笔记
drl1210
博客等级 码龄10年 26粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值