20: Styling Inline SVG - Hatáskörök és korlátozások - CSS-trükkök

Anonim

Az Inline SVG „stílusú” lehet abban az értelemben, hogy már vannak kitöltései és vonásai, és mi az a másodperc, amikor betette az oldalra. Ez fantasztikus és teljesen jó módszer az inline SVG használatára. De a CSS-en keresztül is formázhat inline SVG-t, ami nagyon fantasztikus, mert sokak számára elképzelem, hogy a CSS-ben érezzük magunkat erőteljesnek és kényelmesnek.

Nagyjából úgy működik, ahogy elvárhatja. Íme egy egyszerű példa:

 
.my-rect ( fill: blue; /* remember it's fill not background, teamsters */ )

A CSS valamivel „nagyobb erővel” rendelkezik, mondhatni, mint a stílusattribútumok magukon az SVG elemeken. Ha ez tetszett fill="red"volna neki, a CSS akkor is „nyer”. Gondolhat az ellenkezőjére, mert úgy tűnik, hogy a stílusattribútumok erőteljesek lennének, mint az inline stílusok, de nem azok. Soros stílusok vannak még mindig erős mégis.

Hasonlóképpen, a CSS-szabályok sem lépnek le, ha valami konkrétabb történik. Például:

 
.parent ( fill: red; )

A CSS ebben az esetben veszít, mert a kéket pontosabban alkalmazzák a jobb oldalon.

Ha azt tervezem, hogy az SVG-t CSS-en keresztül stílusosítom, akkor általában a legkönnyebbnek tartom, ha a stílusattribútumokat teljesen kihagyom az SVG elemekről.

Fontos tudnivaló figyelmeztetés!

Időt töltöttünk beszélgetéssel . Mondja, hogy ez a helyzet:

 

Végül azt a „gyereket” helyezik abba a „szülőbe”, igaz? Jobb. Tehát ennek működnie kell?

.parent .child ( fill: red; )

De nem.

Így működik, ezt klónozza és „Shadow DOM” -ba helyezi abban a második SVG-ben. Ilyen választóval nem lehet behatolni az árnyék DOM-ba. Csak nem működik. Talán egyszer lesz megoldás, de most nincs.

A következőket teheti:

.parent ( fill: red; )

És ez a kitöltés át fog hatolni a gyermekelemekre, és hatással lesz rá, ha nincs semmi konkrétabb. Vagy

.child ( fill: red; )

és érinti a gyermek minden esetét. De csak nem mindkettő.

Ha ugyanarra a dologra más stílusú változatokra van szüksége ...

Csak másolja a vagy bármit, amire szüksége van. Az információk túlnyomó többsége azonos lesz, és a GZip egyforma szöveget eszik reggelire.