PĂ”hjalik ĂŒlevaade CSS-i nimeruumidest XML-dokumentide kujundamisel, kĂ€sitledes sĂŒntaksit, rakendust ja parimaid praktikaid veebiarendajatele.
CSS-i nimeruumi reegel: XML-i kujundamine tÀpsusega
Kaskaadstiililehti (CSS) kasutatakse traditsiooniliselt HTML-dokumentide kujundamiseks. Kuid CSS-i saab rakendada ka XML-dokumentidele (Extensible Markup Language). Just siin tulevad mĂ€ngu CSS-i nimeruumid, pakkudes mehhanismi, mille abil saab sihtida XML-struktuuris konkreetseid elemente nende seotud nimeruumi alusel. CSS-i nimeruumide mĂ”istmine on ĂŒlioluline arendajatele, kes töötavad XHTML-i, SVG, MathML-i ja muude XML-pĂ”histe tehnoloogiatega.
Mis on XML-i nimeruumid?
XML-i nimeruumid on viis vĂ€ltida elementide nimede kokkupĂ”rkeid, kui segatakse erinevatest allikatest pĂ€rit sĂ”navarasid ĂŒhes XML-dokumendis. Nimeruumi identifitseerib Uniform Resource Identifier (URI), mis on tavaliselt URL. Kuigi URI ise ei pea osutama kehtivale ressursile, toimib see nimeruumi unikaalse identifikaatorina. MĂ”elge sellele kui viisile luua oma XML-dokumendis eraldi "maailm", kus elemendid on unikaalselt identifitseeritud.
Kujutage ette dokumenti, mis sisaldab nii HTML-i kui ka skaleeritavaid vektorgraafikaid (SVG). Nii HTML-il kui ka SVG-l on elemendid nimega <title>. Ilma nimeruumideta ei teaks brauser, millisele <title> elemendile stiile rakendada.
Siin on nÀide, kuidas nimeruume XML-is deklareeritakse:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:svg="http://www.w3.org/2000/svg">
<head>
<title>Document with Namespaces</title>
</head>
<body>
<h1>Hello World!</h1>
<svg:svg width="100" height="100">
<svg:circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" />
</svg:svg>
</body>
</html>
Selles nÀites:
xmlns="http://www.w3.org/1999/xhtml"deklareerib vaikenimeruumi<html>elemendile ja kĂ”igile selle jĂ€reltulijatele (kui seda ei tĂŒhistata). See tĂ€hendab, et sellised elemendid nagu<head>,<title>,<body>ja<h1>kuuluvad XHTML-i nimeruumi.xmlns:svg="http://www.w3.org/2000/svg"deklareerib nimeruumi "svg" prefiksiga SVG nimeruumi jaoks. Elemendid nagu<svg:svg>ja<svg:circle>kuuluvad SVG nimeruumi.
Kuidas CSS-i nimeruumid töötavad
CSS-i nimeruumid vÔimaldavad teil rakendada elementidele stiile nende nimeruumi alusel. See saavutatakse, kasutades oma CSS-is @namespace reeglit. Reegel @namespace seob nimeruumi prefiksi konkreetse nimeruumi URI-ga.
PĂ”hisĂŒntaks on:
@namespace prefix "namespace-uri";
Kus:
prefixon nimeruumi prefiks, mida soovite oma CSS-is kasutada."namespace-uri"on URI, mis identifitseerib nimeruumi.
Kui olete nimeruumi prefiksi deklareerinud, saate seda oma CSS-selektorites kasutada, et sihtida sellele nimeruumile kuuluvaid elemente.
CSS-i nimeruumide rakendamine: praktilised nÀited
NĂ€ide 1: SVG-elementide kujundamine
Oletame, et soovite kujundada eelmisest nÀitest pÀrit SVG ringi. Saate kasutada jÀrgmist CSS-i:
@namespace svg "http://www.w3.org/2000/svg";
svg|circle {
fill: red;
stroke: blue;
stroke-width: 5px;
}
Selles CSS-is:
@namespace svg "http://www.w3.org/2000/svg";deklareerib SVG nimeruumi prefiksiga "svg".svg|circleon kvalifitseeritud nimega selektor. PĂŒgala sĂŒmbol (|) eraldab nimeruumi prefiksi elemendi nimest. See selektor sihib kĂ”iki<circle>elemente SVG nimeruumis.
See CSS muudab ringi tÀitevÀrvi punaseks, joone vÀrvi siniseks ja joone laiuse 5 piksliks.
NĂ€ide 2: XHTML-elementide kujundamine vaikenimeruumiga
Kui XML-dokumendil on vaikenimeruum (deklareeritud juurelemendil ilma prefiksita), saate siiski sihtida selle nimeruumi elemente CSS-i abil. Peate mÀÀratlema nimeruumi prefiksi ja seejÀrel kasutama universaalset selektorit (*) koos nimeruumi prefiksiga.
Vaatleme varasemast nÀitest pÀrit XHTML-i struktuuri. <h1> elemendi kujundamiseks saate kasutada jÀrgmist CSS-i:
@namespace xhtml "http://www.w3.org/1999/xhtml";
xhtml|h1 {
color: green;
font-size: 2em;
}
Selles CSS-is:
@namespace xhtml "http://www.w3.org/1999/xhtml";deklareerib XHTML-i nimeruumi prefiksiga "xhtml".xhtml|h1sihib<h1>elementi XHTML-i nimeruumis.
See CSS muudab <h1> elemendi vÀrvi roheliseks ja selle fondi suuruse 2em-iks.
NĂ€ide 3: Mitme nimeruumi kasutamine
Saate oma CSS-is mÀÀratleda mitu nimeruumi, et kujundada sama dokumendi erinevatest sÔnavaradest pÀrit elemente.
Vaatleme XML-dokumenti, mis ĂŒhendab XHTML-i ja MathML-i:
<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:mathml="http://www.w3.org/1998/Math/MathML">
<head>
<title>Document with Multiple Namespaces</title>
</head>
<body>
<h1>MathML Example</h1>
<mathml:math>
<mathml:mrow>
<mathml:mi>x</mathml:mi>
<mathml:mo>+</mathml:mo>
<mathml:mi>y</mathml:mi>
</mathml:mrow>
</mathml:math>
</body>
</html>
Nii <h1> elemendi (XHTML) kui ka <math> elemendi (MathML) kujundamiseks saate kasutada jÀrgmist CSS-i:
@namespace xhtml "http://www.w3.org/1999/xhtml";
@namespace mathml "http://www.w3.org/1998/Math/MathML";
xhtml|h1 {
color: blue;
}
mathml|math {
font-size: 1.5em;
}
See CSS kujundab <h1> elemendi siniseks ja suurendab <math> elemendi fondi suurust.
Brauseri ĂŒhilduvus
CSS-i nimeruumide tugi on kaasaegsetes brauserites ĂŒldiselt hea. Vanematel brauseritel vĂ”ib aga olla piiratud vĂ”i puuduv tugi. Ăhilduvuse tagamiseks on oluline oma CSS-i erinevate brauseritega testida.
Siin on ĂŒldine ĂŒlevaade brauseritoetusest:
- Chrome: TĂ€ielik tugi
- Firefox: TĂ€ielik tugi
- Safari: TĂ€ielik tugi
- Edge: TĂ€ielik tugi
- Internet Explorer: Piiratud tugi (IE9+ mÔningate iseÀrasustega)
Internet Exploreri vanemate versioonide puhul vÔite vajada tingimuslikke kommentaare vÔi alternatiivseid stiilimistehnikaid.
Parimad praktikad CSS-i nimeruumide kasutamisel
- Deklareerige nimeruumid oma CSS-i alguses: See muudab teie CSS-i loetavamaks ja hooldatavamaks.
- Kasutage tÀhendusrikkaid prefikseid: Valige prefiksid, mis selgelt nÀitavad seotud nimeruumi (nt "svg" SVG jaoks, "xhtml" XHTML-i jaoks).
- Olge prefiksi kasutamisel jÀrjekindel: Kui olete nimeruumi jaoks prefiksi valinud, kasutage seda jÀrjekindlalt kogu oma CSS-is.
- Testige erinevate brauseritega: Veenduge, et teie CSS töötab ootuspÀraselt kÔigis sihtbrauserites.
- Kaaluge CSS-i lÀhtestamise kasutamist: Stiilide lÀhtestamine aitab tagada jÀrjepideva stiili erinevates brauserites, eriti XML-dokumentidega tegelemisel.
- Kasutage kÔigi nimeruumiga elementide jaoks kvalifitseeritud nimesid (prefiks|element): Kuigi mÔned brauserid vÔivad lubada teil vaikenimeruumis elemente ilma prefiksita kujundada, on selguse ja jÀrjepidevuse huvides parim tava alati kasutada kvalifitseeritud nimesid.
Universaalne nimeruumi selektor
Universaalset nimeruumi selektorit, mida tĂ€histab ĂŒks tĂ€rn (*), saab kasutada elementide sihtimiseks olenemata nende nimeruumist. See vĂ”ib teatud olukordades olla kasulik, kuid seda tuleks kasutada ettevaatusega, kuna see vĂ”ib viia ka soovimatule stiilimisele.
NĂ€iteks *|h1 sihtiks mis tahes <h1> elementi, olenemata selle nimeruumist.
Using the `default` Namespace
CSS Level 4 tutvustab vĂ”tmesĂ”na `default` vaikenimeruumi mÀÀramiseks. See vĂ”imaldab lĂŒhemat stiili loomist dokumentidega tegelemisel, kus peamine nimeruum on vaikimisi.
SĂŒntaks:
@namespace default "http://www.w3.org/1999/xhtml";
default|h1 {
color: red;
}
Kuid brauseritoetus selle funktsiooni jaoks on alles arenemas.
Alternatiivsed stiilimisviisid
Kuigi CSS-i nimeruumid on XML-dokumentide stiilimiseks soovitatav viis, on olemas ka alternatiivseid lÀhenemisviise, mida saate kaaluda, eriti kui teil on vaja toetada vanemaid brausereid vÔi teil on keerulised stiilimisnÔuded.
- JavaScript: Saate kasutada JavaScripti, et dĂŒnaamiliselt lisada vĂ”i muuta stiile elementide nimeruumi alusel. See pakub rohkem paindlikkust, kuid vĂ”ib olla ka keerulisem.
- XSLT: Laiendatava stiililehe keele transformatsioone (XSLT) saab kasutada XML-dokumentide teisendamiseks HTML-iks vÔi muudeks vorminguteks, vÔimaldades teil teisendatud vÀljundit stiilida standardse CSS-i abil.
Levinud vead
- Nimeruumi deklareerimise unustamine: Kui te ei deklareeri nimeruumi, kasutades
@namespace, ei rakendata teie CSS-reegleid soovitud elementidele. - Valede nimeruumi URI-de kasutamine: Veenduge, et kasutate iga sÔnavara jaoks Ôiget nimeruumi URI-t.
- Nimeruumi prefiksite segiajamine: Segaduse vÀltimiseks kasutage erinevate nimeruumide jaoks erinevaid prefikseid.
- Brauseri ĂŒhilduvuse ignoreerimine: Testige oma CSS-i erinevates brauserites, et veenduda selle ootuspĂ€rases toimimises.
- Liiga spetsiifilised selektorid: VÀltige liiga spetsiifiliste selektorite kasutamist, mis vÔivad teie CSS-i hooldamise keerulisemaks muuta.
KokkuvÔte
CSS-i nimeruumid pakuvad vĂ”imsat ja paindlikku viisi XML-dokumentide kujundamiseks. MĂ”istes, kuidas nimeruumid töötavad ja kuidas neid oma CSS-is kasutada, saate luua hĂ€sti struktureeritud ja hooldatavaid stiililehti keerukate XML-pĂ”histe rakenduste jaoks. Kuigi brauseri ĂŒhilduvus on ĂŒldiselt hea, on oluline oma CSS-i testida erinevates brauserites, et tagada jĂ€rjepidev kasutajakogemus. JĂ€rgides parimaid praktikaid ja vĂ€ltides levinud vigu, saate kasutada CSS-i nimeruumide vĂ”imsust visuaalselt atraktiivsete ja funktsionaalsete XML-pĂ”histe veebirakenduste loomiseks.
Pidage meeles, et hoidke oma CSS organiseeritud, kasutage tÀhendusrikkaid prefikseid ja testige oma koodi alati pÔhjalikult. Kindla arusaamaga CSS-i nimeruumidest saate enesekindlalt lahendada kÔik XML-i stiilimisega seotud vÀljakutsed.