Êðîññ-áðàóçåðíûé
CSS
Ñêîëüêî
íè ðàçðàáàòûâàëè ñòàíäàðòû, ñêîëüêî íè íàïðÿãàëñÿ íåáåçûçâåñòíûé êîíñîðöèóì
W3, ñêîëüêî íè ðóãàëè ðàçðàáîò÷èêîâ ñîôòà íåäîâîëüíûå ðàçðàáîò÷èêè ñàéòîâ
— âñå ðàâíî ïîääåðæêà CSS â áðàóçåðàõ ðåàëèçîâàíà êðèâî è íå ïîëíîñòüþ
(çà èñêëþ÷åíèåì MSIE 5.5 ïîä Macintosh è Netscape 6.0). Íà÷èíàÿ ñ òðåòüèõ
âåðñèé ìàññîâûõ áðàóçåðîâ, ó âåá-ìàñòåðîâ ïðèáàâèëîñü ãîëîâíîé áîëè.
È ýòà áîëü âûçâàíà ðàçíîé ðåàëèçàöèåé CSS ó ðàçíûõ áðàóçåðîâ. Áîëåå
òîãî, ýòà ðåàëèçàöèÿ â Netscape 4.x íàñòîëüêî êîðÿâàÿ, ÷òî ñïèñîê áàãîâ
çàíèìàåò 4 ñòðàíèöû ìåëêèì øðèôòîì áåç ïîäðîáíîãî îïèñàíèÿ.
Âîçíèêàåò âîïðîñ: ÷òî æå äåëàòü áåäíûì âåá-ìàñòåðàì?
Âàðèàíòîâ íåñêîëüêî:
1. Çàáûòü ïðî CSS è âîîáùå åãî íå èñïîëüçîâàòü (ñîâåðøåííî íåïðèâëåêàòåëüíûé
âàðèàíò, ïîòîìó êàê CSS íà ñàìîì äåëå âåùü ïîëåçíàÿ âî ìíîãèõ
îòíîøåíèÿõ è îòêàçûâàòüñÿ îò ïîëåçíîãî èíñòðóìåíòà ãëóïî);
2. Ñâåñòè èñïîëüçîâàíèå CSS ê ìèíèìóìó, ÷òîáû áûòü íà 100% óâåðåííûì
â îäèíàêîâîñòè (áîëåå-ìåíåå ïðèåìëåìîå ðåøåíèå, íî ñãîäèòñÿ òîëüêî êàê
âðåìåííîå, ïîòîìó ÷òî ÷åðåç ãîäèê-äðóãîé áåç CSS íå îáîéäåòñÿ
íè îäèí ïðèëè÷íûé ñàéò, à òàáëè÷íàÿ âåðñòêà óéäåò â íåáûòèå);
3. Ðàçîáðàòüñÿ â CSS è îãðàíè÷èòü ñåáÿ ïðèìåíèìîñòüþ îäíîé òàáëèöû
ñòèëåé êî âñåì áðàóçåðàì (ýòî îäèí èç õîðîøèõ âàðèàíòîâ, íî âåñüìà îãðàíè÷èâàåò
âîçìîæíîñòè èñïîëüçîâàíèÿ âñåõ áîãàòñòâ è äîñòîèíñòâ CSS);
4. Äåòàëüíî ðàçîáðàòüñÿ â CSS è èñïîëüçîâàòü ôèøêè, ñêðûâàþùèå
ôðàãìåíòû êîäà îò íåêîòîðûõ áðàóçåðîâ, äîáèâàÿñü ìàêñèìàëüíîé ýôôåêòèâíîñòè
îò êàæäîãî êîíêðåòíîãî áðàóçåðà (õîðîøåå ðåøåíèå, ïðèìåíèìî âî ìíîãèõ
ñëó÷àÿõ);
5. Äåòàëüíî ðàçîáðàòüñÿ â CSS è ïèñàòü ðàçíûå òàáëèöû ñòèëåé
äëÿ ðàçíûõ áðàóçåðîâ (òîæå õîðîøåå ðåøåíèå).
Ïîñëåäíèå òðè ïóíêòà (â îñîáåííîñòè 4-ûé è 5-ûé) ñîáñòâåííî è
îòíîñÿòñÿ ê êðîññ-áðàóçåðíîìó CSS. Âîò è îñòàíîâèìñÿ íà íèõ ïîïîäðîáíåå
è íà÷íåì ñ ñàìîãî ëåãêîãî.
Îäíà òàáëèöà ñòèëåé äëÿ âñåõ áðàóçåðîâ
Ýòî ïðîñòåéøèé ìåòîä äîáèòüñÿ òîãî, ÷òîáû âàøà
ñòðàíè÷êà âûãëÿäåëà îäèíàêîâî âî âñåõ áðàóçåðàõ. Íî ýòîò ìåòîä âåñüìà
îãðàíè÷èâàåò âîçìîæíîñòè èñïîëüçîâàíèÿ âñåõ áîãàòñòâ è äîñòîèíñòâ CSS.
Íàïðèìåð, âû ëèøèòåñü âîçìîæíîñòè èñïîëüçîâàòü line-height
èëè margin-top,
ïîòîìó ÷òî íåêîòîðûå áðàóçåðû íåêîððåêòíî ðàáîòàþò ñ ýòèìè ýëåìåíòàìè.
Ñïèñîê âñåõ áàãîâ ñëèøêîì îáøèðåí, ïîýòîìó îãðàíè÷èìñÿ íàèáîëåå
ÿâíûìè è îïàñíûìè:
1. Íå èñïîëüçóéòå margin-top;
2. Íå èñïîëüçóéòå ëþáûå åäèíèöû èçìåðåíèÿ, êðîìå ïèêñåëåé (px);
3. Íå ïðîïèñûâàéòå âûñîòó ëèíèè (line-height);
4. Íå èñïîëüçóéòå êëþ÷åâîå ñëîâî normal
(îíî âñå ðàâíî íå íóæíî);
5. Íå èñïîëüçóéòå ÷èñëîâûå çíà÷åíèÿ äëÿ font
(weights) â ñîêðàùåííîé
çàïèñè ñòèëåé äëÿ øðèôòà;
6. Óñòàíàâëèâéòå margin-left
è margin-right
òîëüêî äëÿ BODY
è íè â êîåì ñëó÷àå äëÿ äðóãèõ òýãîâ;
7. Íå èñïîëüçóéòå ñòèëè äëÿ LI,
DD è DT.
 äîïîëíåíèå êî âñåìó, åñëè âû èñïîëüçóåòå òàáëèöû, íàäî ðàçäåëèòü
ñåëåêòîðû äëÿ BODY
íà äâå ÷àñòè: îäíè äëÿ íàñëåäóþùèõñÿ, äðóãèå äëÿ íå íàñëåäóþùèõñÿ. Íàïðèìåð:
BODY {
font-family: sans-serif;
color: red;
background: white;
margin-left: 7%;
margin-right: 5%;
margin-bottom: 2em
}
Çàìåíÿåòñÿ íà
BODY {
font-family: sans-serif;
color: red
}
BODY {
background: white;
margin-left: 7%;
margin-right: 5%;
margin-bottom: 2em
}
Çàòåì äëÿ êàæäîãî áëîêîâîãî ýëåìåíòà, êðîìå LI,
DD è DT, ïëþñ SPAN ïðîïèñàòü íàñëåäóþùèåñÿ
ñâîéñòâà. Íàïðèìåð:
ADDRESS, BLOCKQUOTE,
BODY, DIV, DL, H1, H2, H3, H4, H5, H6, OL, P, PRE, SPAN, UL {font-family:
sans-serif;
color: red}
Ýòî íàäî ñäåëàòü èç-çà IE 3 è Netscape 4, ïîòîìó
÷òî êîãäà îíè îáðàáàòûâàþò ñòðàíèöó è âñòðå÷àþò òàáëèöó, òî ÷àñòåíüêî
óáèâàþò íàñëåäîâàíèå îò òýãà BODY
äëÿ òýãà TABLE
è âñåõ ïîñëåäóþùèõ òýãîâ.
Âîò äîâîëüíî êðàòêàÿ èíñòðóêöèÿ, íî îíà ïîìîæåò íàïèñàòü ðàáî÷óþ
êàñêàäíóþ òàáëèöó ñòèëåé, êîòîðóþ áóäóò îáðàáàòûâàòü îäèíàêîâî ïðàêòè÷åñêè
âñå áðàóçåðû, ïîääåðæèâàþùèå CSS.
Ñêðûâàåì êóñêè êîäà
Êàê ñïðÿòàòü êóñîê òàáëèöû ñòèëåé îò îïðåäåëåííîãî áðàóçåðà? Âî-ïåðâûõ,
ðàçáåðåìñÿ, çà÷åì ýòî âîîáùå íàäî. Ê ïðèìåðó, âû èñïîëüçóåòå êàêèå-òî
ýëåìåíòû, êîòîðûå íåïðàâèëüíî èíòåðïðåòèðóþòñÿ Netscape 4. Â ýòîì
ñëó÷àå ïîëüçîâàòåëè ýòîãî ãëþ÷íîãî áðàóçåðà óâèäÿò ñîâñåì íå òî, ÷òî âû
ïëàíèðîâàëè. Òîãäà ìîæíî íàïèñàòü ïðîñòåíüêóþ òàáëèöó ñòèëåé, êîòîðóþ
ïðàâèëüíî èíòåðïðåòèðóþò âñå áðàóçåðû, è âñòàâèòü êóñîê êîäà, êîòîðûé
áóäåò ñêðûò îò Netscape 4. Äåëàåòñÿ ýòî òàê:
/* Ýòî òàáëèöà ñòèëåé */
@import url(okbrowsers.css);
Êîä, êîòîðûé ïîíèìàþò âñå áðàóçåðû, íàõîäèòñÿ ìåæäó
/* */, à âñå îñòàëüíîå çàïèõèâàåòñÿ
â okbrowsers.css.
Êîíñòðóêöèÿ @import url(okbrowsers.css)
ïðÿ÷åò ôàéë okbrowsers.css îò Netscape
4 è MSIE 3. Îäíàêî òàêîå ðåøåíèå íå âñåãäà óäîâëåòâîðèòåëüíî,
ïîòîìó ÷òî â ñåðüåçíûõ òàáëèöàõ ñòèëåé íàäî ó÷èòûâàòü îñîáåííîñòè ìíîãèõ
áðàóçåðîâ.
Äàëåå ìåòîäû äëÿ ðàçëè÷íûõ áðàóçåðîâ.
äàëåå...
Îñòàâèòü
ìíåíèå î ìàòåðèàëå â Ôîðóìå
|