zoukankan      html  css  js  c++  java
  • css文字超出元素省略,单行、多行省略

    githup源码: https://github.com/shengbid/vue-demo/tree/master/src/views/Form/ellipsis

    效果图:

    通用CSS
      .box {
         500px;
        border: 1px solid red;
        padding: 10px;
        line-height: 24px;
      }

    1.单行省略

      .singe-line {
        text-overflow: ellipsis;
        overflow: hidden;
        word-break: break-all;
        white-space: nowrap;
      }
    
      <p>单行省略</p>
      <div class="singe-line box" :title="content">
        {{ content }}
      </div>

    2.两行省略

    .double-line {
        word-break: break-all;
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
      }
    
      <p>两行省略</p>
      <div class="box">
        <div class="double-line" :title="content2">
          {{ content2 }}
        </div>
      </div>

    3.超过元素宽高省略

    需要设置元素宽度与高度,根据高度看下最多能放几行,再设置-webkit-line-clamp的值为最大行数
    .over-line {
        height: 65px;
        word-break: break-all;
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
      }
      <p>超过元素宽高省略</p>
      <div class="box">
        <div class="over-line" :title="content">
          {{ content }}
        </div>
      </div>

    4.字符截取省略

    通常应用于文章列表的内容简介,通过截取固定字符数量来展示,也需要指定宽高
    .assign-line {
      height: 45px;
      word-break: break-all;
    }
    
     methods: {
        handleontent() {
          this.content3 = `${this.content.substring(0, 80)} ...`
          this.content4 = `${this.content2.substring(0, 80)} ...`
        }
      }
    
      <p>字符截取省略</p>
      <div class="box">
        <div class="assign-line" :title="content">
          {{ content3 }}
        </div>
      </div>
      <div class="box">
        <div class="assign-line" :title="content">
          {{ content4 }}
        </div>
      </div>

    代码原文,在Vue中写的

    <template>
     <div class="ellipsis-contanier">
      <h2>超过指定行显示省略号</h2>
    
      <p>单行省略</p>
      <div class="singe-line box" :title="content">
        {{ content }}
      </div>
      <p>两行省略</p>
      <div class="box">
        <div class="double-line" :title="content2">
          {{ content2 }}
        </div>
      </div>
      <p>三行省略</p>
      <div class="box">
        <div class="three-line" :title="content">
          {{ content }}
        </div>
      </div>
      <p>超过元素宽高省略</p>
      <div class="box">
        <div class="over-line" :title="content">
          {{ content }}
        </div>
      </div>
      <p>字符截取省略</p>
      <div class="box">
        <div class="assign-line" :title="content">
          {{ content3 }}
        </div>
      </div>
      <div class="box">
        <div class="assign-line" :title="content">
          {{ content4 }}
        </div>
      </div>
     </div>
    </template>
    
    <script>
    
    export default {
      data () {
        return {
          content: 'ESLint is a tool for identifying and reporting on patterns found in ECMAScript/JavaScript code, with the goal of making code more consistent and avoiding bugs. In many ways, it is similar to JSLint and JSHint with a few exceptions:',
          content2: 'vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。你也可以使用 package.json 中的 vue 字段,但是注意这种写法需要你严格遵照 JSON 的格式来写。',
          content3: '',
          content4: ''
        }
      },
    
      created(){
        this.handleontent()
      },
    
      methods: {
        handleontent() {
          this.content3 = `${this.content.substring(0, 80)} ...`
          this.content4 = `${this.content2.substring(0, 80)} ...`
        }
      }
    }
    </script>
    
    <style lang="less" scoped>
    .ellipsis-contanier {
      .box {
         500px;
        border: 1px solid red;
        padding: 10px;
        line-height: 24px;
      }
    
      .singe-line {
        text-overflow: ellipsis;
        overflow: hidden;
        word-break: break-all;
        white-space: nowrap;
      }
      .double-line {
        word-break: break-all;
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
      }
      .three-line {
        word-break: break-all;
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
      }
      .over-line {
        height: 65px;
        word-break: break-all;
        overflow: hidden;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
      }
      .assign-line {
        height: 45px;
        word-break: break-all;
      }
    }
    </style>

     

  • 相关阅读:
    ingress高可用--使用DaemonSet方式部署ingress-nginx
    flask-Migrate模块
    flask 框架 前端和后端请求超时问题
    linux crontab执行python脚本问题
    python 装饰器
    Python 中实现装饰器时使用 @functools.wraps 的理由
    jquery ui dialog 中使用select2 导致select2的input失去焦点的解决方法
    Django之ModelForm组件
    Django之Model操作
    Java环境变量,真的还有必要配吗?
  • 原文地址:https://www.cnblogs.com/steamed-twisted-roll/p/15380974.html
Copyright © 2011-2022 走看看