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='弧度'

  • 相关阅读:
    C# SuperWebSocket服务端学习(二)
    C# SuperSocket服务端入门(一)
    C# SuperWebSocket服务端、客户端学习(三)
    皮尔逊相关系数和余弦相似性的关系
    各种定向方式的对比-有图
    查看Linux的CPU信息,核数等
    临时表空间
    优化临时表使用,SQL语句性能提升100倍
    Java中线程池的学习
    android面试题之六
  • 原文地址:https://www.cnblogs.com/94-Lucky/p/13877464.html
Copyright © 2011-2022 走看看