Használja ki a praktikus CSS-technikát, amellyel elrejtheti és igény szerint felfedheti a tartalmat.

Egy elemben lévő szöveg mennyiségének korlátozása általános webtervezési követelmény. Gyakran látni olyan cikket, amely három- vagy négysoros kivonattal rendelkezik egy gombbal, amely lehetővé teszi a teljes szöveg kibontását.

Ezt a tervet a CSS és a JavaScript kombinációjával hozhatja létre. De ezt egyedül CSS használatával is megteheti. Fedezze fel a dobozban lévő szöveg korlátozásának két módját, és azt, hogy hogyan hozhat létre dinamikus kibontási gombot pusztán CSS használatával.

A Webkit technika

Hozzon létre egy üres mappát, és szerkesszen benne két fájlt: index.html és stílus.css. Benne index.html fájl, hozzon létre egy HTML-vázat:

html>
<htmllang="en">

<fej>
<cím>Dokumentumcím>
<linkrel="stíluslap"href="stílus.css">
fej>

<test>
test>

html>

Egy link a szakaszhoz, a stílus.css fájlt, biztosítja, hogy a fájlhoz hozzáadott minden CSS érvényes legyen erre az oldalra. Ezután illessze be a következő HTML-jelölést a címkék be index.html:

instagram viewer
<szakaszosztály="kártya-csoport">
<cikkosztály="kártya">
<h2>1. cikkh2>

<posztály="kivágott szöveg">
300 szavas szöveg kerül ide
p>

<bemenettípus="jelölőnégyzet"osztály="expand-btn">
cikk>

<cikkosztály="kártya">
<h2>2. cikkh2>

<posztály="kivágott szöveg">
200 szavas szöveg kerül ide
p>

<bemenettípus="jelölőnégyzet"osztály="expand-btn">
cikk>

<cikkosztály="kártya">
<h2>1. cikkh2>

<posztály="kivágott szöveg">
100 szavas szöveg kerül ide
p>

<bemenettípus="jelölőnégyzet"osztály="expand-btn">
cikk>
szakasz>

Ennek a HTML-nek a szerkezete egyszerű, de továbbra is használatos szemantikai jelölés a hozzáférhetőség érdekében. Egy szakaszelem három cikkelemet tartalmaz. Minden cikk tartalmaz egy címsort, egy bekezdést és egy beviteli elemet. A CSS segítségével minden cikkszakaszt kártyává alakíthat.

Addig is az oldala így fog kinézni:

A fenti képen látható, hogy az egyes bekezdésekben változó hosszúságú szöveg található. 300 szó az elsőben, 200 szó a másodikban és 100 szó a harmadikban.

A következő lépés az oldal stílusának kialakítása a CSS hozzáadásával stílus.css fájlt. Kezdje a dokumentum szegélyének alaphelyzetbe állításával, és a törzsnek fehér háttérszínt adjon:

*, *::előtt, *::után {
doboz-méretezés: border-box;
}

test {
háttér: #f3f3f3;
túlcsordulás: rejtett;
}

Ezután alakítsa át a kártyacsoport osztályú elemet három oszlopos rácstárolóvá. Minden cikkszakasz egy oszlopot foglal el:

.kártya-csoport {
kijelző: rács;
rács-sablon-oszlopok: ismétlés(3, 1fr);
rés: .5rem;
align-ites: flex-start;
}

Stílusozzon minden cikkrészletet kártyaként fehér háttérszínnel és fekete, enyhén kerek szegéllyel:

.kártya {
háttér: fehér;
párnázás: 1rem;
határ: 1pxszilárdfekete;
határ-sugár: .25em;
}

Végül adjon hozzá néhány margót:

h2, p {
árrés: 0;
}

h2 {
margó-alsó: 1rem;
}

Mentse el a fájlt, és ellenőrizze a böngészőt. Az oldalnak úgy kell kinéznie, mint az alábbi képen:

A következő lépés az egyes szövegek sorainak 3-ra csökkentése. Íme a CSS ehhez:

.cuttoff-text {
--max-sorok: 3;
túlcsordulás: rejtett;

kijelző: -webkit-box;
-webkit-box-orient: függőleges;
-webkit-line-clamp: var(--max-sorok);
}

Kezdje a beállítással egy CSS-változó, max-lines, 3-ig és a túlcsorduló tartalom elrejtése. Ezután állítsa be a kijelzőt -webkit-box és rögzítse a vezetéket a 3-hoz.

Az alábbi képen látható az eredmény. Minden kártya egy ellipszist jelenít meg a harmadik szövegsorban:

Ezt a technikát meglehetősen trükkös lehet lehúzni. Ha bármilyen tulajdonságot kihagyna, akkor minden összeomlik. További hátránya, hogy nem használhat más megjelenítési tulajdonságot, mint --webkit-box. Például érdemes lehet Grid vagy Flexbox használata. Ezen okok miatt a következő technika jobb.

Rugalmasabb megközelítés a szövegben lévő sorok számának korlátozására

Ez a technika lehetővé teszi ugyanazt a dolgot, mint a webkit megközelítés, ugyanazokkal az eredménnyel. De a nagy különbség az, hogy rengeteg rugalmasság van, mivel te magad állítod be a magasságot. Ezenkívül bármilyen megjelenítési tulajdonságot vagy bármilyen stílusbeállítást használhat.

A kezdéshez cserélje ki a(z) CSS blokkot .cutoff-text ezzel:

.cuttoff-text {
--max-sorok: 5;
--vonal-magasság: 1.4;
magasság: kalc(var(--max-sorok) * 1em * var(--vonal-magasság));
vonalmagasság: var(--vonal-magasság);
pozíció: relatív;
}

A vonalmagasság beállítása azért fontos, mert a magasság meghatározásakor ezt figyelembe kell venni. A magasság meghatározásához meg kell szorozni a sor magasságát a betűmérettel és a sorok számával.

Hozzátesszük pozíció: relatív tulajdonság, mert szükségünk van rá a fade hatás hozzáadásához. Adja hozzá a következő CSS-t a hatás befejezéséhez:

.cuttoff-text::előtt {
tartalom: "";
pozíció: abszolút;
magasság: kalc(2em * var(--vonal-magasság));
szélesség: 100%;
alsó: 0;
pointer-események: egyik sem;
háttér: lineáris-gradiens(nak nekalsó, átlátszó, fehér);
}

A fenti CSS elhomályosítja az utolsó szövegsort az egyes kártyákon. Halványító hatást érhet el a háttér tulajdonság és gradiens. Be kell állítani pointer-események nak nek egyik sem hogy az elem ne legyen kiválasztható.

Íme az eredmény:

Ez a technika ugyanazt az eredményt érte el, mint az előző (plusz a végén elmosódottság). De nagyobb rugalmasságot kap más típusú elrendezések és tervek használatához.

Dinamikus kibontás és összecsukás gomb hozzáadása

A kibontás/összecsukás gomb hozzáadása valósághűbbé és interaktívabbá teszi a kártyákat. Ezzel a mintával bővítheti a tartalmat a gombra kattintva Kiterjed gombot, amely után a szöveg a következőre változik Összeomlás. Így a gomb szövege a „Kibontás” és az „Összecsukás” között vált, amikor rákattint. Ezenkívül a tartalom többi része minden megfelelő állapotban megjelenik és elrejti.

Már definiáltál egy bemenet elemet a HTML-ben. Ez az elem gombként fog szolgálni. Ha ezt a bevitelt gombpá szeretné stílusozni, adja meg a következő CSS-t a stíluslapjában:

.expand-btn {
kinézet: egyik sem;
határ: 1pxszilárdfekete;
párnázás: .5em;
határ-sugár: .25em;
kurzor: mutató;
margin-top: 1rem;
}

Ha rámutat a gombra, meg szeretné változtatni a háttérszínt:

.expand-btn:lebeg {
háttérszín: #ccc;
}

Most a CSS a szöveg váltásához, amikor a bevitelt ellenőrizzük:

.expand-btn::előtt {
tartalom: "Kiterjed"
}

.expand-btn:ellenőrizve::előtt {
tartalom: "Összeomlás"
}

Most, amikor rákattint a gombra/bevitelre, a szöveg innen indul Kiterjed nak nek Összeomlás. De maga a tartalom még nem bővül. Ha ezt meg szeretné tenni, amikor a gombra kattint, adja hozzá a következő CSS-t:

.cuttoff-text:has(+.expand-btn:checked) {
magasság: auto;
}

Ez a példa a has() CSS-választó az elem célzásához. Ezzel a kóddal azt mondod, hogy ha a levágott szövegterületen van egy kijelölő kibontás gomb, akkor a kártya magassága auto (ami kibővíti).

Íme az eredmény:

Egyéb CSS-tippek és tanulnivalók

Ez a cikk két különböző módszert mutat be a dobozban lévő sorok számának korlátozására CSS használatával. Még egy gombot is hozzáadtunk a tartalom kibontásához/összecsukásához anélkül, hogy egy sor JavaScriptet is írnánk.

De rengeteg más tipp és trükk található a CSS-ben. Ezek a tippek kreatív módot kínálnak a kívánt elrendezések elérésére a teljesítmény, az olvashatóság vagy a hozzáférhetőség romlása nélkül.