zoukankan      html  css  js  c++  java
  • react中基于styled-components组件的一像素边框问题

    react中基于styled-components组件的一像素边框问题

    import styled from 'styled-components'
    
    const border = (WrappedComp) => {       //参数是要设置边框的组件
      const EnhancedComp = styled(WrappedComp) `      
        // 为边框位置提供定位参考
        position: relative;
        border-radius: ${ ({radius}) => radius || 0 }rem;
        &::after {
          // 用以解决边框layer遮盖内容
          pointer-events: none;
          position: absolute;
          z-index: 999;
          top: 0;
          left: 0;
    
          content: "";
          border-color: ${ ({color}) => color || '#ccc' };
          border-style: ${ ({style}) => style || 'solid' };
          border- ${ ({width}) => width || '1px' };
    
          @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) {
             100%;
            height: 100%;
            transform: scale(1);
            border-radius: ${ ({radius}) => radius * 1 || 0}rem
          }
    
          @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) {
             200%;
            height: 200%;
            transform: scale(.5);
            border-radius: ${ ({radius}) => radius * 2 || 0}rem
          }
    
          @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) {
             300%;
            height: 300%;
            transform: scale(.3333333);
            border-radius: ${ ({radius}) => radius * 3 || 0}rem
          }
              
          transform-origin: 0 0;
        }
      `
      return EnhancedComp
    }
    
    export default border
    

    传参:width='宽度' style='边框样式线,默认solid' color='边框颜色' redius='弧度'

  • 相关阅读:
    Luogu3952 NOIP2017D1T2 时间复杂度
    Luogu4933 大师
    Luogu1966 火柴排队
    Luogu2881 排名的牛Ranking the Cows
    Luogu1439 最长公共子序列(LCS)
    Liferay7 BPM门户开发之20: 理解Asset Framework
    提高Liferay7的启动和运行速度
    liferay中jsonws的认证方法
    让Liferay的Service Builder连接其他数据库
    Liferay表结构介绍(四):Portlet相关表
  • 原文地址:https://www.cnblogs.com/94-Lucky/p/13877464.html
Copyright © 2011-2022 走看看