Loving Coding & Visual Design
关于自适应图片
随着手机屏幕的经常出现,网页制作时不得不考虑图片在移动端下的效能、速度问题。
其最好的解决办法就是根据屏幕的不同大小和分辨率,提供不同尺寸和清晰度的图片。
那么,在花样、种类繁多的终端面前没有没有办法,让这个问题可以被高效的解决呢?一个屏幕一个屏幕的去写,显示是不切实际的。
这里有一些方法,可以达到我们的要求。
比如,我们有三种图片:
large.jpg (1024 x 768)
medium.jpg (640 x 480)
small.jpg (320 x 240)
smallest.jpg (240 x 180)
显然这个时候调用大图:rendered width × screen density > medium.jpg's width 640px
显然这个时候调用中图:rendered width × screen density > small.jpg's width 320px
显然这个时候调用小图:rendered width × screen density < smallest.jpg's width 240px
因为
rendered width = image’s width relative to viewport × viewport width
所以
image’s width relative to viewport比率 × viewport width × screen density分辨率(目前主要是1x和2x) > 640px
也就是说
viewport width > 640px ÷ ( image’s width relative to viewport × screen density )
有了viewport width, media query就可以这样写了:
viewport width > 640px ÷ ( 100vw(手机端单列下通常100vw) × 1x ) = 640px = 40em
viewport width > 640px ÷ ( 100vw(手机端单列下通常100vw) × 2x ) = 320px = 20em
36em 表示单列到三列的切换
所以
36em > viewport width > 40em 我们不需要large.jpg at 1x within the single-column layout.
36em > viewport width > 20em 我们需要large.jpg on 2x screens when the viewport is in that range.
对于三列结构
1x
viewport width > 640px ÷ ( 33.3vw × 1x ) = 1920px = 120em 当viewport width大于120em可以装载大图large.jpg
2x
viewport width > 640px ÷ ( 33.3vw × 2x ) = 960px = 60em > 36em 当viewport width大于60em可以装载大图large.jpg
新的
其最好的解决办法就是根据屏幕的不同大小和分辨率,提供不同尺寸和清晰度的图片。
那么,在花样、种类繁多的终端面前没有没有办法,让这个问题可以被高效的解决呢?一个屏幕一个屏幕的去写,显示是不切实际的。
这里有一些方法,可以达到我们的要求。
比如,我们有三种图片:
large.jpg (1024 x 768)
medium.jpg (640 x 480)
small.jpg (320 x 240)
smallest.jpg (240 x 180)
显然这个时候调用大图:rendered width × screen density > medium.jpg's width 640px
显然这个时候调用中图:rendered width × screen density > small.jpg's width 320px
显然这个时候调用小图:rendered width × screen density < smallest.jpg's width 240px
因为
rendered width = image’s width relative to viewport × viewport width
所以
image’s width relative to viewport比率 × viewport width × screen density分辨率(目前主要是1x和2x) > 640px
也就是说
viewport width > 640px ÷ ( image’s width relative to viewport × screen density )
有了viewport width, media query就可以这样写了:
viewport width > 640px ÷ ( 100vw(手机端单列下通常100vw) × 1x ) = 640px = 40em
viewport width > 640px ÷ ( 100vw(手机端单列下通常100vw) × 2x ) = 320px = 20em
36em 表示单列到三列的切换
所以
36em > viewport width > 40em 我们不需要large.jpg at 1x within the single-column layout.
36em > viewport width > 20em 我们需要large.jpg on 2x screens when the viewport is in that range.
对于三列结构
1x
viewport width > 640px ÷ ( 33.3vw × 1x ) = 1920px = 120em 当viewport width大于120em可以装载大图large.jpg
2x
viewport width > 640px ÷ ( 33.3vw × 2x ) = 960px = 60em > 36em 当viewport width大于60em可以装载大图large.jpg
新的
最 近 文 章
- System备份 - Mon, 30 Nov -0001 00:00:00 +0000
- Emacs快捷键 - Mon, 30 Nov -0001 00:00:00 +0000
- Rust-lang测试 - Mon, 30 Nov -0001 00:00:00 +0000
- More about PHP开发 - Mon, 30 Nov -0001 00:00:00 +0000
- Docker下安装PHP+Nginx环境 - Mon, 30 Nov -0001 00:00:00 +0000
- Nosql比较 - Mon, 30 Nov -0001 00:00:00 +0000
- CoreOS试用 - Mon, 30 Nov -0001 00:00:00 +0000
- CentOS 7 常见问题 - Mon, 30 Nov -0001 00:00:00 +0000
- Matrix知识 - Mon, 30 Nov -0001 00:00:00 +0000
- Swift精要 - Mon, 30 Nov -0001 00:00:00 +0000