css绝对定位如何在不同分辨率下的电脑正常显示定位位置?

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

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

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代码如下:

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

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

zoom属性的浏览器支持性:

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

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

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

时间: 2024-10-29 00:40:01

css绝对定位如何在不同分辨率下的电脑正常显示定位位置?的相关文章

笔记本1080分辨率下QQ面板字体修改

买了台新的笔记本,终于用上了高大上的1080分辨率,但是在我的笔记本的1080分辨率下QQ面板字体显示很小,肿么办?于是百度了下,看到这一篇文章,转载过来 QQ2011面板字体修改 QQ2011字体修改自己也是在学习,略知一二,修改QQ字体和颜色,主要涉及到腾讯QQ的加密文件gmd,,而gmd文件成百上千,多如牛毛,里面的语言调用代码颇为复杂,还有很多的地方未能发现和修改.1.修改的路径:(本人滴QQ安装路径)D:\Program Files\Tencent\Resource.1.71.3019

css 图片内容在不同分辨率下居中显示(演示的图片宽度是1920px,当图片宽度大于显示屏的宽度时)

1.img 图片内容在不同分辨率下居中显示(如果隐藏多余,在img外面套一个div  设定overflow: hidden.div的大小就是img显示区域的大小) <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title&

css绝对定位元素实现居中的几个方法

一:CSS绝对定位元素left设为50%实现水平居中 绝对定位的元素left设为50%时,是已左上角为原点的,所以只要再使用margin属性添加负值补偿回来即可.示例:[css]代码如下: #board{ width:60%; padding:3%; background:#09F; position:absolute; top:0px; left:50%; margin-left:-30%; } 这样就能使得一个蓝色区域水平居中   二.绝对定位元素的完全居中实现 如果要问如何CSS实现绝对定

css绝对定位、相对定位和文档流的那些事

前言 接触html.和css时间也不短了,但每次用div+css布局的时候心里还是有点儿虚,有时候干脆就直接用table算了,很多时候用div会出现些不可预料的问题,虽然花费一定时间能够解决,但总不是个事,所以今天特地探索了下css+div的绝对定位和相对定位和文档流的关系. 文档流的概念 确切的说应该是文档文档流模型的机制,html的布局机制就是用文档流模型的,即块元素(block)独占一行,内联元素(inline).不独占一行 如块级元素(block) <div>div1</div&

css绝对定位居中

技术参考:https://www.php.cn/css-tutorial-409962.html 1.兼容性不错的主流css绝对定位居中的用法: 1 .conter{ 2 width: 600px; height: 400px; 3 position: absolute; left: 50%; top: 50%; 4 margin-top: -200px; /* 高度的一半 */ 5 margin-left: -300px; /* 宽度的一半 */ 6 } 注意:这种方法有一个很明显的不足,就是

Android应用Icon大小在不同分辨率下定义

http://www.ard9.com/gsjj/204.html 对于Android平台来说,不同分辨率下Icon的大小设计有着不同的要求,对于目前主流的 HDPI即WVGA级别来说,通常hdpi的应用icon大小为72x72,而标准的mdpi即hvga为48x48,对于目前HTC和Motorola 推出的一些QVGA的使用了ldpi,图标为32x32 对于Android平台来说,不同分辨率下Icon的大小设计有着不同的要求,对于目前主流的HDPI即WVGA级别来说,通常hdpi的应用icon

CSS如何改变文字选中状态下的颜色

CSS如何改变文字选中状态下的颜色:建议:尽可能的手写代码,可以有效的提高学习效率和深度.在默认状态先一般选中的文本颜色是白字蓝底的,不过可以通过CSS进行设置.当然浏览器的支持度还是不够好,IE8和IE8以下的浏览器不支持,但是其他主流浏览器都支持此属性,不过随着浏览器的升级,这个也不会是问题.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta n

2.3 CSS禅意花园作品赏析(下)

一.谷香——食品主题设计 在禅意花园的作品中,还有一些是围绕某一个主题进行设计的.例如这里展示的057号作品就是以食品为主体的设计.它是由美国设计师Shaun Inman设计的.通过精致的食品照片,是不是能勾起访问者的食欲呢? 此外,这个设计中述设计了非常漂亮的弹出菜单.但是这个效果在Firefox中可以正常显示,而在IE 6和IE 7中都无法显示菜单的效果. 访同这个作晶的网址是http://www.csszengarden.com/?cssfile=057/057.css,设计师的个人网站是

Web前端开发实战6:CSS实现导航菜单结合二级下拉式菜单的简单变换

前面几篇博文都在讲导航菜单和二级下拉式菜单,其实有很多方法都可以实现的,具体的情况还要视情况而定. 在后面学习到jQuery框架之后,会有更丰富的动画效果,由于在学习Ajax和jQuery的初步阶段,对于很多的复杂的导 航菜单和二级下拉式菜单没法做,但是学习了CSS和JS还是能实现一些简单的变换的.这篇博文就来说说用CSS实现 导航菜单结合二级下拉式菜单的两个简单变换吧. 首先还是在前面博文的基础上加以实现,其实只用HTML和CSS还是可以做出不错的效果,但是相较于JS和 jQuery来说就有很