美文网首页
# 移动端项目中 @2x 图 和 @3x 图 的使用

# 移动端项目中 @2x 图 和 @3x 图 的使用

作者: 考拉程序媛 | 来源:发表于2019-07-27 15:55 被阅读0次
    移动端开发过程中,因为手机的dpr(设备像素比不同),我们需要根据dpr来修改图标的大小:
    
    1.通过mixin,动态修改图标的背景图片。通过@media (媒体查询),判断设备的dpr。
    
    
    `@mixin bg-image(<article class="baidu_pl" style="box-sizing: inherit; outline: 0px; margin: 0px; padding: 16px 0px 0px; display: block; position: relative;"`url``) {`
    
    `background-image``: ``url``(<article class="baidu_pl" style="box-sizing: inherit; outline: 0px; margin: 0px; padding: 16px 0px 0px; display: block; position: relative;"`url` `+ ``"@2x.png"``);`
    
    `@media (-webkit-min-device-pixel-ratio: ``3``),(min-device-pixel-ratio: ``3``) {`
    
    `background-image``: ``url``(<article class="baidu_pl" style="box-sizing: inherit; outline: 0px; margin: 0px; padding: 16px 0px 0px; display: block; position: relative;"`url` `+ ``"@3x.png"``);`
    
    `}`
    
    `}`
    
     |
    
    2.css样式中调用 bg-image 方法
    
    
    
    `div{`
    
    `width``:``30px``;`
    
    `height``:``20px``;`
    
    `background-``size``:``30px`  `20px``;`
    
    `background-repeat``:``no-repeat``;`
    
    `@include bg-image(``'special_1'``);     `
    
    `}`
    
     |
    
    移动端 border 的 1px 问题:
    
    1.为了方便通用,使用 mixin 定义一个函数。
    
    | 
    
    
    `@mixin border``-1px``($color) {`
    
    `position``: ``relative``;`
    
    `&:after{`
    
    `display``: ``block``;`
    
    `position``: ``absolute``;`
    
    `left``: ``0``;`
    
    `bottom``: ``0``;`
    
    `width``: ``100%``;`
    
    `border-top``: ``1px` `solid` `$color;`
    
    `content``: ``' '``;`
    
    `}`
    
    `}`
    
     |
    
    2.对 伪类 :after 进行缩放,以适应不同 dpr 的手机。通过 @media (媒体查询),来确定 设备的 dpr。 为了方便调用,定义一个全局的 class (此处为 border-1px)
    
    
    `// 判断在不同dpr下的显示情况`
    
    `@media (-webkit-min-device-pixel-ratio: ``1.5``),(min-device-pixel-ratio: ``1.5``) {`
    
    `.border``-1px``{`
    
    `&::after{`
    
    `-webkit-transform: scaleY(``0.7``);`
    
    `transform: scaleY(``0.7``);`
    
    `}`
    
    `}`
    
    `}`
    
    `@media (-webkit-min-device-pixel-ratio: ``2``),(min-device-pixel-ratio: ``2``) {`
    
    `.border``-1px``{`
    
    `&::after{`
    
    `-webkit-transform: scaleY(``0.5``);`
    
    `transform: scaleY(``0.5``);`
    
    `}`
    
    `}`
    
    `}`
    
     |
    
    3.html/css样式调用.
    
    html:
    
    
    `<``div` `class="tab border-1px">`
    
    `<``div` `class="tab-item">`
    
    `<``a` `v-link="{path:'/goods'}">商品</``a``>`
    
    `</``div``>`
    
    `<``div` `class="tab-item">`
    
    `<``a` `v-link="{path:'/ratings'}">评价</``a``>`
    
    `</``div``>`
    
    `<``div` `class="tab-item">`
    
    `<``a` `v-link="{path:'/seller'}">商家</``a``>`
    
    `</``div``>`
    
    `</``div``>`
    
     |
    
    css:
    
    `.tab{`
    
    `display``: flex;`
    
    `width``: ``100%``;`
    
    `height``: ``40px``;`
    
    `line-height``: ``40px``;`
    
    `@include border``-1px``(rgba(``7``,``17``,``27``,``0.1``));`
    
    `}`
    
     |
    
    </article>
    

    相关文章

      网友评论

          本文标题:# 移动端项目中 @2x 图 和 @3x 图 的使用

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