CSS супраць табліц: што ты робіш - гэта няправільна

Original on www.foohack.com
Пераклад на беларускую мову Patricia Clausnitzer


Вызначэнні першага.

Табліца

Зададзенага мноства радкоў і слупкоў з клеткамі, якія аўтаматычна і даволі бойка дазволіць змясціць іх змесціва клетак можа быць пабіта на радкі і стаўбцы, табліца ў цэлым можна разглядаць як адзін блок, і клеткі могуць утрымоўваць табліцы. Табліца ёсць метафара для сляпых і пракладкі 2-мернага кантэнту.

CSS

каскадныя табліцы стыляў, а не плывучай DIV-ов, а не якой-небудзь пэўнай разметкі, а толькі канцэпцыя візуальнага адлюстравання разметкі паказаны шэраг кіраваў, якія захоўваюцца асобна ад разметкі, яны працуюць, як правіла, у вонкавым злучаны файл ці стыль тэгі ў загалоўку дакумента.

Казаць сябар у сябра


CSS складае (па розных чынніках цытуецца ў іншых месцах да млоснасці), у большасці выпадкаў, больш аптымальны тэхналагічны падыход. Гэта не азначае, што існае становішча мовы CSS з'яўляецца дасканалым. Сапраўды, нават самых заўзятых прыхільнікаў CSS рэгулярна сцвярджаць, што Існуюць сур'ёзныя праблемы з існай спецыфікацыі і падтрымка браўзара.

Табліцы (па розных чынніках, паказаным у іншым месцы да млоснасці), у большасці выпадкаў больш аптымальнай метафарай, чым любы з яго канкурэнтаў. Там няма дзіва па сваёй сутнасці тэгі сябе. Сапраўды, нават самых заўзятых прыхільнікаў табліц рэгулярна сцвярджаць, што гэта надбаўка будзе брыдкая.

У гэтым і складаецца сутнасць праблемы. CSS з'яўляецца вялікім тэхналагічным падыходам, і табліц вялікай метафара. Тады ўзнікае пытанне звычайна становіцца ці мне мой знак утрыманне з дапамогай <div> тэгі ці <table> тэгі?, што ў рэчаіснасці азначае гэта аддзяленне стылю ад утрымання больш ці меней важнымі, чым пры выкарыстанні аптымальнай метафарай макет? абмеркаванне ідзе трохі падобны на гэты:

Табліцы

Падобная кампаноўка метафара лепш, так што вы павінны выкарыстоўваць гэтыя тэгі. Усё, што вы ідэалісты нерэальным! (Акрамя таго, калі вы думаеце, разметкі пытанні, вы верыце ў фей. Гэта не так!)

CSS

Метафара shmetaphor! Вы не клапоціцеся пра недатыкальнасць дадзеных і якасці кода. Падумайце пра абслугоўванне! (Акрамя таго, калі вы не можаце зрабіць гэта з DIV-ов, вы дурное. Бо гэта так проста!)

Правільны адказ, відаць, складаецца ў выкарыстанні табліцы метафара з тэхналогіяй CSS. У ідэальным свеце вы заўсёды пазначаць утрыманне з дапамогай тэгаў, што б паведаміць свой сэнс найболей выразна абранаму агентаў карыстачоў. Тады ты скажаш карыстацкіх агентаў, як лячыць гэтыя тэгі візуальна. Для апісання гэтага дысплея, вы павінны ўмець карыстацца табліцай метафару, ці паплавок метафару, ці абсалютнае і адноснае пазіцыянаванне, ці што-небудзь яшчэ, але гэта не павінна быць зроблена шляхам разметкі.

Той, што атрымлівае рэальнасць!


У рэальным свеце, гэта не так хораша. Спецыфікацыя CSS мае мноства значэнняў дысплей прызначаны для імітацыі табліцу тэгаў, але яны не вельмі добра падтрымліваецца, ды і наогул, гэта недасканалая імітацыя ўзламаць, што насамрэч не прызначана для выкарыстання, як мы ўсё апынуліся выкарыстанні .

Іншымі словамі, CSS не з'яўляецца ідэальным прыкладам таго, што CSS ставіць сваёй задачай і табліцы / TR / TD-тэгі не ідэальнай рэалізацыі табліцы / сетка метафара. CSS табліцы, хоць яны разумныя, а ў некаторых выпадках вельмі карысным, вазьміце яго ад дрэннага да горшага.

Сучасныя CSS не ў кропцы, дзе можна рэальна разлічваць на якога-небудзь істотнага змены стылістычнага на вашы старонкі без змены разметкі. Калі вам трэба перамясціць панэль навігацыі справа налева, ці паўторна скуры на старонку з dropshadows замест закругленымі кутамі, ці канверсаваць вашы градыенты ад 2-тон, 3-тон, ці зрабіць скрынкі ў вертыкальнай плоскасці, а не верхні краю, вы, верагодна, прыйдзецца змяніць разметку, прынамсі трохі.

У тэорыі, гэта магчыма. Я ведаю некалькі маіх калегаў катэгарычна не згодны і паказваюць на шматлікіх падыходаў, якія дазволяць практычна любога reskinning выкарыстоўваючы толькі CSS змены. (Я выкарыстоўваў Sommer's CSS Лэслі Mojo тэхніку вялікі поспех у мінулым, мы выкарыстоўвалі яго для амаль усё, на Yahoo! Buzz .) Але дазвольце мне вам сказаць, за гады досвед будаўніцтва вытворчых аб'ектаў з CSS, вялікую частку часу , насамрэч яна проста не працуе.

А навошта гэта? Які звар'яцелы вар'ят запісвае усё HTML іх уручную ў тэкставых файлах, так ці інакш? Відавочна, у вас ёсць нейкія фонавыя рухавіка пляўкі яго з шаблонаў, так што вы проста змяніць шаблон і вуаля!, разметка змянілася ва ўсім свеце.

Вельмі блакітны ровар Шед


Праца ў кампаніі Yahoo, я сустрэў webdevs з сапраўды неверагоднай здольнасцю CSS, які шатун з жывых код пад рэальныя тэрміны ў адпаведнасці са строгімі стандартамі. Яны выкарыстоўваюць CSS, а не табліцы, і яны атрымліваюць Shit "Гатова". Ёсць іх шмат, больш, чым я магу пералічыць тут, але Nate Koechley , Мэтт Суіні, Хеджэр Ван , і Лэслі Sommer заслугоўваюць адмысловага згадвання. Я прыйшоў да Yahoo ведаючы, CSS вельмі добра, але я стаў экспертам галоўным чынам у выніку працы ў такіх высокакваліфікаваных супольнасці распрацоўнікаў.

Акрамя таго, з-за майго часу ў Yahoo, я бачыў нейкі зусім вар'ят дэбаты з нагоды разметкі і стандартаў кадавання на франтальнай і спісаў рассылання Devel. Я жадаю сказаць, вы думаеце, гэта маленькія выбліскі ў блогасферы што-небудзь? Ты не ўяўляеш, дружа. Сур'ёзна. І вось калегі, якія (па большай частцы) сапраўды падабаецца, і паважаць адзін аднаго.

Вы жадаеце ведаць сакрэт? Няма ніякай розніцы.

Мова як мова робіць. Калі кожны выкарыстоўвае <table> тэгі разметкі, адгадайце, што адбудзецца: <table> зараз семантычна бессэнсоўных (ці прынамсі, семантычна расплывістым) пазнаку, і любы карыстач агентаў, якія маглі б клапаціцца пра навігацыю таблічных дадзеных даводзіцца мець справа з гэтым фактам . Гэта становіцца яшчэ адным <div> , для ўсіх намераў і мэт, але трохі меней гнуткімі, і па змаўчанні стыль, што робіць яго зручным для разметкі.

Запал да дэкламацыі складаецца у тым, што яна не мае сэнсу! Вядома, гэта прасвядная глеба для веласіпеда!

Дакладна: Гэта не мае значэнні.


Выкарыстоўвайце тое, што тэгі працуюць для вас. Мне ўсё адно. Вы па-ранейшаму добрым чалавекам.

Я магу вам сказаць па досведзе, што глыбокія веды CSS мае важнае значэнне для сур'ёзных канец развіцця фронта. (Большасць так званых DHTML насамрэч проста маніпуляцыі з CSS Javascript і Javascript вельмі лёгкую.) CSS можна рабіць некаторыя рэчы, якія табліца тэгаў не можа, таму вы павінны вучыцца. Дакладна і зваротнае, так што вы павінны ведаць, як выкарыстоўваць табліцы, таксама.

Напішыце код, які можна захаваць, гэта значыць досыць гнуткім, каб дазволіць вам змяніць яго без шкоды для стабільнасці вашага прадукта. Праверце яго ў карыстацкіх агентаў, якія вы чакаеце падтрымкі. Спыніць абмяркоўвалі колер гэтага bikeshed.

Калі ёсць усе падставы, каб вярнуцца і змяніць табліцы DIV-ов, ці наадварот, вы можаце гэта зрабіць. Каб іх чорт узяў, што план, таму што, ці выкарыстоўваеце вы CSS для вёрсткі ці няма, вы будзеце мець патрэбу, каб крануць вашай разметкі часам. Гэта значна цяжэй стварыць прадукт людзі жадаюць, чым да стварэння прадукта, які працуе ў браўзары X.