css 文字多行顯示超出顯示省略號

css 文字多行顯示超出顯示省略號

首先,要知道 css 的三條屬性。

overflow:hidden; //超出的文本隱藏

text-overflow:ellipsis;//溢出用省略號顯示

white-space:nowrap;//溢出不換行

css3 解決了這個(gè)問題,解決方法如下:

display:-webkit-box; //將對象作為彈性伸縮盒子模型顯示。

-webkit-box-orient:vertical; //從上到下垂直排列子元素(設(shè)置伸縮盒子的子元素排列方式)

-webkit-line-clamp:2;//這個(gè)屬性不是 css 的規(guī)范屬性,需要組合上面兩個(gè)屬性,表示顯示的行數(shù)。

最后實(shí)現(xiàn)的代碼:

(僅限于手動書寫 css 的情況)

overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical; // 參考 https://github.com/postcss/autoprefixer/issues/776

(適用于 webpack 配合預(yù)編譯工具的情況,會自動將-webkit-box-orient 清除)

打包時(shí)必須使用這種方法打包,否則打包后 -webkit-box-orient: vertical 便會消失.

overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
/* autoprefixer: off */
-webkit-box-orient: vertical; // 參考 https://github.com/postcss/autoprefixer/issues/776
/* autoprefixer: on */

通常情況下,上面這種注釋的方式就有效了,如果因?yàn)榉N種原因無效,嘗試另外一種通過 optimize-css-assets-webpack-plugin 插件也能解決這個(gè)問題。前提是項(xiàng)目本身就適用了這個(gè)插件,不然為了“換行省略號”這個(gè)效果去多安裝一個(gè) webpack 插件就不劃算了。

注釋掉webpack.prod.conf.js中下面的代碼

new OptimizeCSSPlugin({
  cssProcessorOptions: config.build.productionSourceMap
    ? { safe: true, map: { inline: false } }
    : { safe: true }
}),

demo

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <style>
      .container {
        width: 100px;
        /* height: 20px; */
      }

      .container p {
        font-size: 20px;
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
      }
    </style>
  </head>

  <body>
    <div class="container">
      <td>
        <p>
          你在組件中使用你在組件中使用你在組件中使用 this.$store.dispatch('xxx')
          分發(fā) action,或者使用 mapActions 輔助函數(shù)將組件的 methods 映射為
          store.dispatch 調(diào)用(需要先在根節(jié)點(diǎn)注入 store):
        </p>
      </td>
    </div>
  </body>
</html>

需要注意的一點(diǎn)是,如果換行處是一個(gè)完整的英文單詞,換行不會將單詞拆開,而是會直接將整個(gè)單詞省略并顯示省略號。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容