Ãëàâíàÿ

Ñòàòüè

Ïðîãðàììû

Ñêðèïòû

Ôîí.èçîáðàæåíèÿ

Êàðòèíêè

Ïîëåçíûå ññûëêè

Âàøè ññûëêè

Ðàáîòû

Ñäåëàòü çàêàç


Ðèñóíêè

Îá àâòîðå

Ôîòîãàëåðåÿ

Ñèñòåìà ëèäåðîâ


Ôîðóì

Ãîñòè


Rambler's Top100

Êðîññ-áðàóçåðíûé 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. Îäíàêî òàêîå ðåøåíèå íå âñåãäà óäîâëåòâîðèòåëüíî, ïîòîìó ÷òî â ñåðüåçíûõ òàáëèöàõ ñòèëåé íàäî ó÷èòûâàòü îñîáåííîñòè ìíîãèõ áðàóçåðîâ.

Äàëåå ìåòîäû äëÿ ðàçëè÷íûõ áðàóçåðîâ.

 

äàëåå...

Îñòàâèòü ìíåíèå î ìàòåðèàëå â Ôîðóìå

Èñòðàòîâ Âàäèì
Ïëîòêèí Ìàêñ
2001, v.3.0