sass和stylus1px解决方案

匿名 (未验证) 提交于 2019-12-02 20:21:53

1.sass

 1 @charset "utf-8";  2 /**  3  * @module 背景与边框  4  * @description 为元素添加边框(包括1px边框)  5  * @method border  6  * @version 2.0.0  7  * @param {String} $border-width 指定边框厚度(单位为px),默认值:1px,取值与`border-width`属性一致,不同方向代表边框位置 <2.0.0>  8  * @param {String} $border-color 指定边框颜色 <2.0.0>  9  * @param {String} $border-style 指定边框样式 <2.0.0> 10  * @param {String} $radius 指定边框圆角半径,默认值:null <2.0.0> 11  */ 12 @mixin border($border-width: 1px, $border-color: map-get($base, border-color), $border-style: solid, $radius: null) { 13     // 为边框位置提供定位参考 14     position: relative; 15     @if $border-width == null { 16         $border-width: 0; 17     } 18     border-radius: $radius; 19     &::after { 20         // 用以解决边框layer遮盖内容 21         pointer-events: none; 22         position: absolute; 23         z-index: 999; 24         top: 0; 25         left: 0; 26         // fix当元素宽度出现小数时,边框可能显示不全的问题 27         // overflow: hidden; 28         content: "\0020"; 29         border-color: $border-color; 30         border-style: $border-style; 31         border-width: $border-width; 32         // 适配dpr进行缩放 33         @include responsive(retina1x) { 34             width: 100%; 35             height: 100%; 36             @if $radius != null { 37                 border-radius: $radius; 38             } 39         } 40         @include responsive(retina2x) { 41             width: 200%; 42             height: 200%; 43             @include transform(scale(.5)); 44             @if $radius != null { 45                 border-radius: $radius * 2; 46             } 47         } 48         @include responsive(retina3x) { 49             width: 300%; 50             height: 300%; 51             @include transform(scale(.33333)); 52             @if $radius != null { 53                 border-radius: $radius * 3; 54             } 55         } 56         @include transform-origin(0 0); 57     } 58 }

2.stylus

border($border-width = 1px, $border-color = #ccc, $border-style = solid, $radius = 0)   // 为边框位置提供定位参考   position: relative;    if $border-width == null     $border-width: 0;    border-radius: $radius;    &::after     // 用以解决边框layer遮盖内容     pointer-events: none;     position: absolute;     z-index: 999;     top: 0;     left: 0;     // fix当元素宽度出现小数时,边框可能显示不全的问题     // overflow: hidden;     content: "\0020";     border-color: $border-color;     border-style: $border-style;     border-width: $border-width;          // 适配dpr进行缩放     @media (max--moz-device-pixel-ratio: 1.49), (-webkit-max-device-pixel-ratio: 1.49), (max-device-pixel-ratio: 1.49), (max-resolution: 143dpi), (max-resolution: 1.49dppx)       width: 100%;       height: 100%;       if $radius != null {         border-radius: $radius;       }          @media (min--moz-device-pixel-ratio: 1.5) and (max--moz-device-pixel-ratio: 2.49), (-webkit-min-device-pixel-ratio: 1.5) and (-webkit-max-device-pixel-ratio: 2.49),(min-device-pixel-ratio: 1.5) and (max-device-pixel-ratio: 2.49),(min-resolution: 144dpi) and (max-resolution: 239dpi),(min-resolution: 1.5dppx) and (max-resolution: 2.49dppx)       width: 200%;       height: 200%;       transform: scale(.5)       if $radius != null {         border-radius: $radius * 2;       }          @media (min--moz-device-pixel-ratio: 2.5), (-webkit-min-device-pixel-ratio: 2.5),(min-device-pixel-ratio: 2.5), (min-resolution: 240dpi),(min-resolution: 2.5dppx)       width: 300%;       height: 300%;       transform: scale(.33333)       if $radius != null {         border-radius: $radius * 3;       }      transform-origin: 0 0;

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!