• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > css Sub-Pixel Bug?!

css Sub-Pixel Bug?!

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含css,Sub,Pixel等相关知识,佚名 希望在学习及工作中可以帮助到您

jQuery之父John Resig写过一篇《Sub-Pixel Problems in CSS》,一个50px宽的div中有4个float的div,每个宽25%,然而各个浏览器对50*25%的理解有些纠结(demo):

随后Steven Wittens的《CSS Sub-pixel Background Misalignments》,测试了固定宽度的元素水平居中时父元素背景图片居中的差异,更让我们看到眼花(demo):

让人郁闷的是:不止IE,各浏览器的不同版本也有些许差异… 还好,现实工作中很少会碰到这种情形,遇到了也只是一个相对简单的情形,比较典型的应用场景是:某些QQ会员活动类的页面,背景一幅很宽大宏伟的1280px大图居中,中间区域980px居中,1024分辨率下980px外的部分能显示多少就显示多少,不出现横向滚动条,大于1024的分辨率则大图全部显示。 下面来看个简单的demo(为了方便发现及总结问题,外围大图宽400px(对应上面的1280px),中间200px掏空(对应上面的980px),中间图宽200px):

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2.   
  3. <html xmlns="http://www.w3.org/1999/xhtml">  
  4. <head>  
  5. <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />  
  6. <title>Sub-Pixel</title>  
  7. <style type="text/css">  
  8. body, div, p{margin:0;padding:0;}   
  9. body{text-align:center;}   
  10. button{margin:1em;padding:0 1em;}   
  11. #pg, body{background-position:center 0;background-repeat:no-repeat;}   
  12. body{background-image:url('http://webteam.tencent.com/wp-content/uploads/2010/3/1749_003.jpg');}   
  13. #pg{margin:0 auto;width:200px;height:200px;background-image:url('http://webteam.tencent.com/wp-content/uploads/2010/3/1749_004.jpg');}   
  14. </style>  
  15. </head>  
  16.   
  17. <body>  
  18.   
  19.     <div id="pg"></div>  
  20.   
  21. </body>  
  22.   
  23. </html>  

拖动浏览器边缘改变浏览器窗口的宽度,可以看到在某些时候body和#pg在右侧的交界处会有1px的空隙,这个问题存在于IE6/Chrome3/Safari4中。 以搜集IE BUG闻名的PIE(Position Is Everything)也有一篇《IE Background Positioning Bug》,不过其中的外层元素是固定宽度,对我们用处也不大。同事77总结了两个方法:

  1. 切图时body和#pg的图片不要分开,合在一张大图上,然后对body写背景图片居中,图片太大的话则切为多个相同宽度的小图,通过嵌套多个div来写,比如


  1. body大图中间挖空区域多留几个像素,比如现在是200px,切图时为198px,两侧各多留1px

方法1在多数情况下很完美,不过也有某些个案不能使用这种方法;方法2对于body和#pg交界处比较淡化的图片来说非常适合,比如ISD Webteam博客的关于页面,不过有些时候交界处这1px会衔接不自然得非常明显,是我们这些追求完美的页面重构工程师所不能容忍的。 下面我们改变点结构来具体分析一下(注:此例为临时用例,下文中提到的body/#pg与之无关):

bod

您可能想查找下面的文章:

  • css小技巧
  • 各大网站CSS初始化代码
  • css权重问题
  • CSS实现鼠标上移图标旋转效果
  • 使用CSS3制作一个简单的进度条(demo)
  • 用纯CSS实现饼状Loading等待图效果
  • 利用CSS3伪元素实现逐渐发光的方格边框
  • CSS3实现内凹圆角的实例代码
  • 利用HTML5+CSS3实现3D转换效果实例详解
  • css3+伪元素实现鼠标移入时下划线向两边展开的效果

相关文章

  • 2017-08-06CSS实现的图片宽高自适应固定边框
  • 2017-08-06FF(火狐浏览器)下解决按钮的水平居中
  • 2017-08-06ie6 大环境下暂时不要考虑w3c标准
  • 2017-08-06CSS3媒体查询(Media Queries)介绍
  • 2017-08-06CSS实现标题文字过长部分显示省略号的方法
  • 2017-08-14CSS:line-height:150%与line-height:1.5的真正区别是什么?
  • 2017-08-06CSS的最大高度、最小高度及宽度在IE6下没有效果问题
  • 2017-08-06div模拟滚动条当div宽度小于18时滚动条不滚动
  • 2017-08-06老生常谈CSS中的长度单位
  • 2017-08-06CSS简单实现重叠线效果

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • html内容超出了div的宽度如何换行让内容自动换行
    • CSS background 控制显示图片的一部分
    • 使用text-overflow:ellipsis实现溢出文本省略号显示无需js
    • CSS 新的图像替换方法
    • IE中伪类hover的使用及BUG
    • 两个table实现固定表头拖动时仅限表体移动
    • 自定义input[type=”file”]的样式
    • 使用position:fixed属性让DIV居中
    • 前端隐藏出边界内容的实现方法
    • input 按钮背景在IE6 IE7中不显示的解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有