-
2010-08-27
تور كۆرگۈچلەرنىڭ CSSنى يەكلەش Hackمەسىلىسىنى ھەل قىلىش - [blogبىلىملىرى]
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://www.blogbus.com/dunyakara-logs/73637455.html
بلوگ ياساۋاتقان، بلوگ ئۇسلۇبىنى ئۆزگەرتىپ قاچىلاۋاتقان ۋە ياكى بلوگ كودلىرى بىلەن ھەپىلىشىۋاتقان بلوگگىرلارغا مەلۇم بولغان بولىشى مۇمكىنكى مەلۇم بىر خىل ئۇسلۇپنى ھەر خىل تور كۆرگۈچلەردە كۆرسىڭىز ئۇسلۇپلارنىڭ بەت يۈزى قۇرۇلمىسى ھەرخىل ئۆزگۈرۈپ كېتىدىغان ئەھۋاللار يۈز بېرىدۇ، بۇنىڭدىكى سەۋەپ زادى قەيەردە؟
بۇنداق مەسىلىنىڭ توغرا بولغان جاۋابى شۇكى: تور دۇنياسىدا تور كۆرگۈچلەرنىڭ تۈرى ھەرخىل بولۇپ كەتتى، مەسىلەن بىزنىڭ بىلىدىغانلىرىمىزدىن IE5,IE5.5,IE6.0,IE7,IE8,IE9,Mozilla Firefox, Netscape Navigator, Opera, Maxthon, Google Chrome يەنە ئۇندىن باشقىمۇ 50~60خىل تور كۆرگۈچ بار، مۇشۇنداق تور كۆرگۈچلەرنىڭ cssكودىنى تونۇشى ۋە ئوقۇشى ئوخشاش ئەمەس،ئۇنىڭ ئۈستىگە cssكودلىرىنىڭ ئىجرا بولۇش ئىلگىرى-كېيىنلىك تەرتىپىمۇ ئوخشاش ئەمەس شۇڭا ئوخشىمىغان تور كۆرگۈچتە ئاچقان بلوگ ئۇسلۇپلىرىمىز ئوخشىمىغان قىياپەتتە كۆز ئالدىمىزدا نامايەن بولۇپ قالىدۇ. بۇ مەسىلىنى ھەل قىلىشنى يەنە شۇ ئېنگىلىسلار css hack دەپ ئاتايدىكەن، يولداشلارمۇ ھەم شۇنداق ئاتايدىكەن، ئەمدىكى مەسىلە بىز تىلىمىزدا قانداق ئاتىساق بولار
hackنىڭ تۇراقلىق مەنىسى بويىچە تەرجىمە قىلساق ئەلۋەتتە بىزنىڭ تىلىمىزغا ئۇدۇل كەلمەيدىكەن، ئەگەر hack it بولسا "بىر تەرەپ قىلىش"،"تاقابىل تۇرۇش"،"سىغدۇرۇش"،"كۆنۈشۈش" دىگەندەك مەنىلەرگە ئىگە بولىدىكەن، بۇ مەنىلەرگە ھەم ئۆزىمىز كۆرىۋاتقان مەسىلىنىڭ ماھىيىتىگە بىرلەشتۈرۈپ Hackنى مەن ماسلاشتۇرۇش دەپ ئالدىم. يەنى css hack دىگەن ئاتالغۇنى "cssنى ماسلاشتۇرۇش" يەنى cssنى تۈرلۈك تور كۆرگۈچلەرگە ماسلاشتۇرۇش دەپ ئالدىم.
ئەمدى بۇ مەسىلىنى ھەل قىلىش ئۈچۈن بىز ئوخشىمىغان توركۆرگۈچلەرگە ماس كېلىدىغان cssكودىنى يېزىپ چىقىشىمىزغا توغرا كېلىدۇ، مۇشۇنداق قىلالىغاندىلا ئاندىن بلوگلىرىمىزنى قايسىلا توركۆرگۈچتە كۆرمەيلى ئوخشاش بىر خىل كۆرۈنۈشكە ئاساسىي جەھەتتىن ئىگە قىلغىلى بولىدۇ.
بىرىنچى مەسىلە:بىز توربەت لاھىيەلىسەك ياكى مەلۇم بىر خىل بلوگ ئۇسلۇبىنى لاھىيەلىسەك ئالدى بىلەن IE6ۋە IE7دە ئاندىن كېيىن FireFoxدا سىناش ئېلىپ بېرىشىمىز كېرەك.
ھازىر IEتور كۆرگۈچلىرىنىڭ نەشرى ئۆزلۈكسىز يېڭىلىنىۋاتقان بولسىمۇ بىز ئۇلارنى ئىشلەتمەسلىككە ئامالىمىز يوق ، چۈنكى مۇشۇنداق كۆپلىگەن تور كۆرگۈچلەرنىڭ ئىچىدە يەنىلا IEتور كۆرگۈچنى ئىشلىتىدىغانلار زور سالماقنى ئىگەللەيدۇ، شۇڭلاشقا ئالدى بىلەن لاھىيەلىگەن توربەتنى IE6ۋە IE7لەردە سىناش ئېلىپ بېرىشىمىز كېرەك مۇشۇنداق بولغاندىلا نۇرغۇن زېھنىڭىز ۋە ۋاقتىڭىزنى تېجەپ قالالايسىز.
ئىككىنچى مەسىلە:IEتور كۆرگۈچلەردە دائىم ئۇچرايدىغان مەسىلىلەر
IE6دە CSSنىڭ float كودىنى قالايمىقان ئىشلەتمەسلىك كېرەك، چۈنكى floatنىڭ خاراكتىرى توربەت يۈزىدىكى مەزموننى ئوڭغا ياكى سولغا ئۆزلۈكسىز توغۇرلاش ئېلىپ بارىدىغانلىقتىن تور بەت يۈزىدە مەزموننىڭ يوقاپ كېتىش ياكى مەزموننىڭ ئۈستى-ئۈستىلەپ كۆرىنىۋېلىش ھادىسىسى كېلىپ چىقىدۇ. بۇنى ھەل قىلىش ئۇسۇلى displayخاراكتىرىنى inlineقىلىپ تەڭشەش كېرەك.
ئۇندىن باشقا يەنە كەڭلىك ۋە ئېگىزلىك پارامىتېرلىرىغا minياكى maxقىممىتىنى قوشماسلىق كېرەك يەنى min-width,max-width,min-height,max-heightقاتارلىق پارامىتېرلارنى IEقوللىمايدۇ.
بۇندىن باشقىمۇ يەنە دىققەت قىلىشقا تېگىشلىك تەرەپلەر نۇرغۇن بىراق ۋاقىت مۇناسىۋىتى بىلەن بۇ يەردە بىرمۇ-بىر سۆزلەش ساقىت قىلىندى.
ئۈچىنچى مەسىلە:CSS HACKنى ھەل قىلىش تەدبىرلىرى
يەنى CSSنى توركۆرگۈچلەرگە ماسلاشتۇرۇش تەدبىرلىرى بۇنىڭدا تۆۋەندىكىدەك بىر نەچچە خىل تەدبىر بار:
بىرىنچى.*بەلگىسىنى قوشۇش.
*بەلگىسى(يۇلتۇز بەلگىسى)نى IEتور كۆرگۈچلەرنىڭ ھەممىسى قوللايدۇ، بىراق firefox, Opera, Chromeقاتارلىق تور كۆرگۈچلەر قوللىمايدۇ(تونۇمايدۇ) شۇڭا كود يازغاندا مەسىلەن:
#background-color{ color:red; *color:blue;}
دەپ يازساق توربەتنىڭ تەگلىك رەڭگى IEتوركۆرگۈچلەردە كۆك رەڭ(blue)، باشقا تور كۆرگۈچلەردە قىزىل رەڭ(red) بولۇپ كۆرىنىدۇ.
ئىككىنچى:!importantپارامىتېرىنى قوشۇش
IE7توركۆرگۈچ *بەلگىسىنى تونۇپلا قالماستىن يەنە !important پارامېتىرىنىمۇ قوللايدۇ ھەم تونۇيدۇ، بىراق IE6توركۆرگۈچ بولسا پەقەتلا *بەلگىسىنى تونۇيدۇ!importantنى تونۇمايدۇ، بۇنىڭدىن پايدىلىنىپ بىز:
#background {color:red !important; color:blue; }
قىلىپ يازساق ئىجرا بولغاندا IE7توركۆرگۈچتە كۆرسەك تەگلىك قىزىل كۆرىنىدۇ، IE6توركۆرگۈچتە كۆرسەك تەگلىك كۆك كۆرىنىدۇ. باشقا كودلارنى تەڭشەشتىمۇ مۇشۇنداق ئۇسۇلنى قوللىنىپ ھەل قىلغىلى بولىدۇ.
ئۈچىنچى:*html ۋە *+html پارامېتىرىنى قوشۇش
تۆۋەندىكىدەك بىر كودنى يېزىپ باقايلى:
#background {color:red; }
*html #background {color:green; }
*+html #background {color:blue; }بىرىنچى قۇردىكى كودنى firefoxقاتارلىق تور كۆرگۈچلەر قوللاپ تەگلىك رەڭگىنى قىزىل كۆرسىتىپ بېرىدۇ.
ئىككىنچى قۇردىكى كودنى پەقەت IE6توركۆرگۈچلا قوللايدۇ، باشقىلار قوللىمايدۇ شۇڭا IE6دا كۆرگەن ۋاقتىمىزدا تەگلىك يېشىل رەڭدە كۆرىنىدۇ.
ئۈچىنچى قۇردىكى كودنى پەقەت IE7توركۆرگۈچلا قوللايدۇ،باشقىلار قوللىمايدۇ شۇڭا IE7دا كۆرگەن ۋاقتىمىزدىلا ئاندىن تەگلىك كۆك رەڭدە كۆرىنىدۇ.
ھازىر IE8 ۋە IE9لار چىقىپ كەتتى، بۇلارنى ھەل قىلىش ئۈچۈن
#background {color:red\0; }
#background {color:green\9; }بىرىنچى قۇردىكىنى پەقەت IE8توركۆرگۈچلا قوللايدۇ، ھەم تەگلىك رەڭگىنى قىزىل قىلىپ كۆرسىتىپ بېرىدۇ،
ئىككىنچى قۇردىكىنى پەقەت IE9توركۆرگۈچلا قوللايدۇ ھەم تەگلىك رەڭگىنى يېشىل قىلىپ كۆرسىتىپ بېرىدۇ.
يوقۇرىدىكى ئۇسۇللار بىر قەدەر توغرا بولغان ھەم سىناقتىن ئۆتكەن ئۇسۇللار بولۇپ باشقا ئۇسۇللارنى قوللانغانلارمۇ كۆپ بىراق ئۇلارنىڭ گىرامماتىكا خاتالىقى بار بولۇپ كېيىنچە ئۆزلىرىگە باش ئاغرىقى تېپىۋېلىشى تۇرغان گەپ، شۇڭا تەۋسىيەم شۇكى يوقارقى ئۇسۇللار بىلەن تۈرلۈك توركۆرگۈچلەرنىڭ cssنى يەكلەش مەسىلىسىنى توغرا ھەل قىلىش كېرەك.
ئاخىرىدا تورداشلارغا ھەرخىل توركۆرگۈچلەردە ئوخشاش ئۈنۈمدە چىقمايدىغان بىر سىناق توربېتىنى ياساپ سۇندۇم، كومپىيوتېرىڭلاردا ئوخشىمىغان تور كۆرگۈچلەر بولسا ئېچىپ سىناپ باقساڭلار بولىدۇ، ئوخشاش بىر تور بەت ئوخشىمىغان تور كۆرگۈچتە ئوخشاش بولمىغان رەڭ ۋە ئۈنۈم ھاسىل قىلىدۇ.
سىناپ كۆرۈش توربېتىنى چۈشۈرۈش ئادرىسى:
http://filer.blogbus.com/4255592/resource_4255592_1282624475v.html
历史上的今天:
سۈزۈك ئېچىلىش مۇراسىمى 2008-08-27رەسىم چوڭايتىش دېتالى 2008-08-27138ياش! ئەڭ ئۇزۇن ئۆمۈر كۆرگۈچى 2008-08-27ئېكران رەسىمى چۈشۈرۈش تور بېتى 2008-08-27
收藏到:Del.icio.us
ئىشلىتىش:
بۇ يازمىنى ساقلىۋالىمەن
评论
رەھمەت، بۇ يازمىدىن ئوبدان پايدىلىنىمەن.