响应式网页的思路
总的来说,用rem这个单位。
rem是基于根元素也就是html元素的font-size进行计算的。
一般浏览器默认html元素的font-size是16px,也就就是,默认情况下,1rem=16px,2rem=32px。
貌似也是固定死的,跟响应式没啥关系。但是,想一想,只要我们所有涉及到的长宽全部用rem的话,有一个很大的好处,就是主要改变了html的font-size,那么,所有用rem标示的长宽都跟着变了。加入不这样做,而是全部用px的话,就得一个一个跟着改,这不现实。
所以,html的font-size是牵一发而动全身的。
所谓响应式,就是视窗大小改变后,字体呀图片呀什么的大小都跟着缩小或者放大,保持一个合适的比例。
如果视窗大小改变后,能及时调整html的font-size,那么,所有用rem表示的长度不也跟着变了吗?
那么,怎么在视窗变化时,及时改变html的font-size呢?
1是用css的媒介查询,2是用js帮助实现。
媒介查询相对比较简单,就是重写不同尺寸下的css,一般就是手机和桌面。
个人认为,js也比较好用,拷了一段参考js代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function intiSize(){ //获取当前浏览器窗口宽度(这里的实质就是body宽度) var win_w=document.body.offsetWidth; //定义变量 var fontSize; if (win_w>640){ fontSize=24; } else { //如果浏览器窗口宽度(这里的实质就是body宽度)值小于320,取320 win_w=Math.max(320,win_w); fontSize=win_w/320*12 } //设置根元素的大小 document.getElementsByTagName( 'html' )[0].style.fontSize=fontSize+ 'px' ; } //浏览器窗口宽度发生变化时条用这个函数,方便与改变窗口大小时候调试 onresize=intiSize; intiSize(); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
2015-09-17 几个Jquery对话框插件
2015-09-17 又一个绝对棒的对话框插件fancybox v1.3.4
2015-09-17 jQuery Colorbox插件
2015-09-17 jQuery对话框插件 ThickBox