美文网首页
收藏一下高清屏和普通屏下背景图设置方案

收藏一下高清屏和普通屏下背景图设置方案

作者: UolCano | 来源:发表于2016-02-21 00:18 被阅读238次

引用自@莫声谷

以iphone 6 为例,物理分辨率为 1334*750,4.7英寸,根据这些数据可以得出:

ppi = = 326

也就是说 dpr = 2, 1px = 2dp
那么,假设我们要在 300px *300px 的容器里,显示一张 300px*300px 的图片,此时1个位图信息对应4个dp,位图信息不可分割,所以不足的地方会用相似的颜色表示,这也就是普通图片在 Retian 屏幕下模糊的原因。
经过上面的分析,很显然,我们需要让 4个位图信息对应4个dp,也就是我们需要一个二倍图,600*600的图
解决一:设置media query 跟具dpr的不同,设置不同尺寸的 图片
可以用less或者sass写一个 mixin,这里我用的sass

//_mixin.scss
@mixin bg-img($name,$w,$h,$dpr,$suffix:png){
  @media screen and (-webkit-device-pixel-ratio: $dpr){
      background:url(http://img.163.com/#{$name}_#{$w*$dpr}_#{$h*$dpr}.#{$suffix});
  }
}
//main.scss
.box{
  @include bg-img("bg",300, 300, 2);
}
//=>输出
@media screen and (-webkit-device-pixel-ratio: 2) {
  .box {  background: url(http://img.163.com/bg_600_600.png); }
}

解决二: 设置viewport 的 initial-scal=0.5
这样相当于,1px = 1dp,此时图片就不需要二倍图了,按照设计图该给多大给多大,但是相对应的,div和字体的大小都会缩放,解决方案可以使用 rem布局,网上相关的内容很多,这里不再赘述。

吐槽###

简书竟然不支持MathJax
$$ppi=\frac{\sqrt{1334\times1334+750\times750}}{4.7}=326$$

相关文章

  • 收藏一下高清屏和普通屏下背景图设置方案

    引用自@莫声谷 以iphone 6 为例,物理分辨率为 1334*750,4.7英寸,根据这些数据可以得出:ppi...

  • 使用手册

    所有QQ号可用@这个QQ代替 以下为高管可用指令: 清屏 说明:发送设置好的清屏内容 例子:改清屏提示语[(换行:...

  • 给网页设置全屏背景图片

    首先设置页面宽高 添加设置背景图 搞定。

  • 设置背景图片

    设置背景图铺不满,或者有重复怎么解决? 其实,该方案对所有的块级容器都可以生效。块级容器的宽高是动态的,那么背景图...

  • 5. div背景图的设置

    注意:在使用了单独的设置背景图时,不要再使用background,因为会将样式覆盖 length 设置背景图像的高...

  • 离屏渲染

    离屏渲染检测 为什么1、3会触发离屏渲染?1 设置layer的圆角,设置了背景图片,存在两个layer ,并且进行...

  • html,css所遇问题(一)

    div中添加背景图片必须设置宽高 例如:下述代码没有设置icon的宽高值,那么网页中也不会显示出背景图片,因为di...

  • iOS 横屏/竖屏切换总结

    最近的项目有用到横屏和竖屏的知识点,简单的梳理了一下: 第二步:在appdelegate里面进行一些设置设置全局属...

  • iOS开发常用宏(2)

    1.判断横竖屏 2.截取系统时间戳 3.是否高清屏 4.当前系统设置国家的country iso code 5.当...

  • 项目开发中JavaScript和CSS的知识补漏(二)

    1. 运用vh作为大小屏的高度适应方案 设置页面某个元素最小高度为100vh,可以保证其无论在大屏或者小屏下高度充...

网友评论

      本文标题:收藏一下高清屏和普通屏下背景图设置方案

      本文链接:https://www.haomeiwen.com/subject/bwivkttx.html