使用CSS實(shí)現(xiàn)多行文本展開收起效果
發(fā)布時間:2023-11-21 10:20:21 作者:加油樂
我要評論

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