您现在的位置是:网站首页> 编程资料编程资料
PC端和移动端自适应问题的快速解决方法_心得技巧_网页制作_
2021-09-12
837人已围观
简介 如何解决PC端和移动端自适应问题?下面小编就为大家带来一篇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">我是子级1div>
- <div id="zj2">我是子级2div>
- 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">我是子级11111111111111111111111111div>
相关内容
- CSS实现单行、多行文本溢出显示省略号的实现方法_心得技巧_网页制作_
- 制作网页应该注意的5个问题_心得技巧_网页制作_
- 关于带有"显示更多"按钮的多行文本截断思考_心得技巧_网页制作_
- 跨浏览器问题的五种解决方案(小结)_心得技巧_网页制作_
- Chrome 73导致flex布局崩坏的分析与解决方法_心得技巧_网页制作_
- 教你如何优雅的实现垂直居中(推荐)_心得技巧_网页制作_
- 关于rem适配的3种常用封装_心得技巧_网页制作_
- 浅谈网页基本性能优化规则小结_心得技巧_网页制作_
- 浅谈雅虎前端优化的35条军规 _心得技巧_网页制作_
- 用 // 代替 http:// 有什么好处(自适应https)_心得技巧_网页制作_
点击排行
本栏推荐
