版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
如何解决PC端和移动端自适应问题?做网页时,我们通常需要考虑到不同电脑屏幕尺寸,以及不同手机屏幕大小等问题,解决样式发生改变的情况,那么如何解决呢?现在主要是采用自适应来解决高度,宽度的,以及图片自适应问题,下面就PC端和移动端来总结一下,通常进行自适应高度和宽度,图片时,一般与页面的布局存在关系。1、最小尺寸分辨率1024*768(传统17寸显示器),则可以采用940px、960px、或者常用的980px作为最小宽度2、1024*768之后稍大的分辨率就是1280*768了,则可以采用1200px或者1220px作为稍大的网页宽度3、支持css3、html5的高级浏览器可以利用CSS3MediaQueries让网页在不同分辨率下自动调节布局标签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部分
<divid="left">左边</div><divid="bodyText">正文</div>//css部分
*{margin:0;padding:0}
#left{float:left;width:200px;background:red;}
#bodyText{margin-left:200px;background:yellow;
方法二:
//html部分
<divid="left">左边</div>
<divid="body">
<divid="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.三栏布局,两边定宽,中间自适应宽度方法一:
<divid="left">左边</div>----注意和div的位置有关系<divid="right">右边</div><divid="center">中间</div>
//css部分
#left{width:200px;background:red;float:left;}
#center{width:auto;background:blue;}
#right{width:200px;background:yellow;float:right;}
方法二:
html部分:
<divid="body">
<divid="center">中间</div>
</div>
<divid="left">左边</div>
<divid="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部分
<divid='container'><divclass='one'></div><divclass='two'></div><divclass='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部分代码<divid="fit"></div>//css代码html,body{margin:0;height:100%;}#fit{width:200px;background:yellow;height:100%;border:1pxsolidred;}
--这里同时给html和body加样式,是为了兼容各大浏览器。
IE处于混杂模式时,body以窗口为高度参照,body设置为100%就可以使得页面和窗口一样高,body里面的嵌套div也可以扩展到窗口高度,
这样的话可以使布局适应浏览器窗口大小。窗体》body》div(html,body{overflow:scroll}一层滚动条)但是当处于标准模式时,body以html标签为高度参照,html标签才以窗口为参照,所以仅仅body100%,并不能使它的子div100%占据整个屏幕
还要使得html100%使得html获得窗口大小才行。窗体》html》body》div(html,body{overflow:scroll}两层滚动条,html的滚动条从来不会用到)父级随子级高度变化而自适应变化与子级随父级高度变化而变化<divid="fj">我是父级<divid="zj1">我是子级1</div><divid="zj2">我是子级2</div></div>
//css部分
#fj{border:4pxsolidred;}
#zj1{border:2pxsolidyellow;}
#zj2{border:2pxsolidblue;}----这种情况下,父级高度随着子级div的高度自适应的改变如果子div使用了float属性,此时已经脱离标准流,父div不会随内容的高度变化而变化,解决的办法是在浮动的div下面,加一个空div,设置clear属性both<divid="fj">我是父级<divid="zj1">我是子级11111111111111111111111111</div><divid="zj2">我是子级222222222222222222222222222222222222222222222222222222222222222222222</div><divid="clear"style="clear:both"></div>------如果去掉这句话,则父级div高度,不会随着子级的高度变化而变化</div>
//css部分
#fj{border:4pxsolidblack;}
#zj1{border:2pxsolidyellow;float:left}
#zj2{border:2pxsolidblue;float:left}高度的自适应的方法还有很多,这里不再列举。像height:auto等等。四:js处理高度和宽度自适应问题<divid="div1">222222222222222222222</div>//js部分functionsetHeight(obj){vartemHeight=null;//FFif(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.onload=function(){varoDiv=document.getElementById("div1");getHeight(oDiv);}宽度自适应代码:functionsetWidth(obj)
{varscreenWidth=window.screen.width;varwidth;varimgURL;if(screenWidth>=1440)
{width="1400px";imgURL="1400.png";//设置不同分辨率下的图片}
elseif(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标签。<metaname=”viewport”content=”width=device-width,initial-scale=1″/>viewport是网页默认的宽度和高度,上面的意思表示,网页的宽度默认等于设备屏幕的宽度,原始缩放比例为1,即网页初始大小占屏幕面积的100%。1:由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。具体说,CSS代码不能指定像素宽度:width:xxxpx;只能指定百分比宽度:width:xx%;或者width:auto;2:一般使用em,尽量少使用px字体3:使用流动布局4:自适应网页设计”的核心,就是CSS3引入的mediaquery模块。下载地址:/download/song_121292057/8031781自动探测屏幕宽度,然后加载相应的CSS文件。<linkrel="stylesheet"type="text/css"media="screenand(max-device-width:400px)"href="style.css"/>
-------当屏幕小于400时,就加
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专项幕墙安装2024协议范本版
- 组织行为分析与应用
- 专业舞台灯光购销协议一
- 专业维修服务协议样本2024版B版
- 2025年度场监督管理局委托执法事项责任书4篇
- 2025年度厂房设备租赁及维护管理合同范本4篇
- 2024版小区公共服务设施施工协议样本一
- 2024版特定企业融资咨询与服务协议版
- 2025年度户外广告场地租赁终止协议书4篇
- 专用肥料国内运输合同标准文本2024版版
- 2024年08月云南省农村信用社秋季校园招考750名工作人员笔试历年参考题库附带答案详解
- 防诈骗安全知识培训课件
- 心肺复苏课件2024
- 2024年股东股权继承转让协议3篇
- 2024-2025学年江苏省南京市高二上册期末数学检测试卷(含解析)
- 四川省名校2025届高三第二次模拟考试英语试卷含解析
- 《城镇燃气领域重大隐患判定指导手册》专题培训
- 湖南财政经济学院专升本管理学真题
- 考研有机化学重点
- 全国身份证前六位、区号、邮编-编码大全
- 《GPU体系结构》课件2
评论
0/150
提交评论