我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

这篇文章主要介绍了如何解决PC端和移动端自适应问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

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

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

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

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

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

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

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

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

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

下面用图片来说明:

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

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

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

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

二: css自适应高度

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

  1. 方法一:   

  2. //html部分   

  3. <div id="left">左边</div>  

  4. <div id="bodyText">正文</div>  

  5. //css部分   

  6. *{margin:0;padding:0}   

  7. #left{float:left;width:200px;background:red;}   

  8. #bodyText{margin-left:200px;background:yellow;   

  9.   

  10. 方法二:   

  11. //html部分   

  12. <div id="left">左边</div>  

  13. <div id="body">  

  14.     <div id="bodyText">正文</div>  

  15. </div>  

  16. //css部分   

  17. #left{float:left;width:200px;background:red;margin-right:-100%;}   

  18. #body{width:100%;float:left;}   

  19. #bodyText{margin-left:200px;background:yellow;}  

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

  1. 方法一:   

  2. <div id="left">左边</div>----注意和div的位置有关系   

  3. <div id="right">右边</div>  

  4. <div id="center">中间</div>  

  5. //css部分   

  6. #left{width:200px;background:red;float:left;}   

  7. #center{width:auto;background:blue;}   

  8. #right{width:200px;background:yellow;float:right;}   

  9.   

  10. 方法二:   

  11. html部分:   

  12. <div id="body">  

  13.     <div id="center">中间</div>  

  14. </div>  

  15. <div id="left">左边</div>  

  16. <div id="right">右边</div>  

  17. css部分:   

  18. #body{width:100%;float:left;} //设置浮动和width:100%   

  19. #body #center{background:red;margin-left:200px;margin-right:300px;} //margin-left:100%的使用方法   

  20. #left{width:200px;background:yellow;margin-left:-100%;float:left}   

  21. #right{width:300px;background:blue;margin-left:-300px;float:left}   

  22. -----如果设置为margin-left:-100%,则会跑到body的左边。   

  23. -----如果设置为margin-left:-300px(即right的宽度),则会跑到body的右边  

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

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

  1. //html部分   

  2. <div id='container'>  

  3.     <div class='one'></div>  

  4.     <div class='two'></div>  

  5.     <div class='three'></div>  

  6.  </div>  

  7.   

  8. //css部分   

  9. #container{width:100%;}   

  10. .one{width:20%;background:red;}   

  11. .one,.two,.three{float:left; height:100px;}   

  12. .two{width:60%;background:yellow;}   

  13. .three{width:20%;background:blue;}   

  14. @media (max-width:800px){--如果浏览器小于800px   

  15.   .one{width:40%;}   

  16.   .two{width:60%}   

  17.   .three{width:100%}   

  18. }   

  19. @media (max-width:400px)--如果浏览器宽度小于400px   

  20. {   

  21.    .one{width:100%}   

  22.    .two{width:100%}   

  23.    .three{width:100%}   

  24.      

  25. }  

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

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

三: css处理自适应高度

  1. //html部分代码   

  2. <div id="fit"></div>  

  3. //css代码   

  4. html,body{margin:0;height:100%;}   

  5. #fit{width:200px;background:yellow;height:100%;border:1px solid red;}   

  6.   

  7. --这里同时给html和body加样式,是为了兼容各大浏览器。   

  8.    IE 处于混杂模式时,body以窗口为高度参照,body设置为100%就可以使得页面和窗口一样高,body里面的嵌套div也可以扩展到窗口高度,   

  9. 这样的话可以使布局适应浏览器窗口大小。窗体 》body》div  (html ,body {overflow:scroll}  一层滚动条)    

  10.      但是当处于标准模式时,body以html标签为高度参照,html标签才以窗口为参照,所以仅仅body 100%,并不能使它的子div100% 占据整个屏幕   

  11. 还要使得 html 100%使得 html获得窗口大小才行。窗体》html》body》div (html ,body {overflow:scroll}  两层滚动条 ,html的滚动条从来不会用到)  

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

  1. <div id="fj">  

  2.    我是父级   

  3.    <div id="zj1">我是子级1</div>  

  4.    <div id="zj2">我是子级2</div>  

  5. </div>  

  6. //css部分   

  7. #fj{border:4px solid red;}   

  8. #zj1{border:2px solid yellow;}   

  9. #zj2{border:2px solid blue;}----这种情况下,父级高度随着子级div的高度自适应的改变  

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

  1. <div id="fj">  

  2.    我是父级   

  3.    <div id="zj1">我是子级11111111111111111111111111</div>  

  4.    <div id="zj2">我是子级222222222222222222222222222222222222222222   

  5.   222222222222222222222222222</div>  

  6.    <div id="clear" style="clear:both"></div>------如果去掉这句话,则父级div高度,不会随着子级的高度变化而变化   

  7. </div>  

  8. //css部分   

  9. #fj{border:4px solid black;}   

  10. #zj1{border:2px solid yellow;float:left}   

  11. #zj2{border:2px solid blue;float:left}  

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

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

  1. <div id="div1" >222222222222222222222</div>  

  2. //js部分   

  3. function setHeight(obj)   

  4. {   

  5.   var temHeight=null;   

  6.   //FF   

  7.   if(window.innerHeight)   

  8.   {   

  9.     temHeight=window.innerHeight;//包括页面高度和滚动条高度   

  10.   }   

  11.   else    

  12.   {   

  13.      temHeight=document.body&&document.body.clientHeight;   

  14.   }   

  15.   if(temHeight>document.body.clientHeight)//页面高度   

  16.   {   

  17.      oDiv.style.height=temHeight+"px";   

  18.   }   

  19.   else   

  20.   {   

  21.     oDiv.style.height=document.body.clientHeight+"px";   

  22.   }   

  23. }   

  24. window.onload=function()   

  25. {   

  26.   var oDiv=document.getElementById("div1");   

  27.   getHeight(oDiv);   

  28. }  

宽度自适应代码:

  1. function  setWidth(obj)   

  2. {   

  3.      var screenWidth = window.screen.width;       

  4.      var width;   

  5.      var imgURL ;   

  6.      if (screenWidth >= 1440)    

  7.      {   

  8.          width = "1400px";   

  9.          imgURL = "1400.png";//设置不同分辨率下的图片   

  10.      }   

  11.      else if (1024 < screenWidth && screenWidth < 1440)    

  12.      {   

  13.          width = "1200px";   

  14.          imgURL = "1200.png";   

  15.      }    

  16.       else {   

  17.           width = "980px";   

  18.           imgURL = "980.png";   

  19.         }   

  20.        obj.style.width=width ;   

  21.        obj.style.backgroundImage="url(" + imgURL + ")";   

  22.   })  

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

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

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

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

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

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

使用流动布局

自适应网页设计”的核心,就是CSS3引入的media query模块。

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

<link rel="stylesheet" type="text/css"  media="screen and (max-device-width: 400px)" href="style.css" /> -------当屏幕小于400时,就加载style.css这个文件 

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

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

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

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

感谢你能够认真阅读完这篇文章,希望小编分享的“如何解决PC端和移动端自适应问题”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

这篇文章主要介绍了如何解决PC端和移动端自适应问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。做网页时,我们通常需要考虑到不同电脑屏幕尺寸,以及不同手机屏幕大小等问题,解决
2023-06-08

如何在pc和移动端中实现响应式

这篇文章给大家介绍如何在pc和移动端中实现响应式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.响应式跟自适应有什么区别?有些人可能还不知道响应式跟自适应的区别,甚至认为他们是同一个东西,其实不是的.自适应是最早出现
2023-06-09

前端开发中移动端如何实现自适应布局

这篇文章将为大家详细讲解有关前端开发中移动端如何实现自适应布局,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一. 在HTML的头部加入meta标签在HTML的头部,也就是head标签中增加meta标签,告
2023-06-08

css3如何解决移动端卡顿的问题

这篇文章主要介绍css3如何解决移动端卡顿的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、使用css,jquery,canvas制作动画1.Canvas优点:性能好,强大,支持多数浏览器(除了IE6、IE7、
2023-06-08

如何解决移动端小图标模糊的问题

这篇文章将为大家详细讲解有关如何解决移动端小图标模糊的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言之前给大家讲到图片和文字垂直方向不对齐的问题,其中举的小例子中用到了一个小图标,这个小图标我用的
2023-06-08

如何解决canvas在移动端绘制模糊的问题

小编给大家分享一下如何解决canvas在移动端绘制模糊的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!由于一些移动端的兼容性原因,我们某个项目需要前端将pdf
2023-06-09

如何解决移动端HTML5音频与视频的问题

小编给大家分享一下如何解决移动端HTML5音频与视频的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近在研究用视频代替动画,用视频代替精灵动画,我们称这种视
2023-06-09

如何解决移动端Html5页面中1px边框的问题

这篇文章将为大家详细讲解有关如何解决移动端Html5页面中1px边框的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。问题提出这是一个比较老的问题了,我第一次注意到的时候,是UI设计师来找我麻烦,emm
2023-06-09

解决移动端响应式布局常见问题的方案

移动端响应式布局的常见问题及解决方案随着移动互联网的快速发展,越来越多的人开始使用移动设备访问网页,这也给网页设计师带来了新的挑战。为了适应不同设备的屏幕尺寸,移动端响应式布局成为了一种流行的设计趋势。然而,在实际应用中,我们经常会遇到一
解决移动端响应式布局常见问题的方案
2024-01-29

vue使用ElementUI部分组件适配移动端问题怎么解决

本篇内容主要讲解“vue使用ElementUI部分组件适配移动端问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue使用ElementUI部分组件适配移动端问题怎么解决”吧!组件适配
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录