博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
css绝对定位如何在不同分辨率下的电脑正常显示定位位置?
阅读量:6965 次
发布时间:2019-06-27

本文共 1506 字,大约阅读时间需要 5 分钟。

有时候我们在写页面中,会发现绝对定位的父级元素已经相对定位了,但是在不同分辨率的电脑下,绝对定位还是会错乱,似乎父级的相对定位并没有起了作用。

首先要明白如下几个原理:

1、笔记本电脑的分辨率一般为1366*768附近,

PC电脑的分辨率一般为 1920*1080;

以下为常见电脑分辨率:

 

当写网页时,如果在1920这样的大分辨率写好之后,再去小分辨率的笔记本看同样的这个网页,会发现,笔记本电脑显示的基本为宽屏大显示器下网页放大至1.5倍左右的展示效果。

2、为了页面在不同的分辨率下正常显示,要给页面一个安全宽度,一般在做1920px宽的页面时,中间要有一个1200px左右的安全宽度,并且居中,所有的内容要写在这个宽度的box里,如果有背景图或者轮播图必须通栏整个页面的时候,一定要设置成居中对齐,这样当分辨率降低之后,背景图或者Banner图左右、中间1200宽度的盒子依然居中对齐,不会出现向左向右偏离。

盒子里的div等小盒子可以用百分比来表示,来达到页面自适应。

 

绝对定位的使用:

    ​   绝对定位的时候,该元素的父元素一定要记得设为相对定位,这样在不同分辨率下定位才不会错乱,但是前提是这个父元素在一个安全的宽度里面,如果这个父元素本身是一个会因为分辨率降低而改变的元素,则定位一定会跟着乱。

在布局页面结构的时候,一些box框架是必不可少的,比如1200px安全宽度的div。

例如:做一个活动页面,其中这个页面背景为一个大图,在这个大图上要放一些小图来与大图实现定位,绝对不能以大图直接作为背景!

而是在放大图背景的div里继续放一个安全宽度div,再把它作为父元素做相对定位,给里面的子元素做绝对定位,这样就不会出现不同分辨率下绝对定位错乱的问题了。

 

通过总结网友经验,通过加zoom属性,可以让页面某个区块根据分辨率不同进行自动缩放到合适区域,但是有个bug,就是火狐浏览器打死都不支持这个属性,即使用transform:scale(x,y);属性也于事无补。还有一个小问题,在页面加载慢的时候重新刷新页面会先显示放大的效果,再变为缩小后的效果,会闪一下,这个还没找到解决办法,希望懂的朋友们多多交流。

zoom代码如下:

1 $(function(){        var w=window.screen.width;        var zoom=w/1920;2         $("#container").css({3         "zoom",zoom,4         "-moz-transform":"scale("+zoom+")",       "-moz-transform-origin":"top left"5         });6  });

 

zoom:当前屏幕分辨率宽度/1920;

zoom属性的浏览器支持性:

 

结果是:除了firefox以外,其他浏览器可以正常支持zoom属性,并且页面需要缩放的区块整体缩放到了适应当前分辨率的效果,而transform:scale 则是先把页面显示为已经把原本页面放大后再使用scale,则该缩小相当于当前页面下缩小的效果了,两边自然会留白。

PS:我觉得zoom属性蛮好用的,怎么现在都不怎么用了呢,居然firefox还不支持,而且很难找到解决办法。所以只能好好改变自己代码结构,提高代码的严谨性了,写出高效高兼容的代码,是每一个前端义不容辞的责任。

 

【注:该文章整合网友意见与经验总结所得】

转载于:https://www.cnblogs.com/beileixinqing/p/6222324.html

你可能感兴趣的文章
python学习三:列表、元组、字典、集合
查看>>
Netty 框架总结「ChannelHandler 及 EventLoop」
查看>>
Linux 下启动 Tomcat 抛出Can't connect to X11 window server 问题的解决方法
查看>>
Hexo博客NexT主题美化之显示当前浏览进度
查看>>
java版b2b2c社交电商spring cloud分布式微服务(七)springboot开启声明式事务
查看>>
品质生活正式开启,欧普照明&华为智选再创智能家居里程碑式突破
查看>>
【本人秃顶程序员】分库分表怎么才能无限扩容,看这篇文章就对了
查看>>
迁移潮来袭!数十个项目宣布即将停止支持 Python 2
查看>>
Javascrip—装饰器(7)
查看>>
Java 11 已发布,String 还能这样玩!
查看>>
(一)java版电子商务spring cloud分布式微服务b2b2c社交电商-服务的注册与发现(Eureka)...
查看>>
使用DataV制作实时销售数据可视化大屏
查看>>
Hello Juejin
查看>>
AndroidStudio导入或者新建项目一直build
查看>>
laravel项目
查看>>
Azure 文档 (SQL 数据仓库, Azure SQL 数据库文档)
查看>>
基于arm的多路温度采集控制系统(4)菜单界面
查看>>
大数据存储管理大趋势
查看>>
我的友情链接
查看>>
R478规划及实施—理想丰满、现实骨感
查看>>