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

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