• 用sass,stylus,styled-component对ellipsis省略号的封装


    syle-component

    使用方法

    const 组件名 = ellipsis({

    component:styled.div``,

    '50px'(可选),宽度

    lineClamp:1(行数)

    })

    import styled from 'styled-components'
    
    export default ({
      component = null,
      width = 'auto',
      lineClamp = 1
    }) => {
      let strTpl = `
        overflow: hidden;
        text-overflow: ellipsis;
         ${width};
      `
      if (lineClamp > 1) {
        strTpl += `
          display: -webkit-box !important;
          -webkit-line-clamp: ${lineClamp};
          -webkit-box-orient: vertical;
        `
      } else {
        strTpl += `
          white-space: nowrap;
        `
      }
    
      return styled(component) `
        ${ strTpl }
      `
    }
    

    stylus

    使用方法

    ellipsis null,1  

    参数1:宽度(可选)

    参数2:行数

    wrap($is-wrap = true)
      if $is-wrap == true
        word-wrap: break-word;
        word-break: break-all;
      else
        white-space: nowrap;
        
    
    ellipsis($width = null, $line-clamp = 1) 
      overflow: hidden;
      text-overflow: ellipsis;
       $width;
      if abs($line-clamp) > 1
        // 要使得多行截取生效,display的值只能为-webkit-box
        display: -webkit-box !important;
        -webkit-line-clamp: $line-clamp;
        flex-direction column
        wrap()
      else
        wrap(false)
    

    sass

    使用方法

    @include ellipsis(null,1)

    参数1:宽度(可选)

    参数2:行数

    @mixin wrap($is-wrap: true) {
        @if $is-wrap == true {
            word-wrap: break-word;
            word-break: break-all;
        } @else {
            white-space: nowrap;
        }
    }
    @mixin ellipsis($ null, $line-clamp: 1) {
        overflow: hidden;
        text-overflow: ellipsis;
         $width;
        @if abs($line-clamp) > 1 {
            // 要使得多行截取生效,display的值只能为-webkit-box
            display: -webkit-box !important;
            -webkit-line-clamp: $line-clamp;
            @include flex-direction(column);
            @include wrap;
        } @else {
            @include wrap(false);
        }
    }

    注意

    在使用该方法时,有时候会因为安装的包的原因会将一些属性进行隐藏,所以有时候会有bug

    具体解决方法请百度(奸笑:)

  • 相关阅读:
    tornado用户指引(三)------tornado协程使用和原理(二)
    利用tornado使请求实现异步非阻塞
    在tornado中使用异步mysql操作
    Tornado 线程池应用
    Tornado异步与延迟任务
    tornado用户指引(二)------------tornado协程实现原理和使用(一)
    Tornado用户指引(一)-----------异步和非阻塞I/O
    Tornado异步之-协程与回调
    Python核心框架tornado的异步协程的2种方式
    c++ Map使用
  • 原文地址:https://www.cnblogs.com/guan-shan/p/10089401.html
Copyright © 2020-2023  润新知