CSS中ellipsis與padding如何結(jié)合

CSS中ellipsis與padding 如何結(jié)合?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)主營(yíng)斗門(mén)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,重慶App定制開(kāi)發(fā),斗門(mén)h5重慶小程序開(kāi)發(fā)公司搭建,斗門(mén)網(wǎng)站營(yíng)銷推廣歡迎斗門(mén)等地區(qū)企業(yè)咨詢

CSS 實(shí)現(xiàn)的文本截?cái)?/strong>

考察如下代碼實(shí)現(xiàn)文本超出自動(dòng)截?cái)嗟臉邮酱a:

.truncate-text-4 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

使用如下的 HTML 片段進(jìn)行測(cè)試:

<style>
  .my-div {
    width: 300px;
    margin: 10px auto;
    background: #ddd;
  }
</style>
<div class="my-div truncate-text-4">
  How Not To Shuffle - The Knuth Fisher-Yates Algorithm. Written by Mike James.
  Thursday, 16 February 2017. Sometimes simple algorithms are just wrong. In
  this case shuffling an .... In other words as the array is scanned the element
  under
</div>

運(yùn)行效果:

CSS中ellipsis與padding 如何結(jié)合

通過(guò) CSS ellipsis 實(shí)現(xiàn)的文本截?cái)嘈Ч?/p>

padding 的問(wèn)題

一切都很完美,直到給文本容器加上 padding 樣式后。

  .my-div {
    width: 300px;
    margin: 10px auto;
    background: #ddd;
+    padding: 30px;
  }
現(xiàn)在的效果

現(xiàn)在的效果是這樣的:

CSS中ellipsis與padding 如何結(jié)合

padding 破壞了文本截?cái)?/p>

因?yàn)?padding 占了元素內(nèi)部空間,但這部分區(qū)域卻是在元素內(nèi)部的,所以不會(huì)受 overflow: hidden 影響。

解決辦法

line-height

當(dāng)設(shè)置的 line-height 適當(dāng)時(shí),或足夠大時(shí),可以將 padding 的部分抵消掉以實(shí)現(xiàn)將多余部分?jǐn)D出可見(jiàn)范圍的目標(biāo)。

.my-div {
  width: 300px;
  margin: 10px auto;
  background: #ddd;
  padding: 30px;
+  line-height: 75px;
}

CSS中ellipsis與padding 如何結(jié)合

通過(guò) line-height 修復(fù)

這種方式并不適用所有場(chǎng)景,因?yàn)椴皇撬械胤蕉夹枰敲创蟮男懈摺?/p>

替換掉 padding

padding 無(wú)非是要給元素的內(nèi)容與邊框間添加間隔,或是與別的元素間添加間隔。這里可以考慮其實(shí)方式來(lái)替換。

比如 margin。但如果元素有背景,比如本例中,那 margin 的試就不適用了,因?yàn)樵?margin 部分是不帶背景的。

還可用 border 代替。

.my-div {
  width: 300px;
  margin: 10px auto;
  background: #ddd;
-  padding: 30px;
+  border: 30px solid transparent;
}

CSS中ellipsis與padding 如何結(jié)合

使用 border 替換 padding

毫不意外,它仍然有它的局限性。就是在元素本身有自己的 border 樣式要求的時(shí)候,就會(huì)沖突了。

將邊距與內(nèi)容容器分開(kāi)

比較普適的方法可能就是它了,即將內(nèi)容與邊距分開(kāi)到兩個(gè)元素上,一個(gè)元素專門(mén)用來(lái)實(shí)現(xiàn)邊距,一個(gè)元素用來(lái)實(shí)現(xiàn)文本的截?cái)?。這個(gè)好理解,直接看代碼:

<div className="my-div">
  <div className="truncate-text-4">
    How Not To Shuffle - The Knuth Fisher-Yates Algorithm. Written by Mike
    James. Thursday, 16 February 2017. Sometimes simple algorithms are just
    wrong. In this case shuffling an .... In other words as the array is scanned
    the element under
  </div>
</div>

而我們的樣式可以保持不動(dòng)。

CSS中ellipsis與padding 如何結(jié)合

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。

網(wǎng)站標(biāo)題:CSS中ellipsis與padding如何結(jié)合
當(dāng)前路徑:http://muchs.cn/article14/picdde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、外貿(mào)建站、搜索引擎優(yōu)化、標(biāo)簽優(yōu)化、軟件開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)