使用CSS實現(xiàn)多行文本展開收起效果
發(fā)布時間:2023-11-21 10:20:21 作者:加油樂
我要評論
這篇文章主要為大家詳細介紹了如何使用CSS實現(xiàn)多行文本展開收起效果,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下
一、前言
在文章閱讀、持續(xù)段落、多行文本等場景中經(jīng)常會遇到有展開收起的需求操作,今天使用CSS實現(xiàn)一下具體的實現(xiàn)流程。
二、實現(xiàn)思路
實現(xiàn)多行文本溢出省略效果
實現(xiàn) 展開 和 收起 切換按鈕的文字環(huán)繞效果
實現(xiàn) 展開 和 收起 的狀態(tài)切換
三、代碼解析
<template>
<!-- 此處為最外層盒子需要開啟彈性盒子,用于后續(xù)偽元素的高度計算 -->
<div class="box">
<!-- 此處為文本區(qū)域,類名text多行文本溢出顯示省略號,變量btnFlag控制要顯示的行數(shù) -->
<div
ref="textRef"
:class="['text-cont', btnFlag ? 'text-unfold' : 'text-collapse']"
>
<!-- 此處為按鈕區(qū)域,類名unfold-and-collapse控制浮動實現(xiàn)文字包裹按鈕,事件控制btnFlag及按鈕文字的變化 -->
<div class="unfold-and-collapse" @click="btnFlagChange">
{{ !btnFlag ? "展開" : "收起" }}
</div>
<!-- 首行縮進句尾不可控,使用 用于頂位 -->
  {{ text }}
</div>
</div>
</template>
<script setup>
import { ref, reactive, toRefs, watch, computed, defineProps } from "vue";
import { useStore } from "vuex";
import { useRoute, useRouter } from "vue-router";
const route = useRoute();
const router = useRouter();
const store = useStore();
const data = reactive({
// 文本內(nèi)容
text: "我們可以度過美好時光,也可以虛度光陰,但我希望你活得精彩。我希望你能看到令你驚嘆的事物,我希望你遇見具有不同觀點的人,我希望你的一生能讓自己過得自豪。如果你發(fā)現(xiàn)你的生活并非如此,我希望你能有勇氣重新來過。 你是獨特的,但你必須向統(tǒng)一讓步;你是自由的,但你必須向禁忌妥協(xié)。因為你渴望親近群體,渴望他們的接受。你害怕被群體驅(qū)逐。因而你是孤獨的,你是獨特但孤獨的心魂。生來如此。生,就是這樣,永遠都是這樣。",
// 展開收起狀態(tài)
btnFlag: false,
});
const textRef = ref();
// 展開收起事件
const btnFlagChange = () => {
data.btnFlag = !data.btnFlag;
};
const { text, btnFlag } = toRefs(data);
</script>
<style scoped lang="scss">
// 最外層開啟彈性盒子,用于偽元素的高度計算
.box {
display: flex;
}
// 文本區(qū)域設置寬度,顯示省略號
.text-cont {
width: 300px;
margin: 20px auto 0;
display: -webkit-box;
/* 必須結(jié)合的屬性 ,設置或檢索伸縮盒對象的子元素的排列方式 。*/
-webkit-box-orient: vertical;
/* 溢出部分隱藏 */
overflow: hidden;
// 首行縮進
// text-indent: 2em;
// 文字居左
text-align: left;
}
/*text-unfold與text-collapse控制要顯示的行數(shù)*/
.text-unfold {
/*要顯示的行數(shù)*/
-webkit-line-clamp: 9999;
}
.text-collapse {
/*要顯示的行數(shù)*/
-webkit-line-clamp: 3;
}
// 浮動實現(xiàn)文字包裹按鈕
.unfold-and-collapse {
color: #19aaff;
float: right;
clear: both;
margin-right: 10px;
}
// 偽元素用于實現(xiàn)文字包裹按鈕
.text-cont::before {
content: "";
float: right;
width: 0;
height: calc(100% - 20px);
// background: red;
}
</style>到此這篇關(guān)于使用CSS實現(xiàn)多行文本展開收起效果的文章就介紹到這了,更多相關(guān)CSS多行文本展開收起內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!
相關(guān)文章
本文解析了通過純 CSS 實現(xiàn)了一個如同冰島的極光一般炫酷的文本漸變效果,通過定位和多個具有不同顏色和邊框半徑值形狀的動畫,結(jié)合mix-blend-mode混合模式實現(xiàn)了這個特效,2023-11-20
本文通過實例代碼給大家介紹了CSS中使用文本陰影與元素陰影效果,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2020-01-18- 這篇文章主要介紹了CSS文本超出2行就隱藏并且顯示省略號的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2019-04-01
這篇文章主要介紹了CSS3實現(xiàn)文本垂直排列的方法,也就是運用了CSS的writing-mode屬性,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-10- 這篇文章主要介紹了用純css怎么截斷多行文本,本文先對css屬性進行介紹,而后又給出了完整實例代碼,讓大家能直觀的了解如何使用,下面一起來看看。2016-08-17
- 單行文本居中比較簡單,就是將line-height設置成和height一樣就可以了,對于多行文本,這種方式就行不通了,使用width,height必須使用px單位,再配合vertial-align:middle2013-12-09
本篇文章主要介紹了純CSS定制文本省略的方法大全,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-16- 本文主要介紹了文本超出部分隱藏的兩種方法:單行隱藏和多行隱藏。具有一定的參考價值,下面跟著小編一起來看下吧2017-01-06
CSS文本超出指定寬度后隱藏并顯示為省略號的實現(xiàn)方法
下面小編就為大家?guī)硪黄狢SS文本超出指定寬度后隱藏并顯示為省略號的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-24- 這篇文章主要介紹了CSS常用文本樣式的總結(jié),包括段落首字下沉、字體對齊、字母間間隔設置等人們?nèi)罕娤猜剺芬姷某S梦谋咎幚矸椒?需要的朋友可以參考下2016-04-01




