媒体查询使用和设备像素比

首先我们在使用Media的时候需要设置下面这段代码,来兼容移动设备的展示效果

准备工作1:设置Meta标签

  
代码参数解释:
  • width = device-width   宽度等于当前设备的宽度
  • initial-scale = 1.0        初始缩放比例(默认1.0)
  • maximum-scale = 1.0 允许用户缩放到最大比例(默认1.0)
  • minimum-scale =  1.0 允许用户缩放到最小比例(默认1.0)

准备工作2:加载兼容js文件

因为IE8既不支持HTML5也不支持CSS3的Media,所以我们需要加载两个js文件,来保证我们实现兼容效果

准备工作3:设置IE的渲染方式默认为最高(可选)


还有一个更好的写法

这段代码后面加了一个chrome=1,这个谷歌内嵌浏览器框架GCF,如果用户电脑里面装了chrome的插件,那就可以让电脑里面的IE不管是哪个版本都可以使用Webit引擎以及V8引擎进行排版及运算,无比给力,不过用户要是没装这个插件,那这段代码就会让IE以最高的文档模式展现,建议加上。

进入CSS3 Media写法:

@media screen and (max-width: 960px){
    body{
        background: #ccc;
    }
}
这算是一个Media的标准写法,代码意思是:当页面小于960px的时候执行下面的代码

当浏览器尺寸大于960px的时候代码

@media screen and (min-width:960px){
    body{
        background:orange;
    }
}
我们还可以混合使用上面的用法:

@media screen and (min-width:960px) and (max-width:1200px){
    body{
        background:yellow;
    }
}
这段代码的意思就是页面宽度大于960px小于1200px的时候执行下面代码

设备像素比(关于手机端1像素大小不一的问题)

在实际开发中,有时候写的是1px,但是手机上看起来是2px,有很多种方法可以解决,通过transform: sacleY() 可以实现,也有通过背景图,viewport实现的

下面是通过transform来实现手机端的1像素,用的stylus语法

border-t-1px($color) //border-top
  position: relative
  &::before
    display: block
    position: absolute
    left:0
    top:0
    width:100%
    border-top:1px solid $color
    content:' '
border-b-1px($color) //border-bottom
  position: relative
  &::after
    display: block
    position: absolute
    left:0
    bottom:0
    width:100%
    border-top:1px solid $color
    content:' '

@media(-webkit-min-device-pixel-ratio: 1.5),(min-device-device-pixel-ratio: 1.5)
  .border-t-1px
    &::before
      -webkit-transform: scaleY(0.7)
      transform:scaleY(0.7)
@media(-webkit-min-device-pixel-ratio: 2),(min-device-device-pixel-ratio: 2)
  .border-t-1px
    &::before
      -webkit-transform: scaleY(0.5)
      transform:scaleY(0.5)
@media(-webkit-min-device-pixel-ratio: 2.5),(min-device-device-pixel-ratio: 2.5)
  .border-t-1px
    &::before
      -webkit-transform: scaleY(0.4)
      transform:scaleY(0.33333334)
@media(-webkit-min-device-pixel-ratio: 1.5),(min-device-device-pixel-ratio: 1.5)
  .border-b-1px
    &::after
      -webkit-transform: scaleY(0.7)
      transform:scaleY(0.7)
@media(-webkit-min-device-pixel-ratio: 2),(min-device-device-pixel-ratio: 2)
  .border-b-1px
    &::after
      -webkit-transform: scaleY(0.5)
      transform:scaleY(0.5)
@media(-webkit-min-device-pixel-ratio: 2.5),(min-device-device-pixel-ratio: 2.5)
  .border-b-1px
    &::after
      -webkit-transform: scaleY(0.4)
      transform:scaleY(0.4)




你可能感兴趣的:(css)