Kodėl gi ne naudoti išdėstymo lenteles HTML?

Atrodo, kad bendras sutarimas yra tas, kad lentelės neturėtų būti naudojamos HTML išdėstymui.

Kodėl

Aš niekada (ar retai, sąžiningai) nematau gerų argumentų. Įprasti atsakymai:

  • Gerai padalintas turinys nuo išdėstymo
    Bet tai yra klaidingas argumentas; Cliche mąstymas . Darau prielaidą, kad tiesa, kad lentelės elemento naudojimas maketui neturi nieko bendro su lentelių duomenimis. Taigi, ką Ar mano viršininkas padeda? Ar mano naudotojai padeda?

    Galbūt aš arba mano kolegos kūrėjai, kuriems reikia palaikyti tinklalapio priežiūrą ... Ar lentelė yra mažiau prižiūrima? Manau, kad stalo naudojimas yra paprastesnis nei naudojant div ir CSS.

    Beje, kodėl „div“ ar „span“ naudojamas geras turinio atskyrimas nuo išdėstymo ir lentelė nėra? Norint gauti gerą išdėstymą, naudojant tik „divs“, dažnai reikia daug įdėtinių.

  • Kodo skaitymas
    Manau, kad tai yra priešingai. Dauguma žmonių supranta HTML, mažai supranta CSS.

  • Geresnis SEO nenaudoti skaičiuoklių
    Kodėl Ar kas nors gali įrodyti, kad taip yra? Arba iš „Google“ išraiška, kad lentelės yra nepalankios SEO atžvilgiu?

  • Lentelės lėčiau.
    Turite pridėti papildomą kėbulo elementą. Tai šiuolaikinių interneto naršyklių žemės riešutai. Parodykite man keletą bandymų, kuriuose naudojant lentelę žymiai sulėtėja puslapis.

  • Lengvesnis statymas be stalų, žr. Css Zen Garden .
    Dauguma svetainių, kurioms reikia atnaujinti naują turinį (html). Scenarijai, kai naujos svetainės versijai reikia tik naujo CSS failo, yra mažai tikėtini. „Zen Garden“ yra gera svetainė, tačiau šiek tiek teorinė. Jau nekalbant apie netinkamą CSS naudojimą.

Mane domina geri argumentai, kaip vietoj lentelių naudoti divs + CSS.

665
17 сент. Benno Richters 17 sept. 2008-09-17 16:19 '08 at 4:19 pm 2008-09-17 16:19
@ 90 atsakymų
  • 1
  • 2
  • 3

Aš analizuosiu jūsų argumentus po vieną ir pabandysiu parodyti klaidas.

Gerai atskirti turinį nuo išdėstymo, tačiau tai yra klaidingas argumentas; Cliche mąstymas.

Tai nėra klaida, nes HTML buvo sukurta specialiai. Neteisėtas elemento naudojimas gali būti nevisiškai baigtas (galiausiai naujos idėjos buvo sukurtos kitomis kalbomis), tačiau galimos neigiamos pasekmės turi būti subalansuotos. Be to, net jei šiandien nebuvo jokių argumentų prieš piktnaudžiavimą „elemento“ elementu, galbūt rytoj, nes naršyklės taiko ypatingą nuorodą į elementą. Galų gale jie žino, kad „elementų <table> elementai yra tik lentelės duomenims“ ir gali naudoti šį faktą, kad pagerintų atvaizdavimo mechanizmą, procesą, kuris subtiliai keičia <table> elgesį ir taip pažeidžia atvejus, kai jis buvo anksčiau piktnaudžiaujama.

Taigi, ką Ar mano viršininkas padeda? Ar mano naudotojai yra patenkinti?

Tai priklauso nuo. Ar jūsų bosas ryškus? Tada jis gali būti abejingas. Jei ji yra kompetentinga, ji rūpinsis, nes vartotojai bus .

Galbūt aš arba mano kolegos kūrėjai, kuriems reikia palaikyti tinklalapio priežiūrą ... Ar lentelė yra mažiau prižiūrima? Manau, kad stalo naudojimas yra paprastesnis nei naudojant div ir css.

Dauguma profesionalių interneto svetainių kūrėjų atrodo prieš jus. [redaguoti] . Šios lentelės iš tikrųjų yra mažiau išlaikomos, turėtų būti aiškios. Lentelių naudojimas maketavimui reiškia, kad įmonės maketo keitimas iš tikrųjų reiškia kiekvieno atskiro puslapio keitimą. Tai gali būti labai brangi. Kita vertus, protingas semantiškai prasmingo HTML derinimas su CSS gali apriboti tokius CSS ir naudojamų vaizdų pokyčius.

Beje, kodėl naudokite div ar span gerą turinio atskyrimą nuo išdėstymo ir stalo? Norint gauti gerą išdėstymą, naudojant tik „divs“, dažnai reikia daug įdėtinių.

Giliai įdėtos <div> yra anti-modeliai, kaip ir lentelės. Geriems interneto dizaineriams jų nereikia. Kita vertus, net ir tokie giliai įdėję divai neturi daug stalo išdėstymo problemų. Tiesą sakant, jie gali prisidėti prie semantinės struktūros kūrimo, logiškai atskirdami turinį į dalis.

Skaitymo kodas Manau, kad yra priešingas. Dauguma žmonių supranta html. Tai lengviau.

„Dauguma žmonių“ nesvarbu. Profesionalai yra svarbūs. Profesionalams stalo maketai sukuria daug daugiau problemų nei HTML + CSS. Tai panaši į tai, kad neturėčiau naudoti „GVim“ ar „Emacs“, nes daugeliui žmonių Notepad yra lengviau. Arba, kad aš neturėčiau naudoti LaTeX, nes MS Word daugumai žmonių yra lengviau.

Geresnis SEO nenaudoti skaičiuoklių

Nežinau, ar tai tiesa, ir nenaudosiu kaip argumento, bet tai būtų logiška. Paieškos sistemos ieško atitinkamų duomenų. Žinoma, nors lentelės duomenys gali būti svarbūs, vartotojai retai ieško. Vartotojai ieško terminų, naudojamų puslapio pavadinime ar panašiose svarbiose vietose. Todėl būtų logiška išskirti lentelės turinį nuo filtravimo ir taip sumažinti apdorojimo laiką (ir išlaidas).

Lentelės lėčiau. Būtina pridėti papildomą kūno elementą. Tai šiuolaikinių interneto naršyklių žemės riešutai.

Papildomas elementas neturi nieko bendro su lėtomis lentelėmis. Kita vertus, lentelės išdėstymo algoritmas yra daug sudėtingesnis, naršyklė dažnai turi laukti, kol visa lentelė bus įkelta, kol ji galės pradėti turinio išdėstymą. Be to, išdėstymo talpyklų funkcija neveiks (CSS gali būti lengvai saugoma talpykloje). Visa tai jau minėta.

Parodykite man keletą bandymų, kuriuose naudojant lentelę žymiai sulėtėja puslapis.

Deja, neturiu kontrolės duomenų. Aš tai norėčiau domėtis, nes teisinga, kad šis argumentas neturi tam tikro mokslinio griežtumo.

Daugumai svetainių, kurias reikia atnaujinti, reikia naujo turinio (html). Scenarijai, kai nauja svetainės versija turi tik naują „css“ failą, nėra labai tikėtini.

Ne visai. Dirbau keliais atvejais, kai dizaino pakeitimai buvo supaprastinti atskiriant turinį ir dizainą. Dažnai jums vis tiek reikia keisti HTML kodą, tačiau pakeitimai visada bus daug riboti. Be to, kartais būtina keisti dizainą. Apsvarstykite pavyzdinius variklius, pvz., Naudojamus „WordPress“ tinklaraščių sistemoje. Lentelių išdėstymas tiesiog nužudytų šią sistemą. Dirbau panašioje komercinės programinės įrangos byloje. Galimybė keisti dizainą nekeičiant HTML kodo buvo vienas iš verslo reikalavimų.

Kitas dalykas. Lentelės išdėstymas palengvina automatizuotą svetainės analizę (ekrano girginimą). Tai gali atrodyti nereikšminga, nes galų gale kas tai daro? Buvau nustebęs. Ekrano grandiklis gali padėti, jei aptariama paslauga nesuteikia alternatyvos „WebService“ prieigai prie jos duomenų. Dirbu bioinformatikoje, kur tai yra liūdna realybė. Šiuolaikinės interneto technologijos ir WebServices nepasiekė daugumos kūrėjų, ir dažnai ekrano ekranavimas yra vienintelis būdas automatizuoti duomenų gavimo procesą. Nenuostabu, kad daugelis biologų vis dar atlieka tokias užduotis rankiniu būdu. Tūkstančiai duomenų rinkinių.

497
17 сент. Konrad Rudolph atsakymas 2008-09-17 19:23 '08 at 7:23 pm 2008-09-17 19:23

Čia mano programuotojas atsako iš simliar gijos

Semantika 101

Pirmiausia pažiūrėkite į šį kodą ir pagalvokite, kas čia neteisinga ...

Semantika 102

Dabar pritaikykite tai dokumento žymėjimui. Jei jūsų dokumente turi būti pateikti lentelės duomenys, atitinkama žyma bus <table> . Tačiau, jei perkeliate navigaciją į lentelę, neteisingai naudosite <table> elemento taikinį. Antruoju atveju nepateikiate lentelės duomenų - jūs (klaidingai) naudosite <table> elementą, kad pasiektumėte pateikimo tikslą.

Išvada

Lankytojai pastebės? Ne Ar turite bosą? Gal Ar kartais supjaustome kampus kaip programuotojus? Žinoma Bet ar mes turėtume? Ne Kas naudojasi semantiniu žymėjimu? Jūs - ir jūsų profesinė reputacija. Dabar eik ir atlikite teisingą dalyką.

290
17 сент. Atsakymą pateikė Carl Camera 17 sep. 2008-09-17 17:03 '08, 17:03, 2008-09-17 17:03

Akivaizdus atsakymas: žr. CSS Zen Garden . Jei man pasakysite, kad galite lengvai padaryti tą patį su lentelės išdėstymu (nepamirškite, kad HTML nekeičia), tada bet kuriuo atveju naudokite lentelės išdėstymui.

Kiti du svarbūs dalykai yra prieinamumas ir SEO.

Abi rūpinasi informacijos pateikimo tvarka. Jūs negalite lengvai įsivaizduoti savo navigacijos puslapio viršuje, jei jūsų lentelės išdėstymas jį pateikia antrojo antrojo įterptos lentelės eilutės ląstelėje puslapyje.

Taigi jūsų atsakymai yra palaikomumas, prieinamumas ir SEO.

Nebūkite tingus. Ką daryti teisingai ir teisingai, net jei jie yra šiek tiek sunkiau išmokti.

104
17 сент. atsakymas suteiktas 17 sep . 2008-09-17 16:33 '08 at 4:33 pm 2008-09-17 16:33

Žr. Šį dvigubą klausimą.

Vienas elementas, kurį pamiršote, yra prieinamumas. Lentelės išdėstymai taip pat nėra konvertuojami, jei, pavyzdžiui, turite naudoti ekrano skaitytuvą. O jei dirbate vyriausybėje, jums gali prireikti paramos turimoms naršyklėms, pvz., Ekrano skaitytuvams.

Taip pat manau, kad jūs nepakankamai įvertinate tam tikrų dalykų, kuriuos paminėjote klausime, įtaką. Pvz., Jei esate tiek kūrėjas, tiek programuotojas, jūs negalite išsamiai įvertinti, kaip gerai jis atskleidžia pristatymą nuo turinio. Bet kai tik pateksite į parduotuvę, kurioje yra du skirtingi vaidmenys, nauda tampa aiškesnė.

Jei žinote, ką darote ir turite gerų įrankių, CSS turi daug privalumų, palyginti su išdėstymais. Ir nors kiekvienas elementas savaime negali pateisinti lentelių atmetimo kartu, paprastai tai verta.

91
17 сент. Joel Coehoorn atsakymas rugsėjo 17 d 2008-09-17 16:23 '08 at 4:23 pm 2008-09-17 16:23

Deja, CSS Zen Garden nebegali būti naudojamas kaip geros HTML / CSS dizaino pavyzdys. Beveik visi jų naujausi dizainai naudoja sekcijos pavadinimo grafiką. Šie grafiniai failai nurodyti CSS.

Todėl interneto svetainė, kurios tikslas - parodyti, kad dizainas išlaiko turinį, dabar reguliariai siunčia NEKILNOJAMĄJĮ SIN, kad turinį įdėtų į dizainą. (Jei HTML failo sekcijos pavadinimas turėjo keistis, rodomas sekcijos pavadinimas nebus).

Tik tai rodo, kad net tie, kurie propaguoja griežtą DIV ir CSS religiją, negali laikytis savo taisyklių. Tai galite naudoti kaip gairę, kaip jūs juos laikote.

54
17 сент. James Curran atsakymas rugsėjo 17 d 2008-09-17 17:09 '08 at 17:09 2008-09-17 17:09

Tai nėra galutinis argumentas, bet su CSS galite naudoti tą patį žymėjimą ir keisti išdėstymą priklausomai nuo aplinkos, o tai yra geras pranašumas. Pavyzdžiui, spausdinimo puslapyje galite saugiai išjungti navigaciją nesukūrę, pavyzdžiui, puslapio, kurį norite spausdinti. Eik

48
17 сент. atsakymas suteikiamas tikslingai . 2008-09-17 16:23 '08 at 4:23 pm 2008-09-17 16:23

Viena lentelės lentelė nėra tokia bloga. Bet jūs negalite gauti reikiamo maketo tik vienu stalu. Netrukus jūs turite dvi ar tris lizdines lenteles. Ji tampa labai didelė.

  • Sunku skaityti. Tai nėra nuomonė. Jie turi daugiau įdėtų žymų be identifikavimo žymų.

  • Turinio atskyrimas nuo pristatymo yra geras, nes leidžia jums sutelkti dėmesį į tai, ką darote. Dviejų linijų maišymas sukelia ištinčius puslapius, kuriuos sunku skaityti.

  • „CSS“ stilių lentelėms leidžia naršyklės talpinti failus, o vėlesni prašymai yra daug greičiau. Tai yra didžiulis.

  • Stalai blokuoja jūsų dizainą. Žinoma, ne visiems reikia CSS Zen Garden lankstumo, bet niekada nedirbau toje vietoje, kur nereikėjo čia ir ten keisti dizaino. Tai yra daug paprastesnė su CSS.

  • Stalai yra sudėtingi. Jūs neturite daug lankstumo su jomis (t. Y. Vis tiek turite pridėti HTML atributus, kad galėtumėte visiškai valdyti lentelės stilius)

Nenaudojau ne lentelės duomenų lentelių, galbūt po 4 metų. Nematau atgal.

Aš tikrai norėčiau pasiūlyti skaityti Andy Budd CSS meistriškumą . Tai fantastiška.

„Ecx.images-amazon.com“ vaizdas http://ecx.images-amazon.com/images/I/41TH5NFKPEL._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg

45
17 сент. Ben Scheirman atsakymas rugsėjo 17 d 2008-09-17 18:36 '08, 18:36, 2008-09-17 18:36

Geras turinio atskyrimas nuo išdėstymo.
Bet tai yra klaidingas argumentas; Crishe mąstymas

Tai klaidingas argumentas, nes HTML lentelės yra išdėstymas! Turinys yra lentelės duomenys, pristatymas yra pati lentelė. Todėl kartais CSS suskaidymas su HTML gali būti labai sudėtingas. Jūs atskiriate turinį nuo pristatymo, atskirkite pristatymą nuo pristatymo! Įdėtų divų krūva nesiskiria nuo lentelės - tai tik dar vienas žymių rinkinys.

Kita problema, susijusi su HTML suskaidymu iš CSS, yra ta, kad jiems reikalingos intymios žinios apie viena kitą - jūs tikrai negalite jų visiškai atskirti. HTML žymos išdėstymas yra glaudžiai susijęs su CSS failu, nesvarbu, ką darote.

Manau, kad lentelės ir „divs“ atitinka jūsų paraiškos poreikius.

Programoje, kurią rengiame darbe, reikia puslapio išdėstymo, kur dalys bus dinamiškai paskirstytos pagal jų turinį. Kelias dienas praleidžiau bandydamas padaryti šią kryžminę naršyklę su CSS ir DIV, ir tai buvo pilnas košmaras. Mes persikėlėme į lenteles ir viskas ką tik dirbo.

Tačiau mes turime labai uždarą auditoriją mūsų gaminiui (parduodame įrangą su interneto sąsaja), o prieinamumo klausimai mums nėra problema. Nežinau, kodėl ekrano skaitytuvai negali gerai suprasti lentelių, bet manau, kad jei taip yra, tada kūrėjai turėtų tai padaryti.

36
17 сент. Atsakymas pateiktas 17 rugsėjo 17 d. 2008-09-17 16:47 '08 at 4:47 pm 2008-09-17 16:47

Įdomu, kas padarė „peržiūros šaltinį“ stackoverflow puslapiuose ~ ~

33
05 дек. Atsakymą pateikė Scott Evernden, gruodžio 5 d. 2017-12-05 02:25 '17 at 2:25 2017-12-05 02:25
25
05 дек. Benno Richters atsakymas, gruodžio 05 2017-12-05 02:25 '17 at 2:25 2017-12-05 02:25

CSS / DIV yra tik dizainerių berniukų darbas, ar ne. Šimtai valandų, kurias praleidžiau derinant DIV / CSS problemas, buvo ieškoma internete, norint gauti kai kuriuos žymėjimus, susijusius su neaiškia naršykle - tai veda mane beprotiškai. Jūs darote vieną nedidelį pokytį, o visas išdėstymas yra siaubingai neteisingas - kur jame yra logika. Tokiu būdu praleidžiant valandas 3 taškus, o tada kažką dar 2 pikselius į kitą, kad jie visi atitiktų. Dėl kažkokių priežasčių man atrodo neteisinga. Tiesiog todėl, kad esate puristas, ir kažkas „ne ką reikia padaryti“, nereiškia, kad turėtumėte jį naudoti n-ame laipsnyje ir bet kokiomis aplinkybėmis, ypač jei tai daro jūsų gyvenimą 1000 kartų lengviau.

Taigi, aš pagaliau nusprendžiau, tik komerciniais sumetimais, nors ir toliau naudojasi mažiausiu, jei tikiuosi, kad 20 valandų darbo tinkamai sukurs DIV, laikysiuosi prie stalo. Tai neteisinga, ji trikdo puristus, tačiau daugeliu atvejų ji kainuoja mažiau laiko ir yra pigiau valdyti. Tada aš galiu sutelkti dėmesį į paraišką dirbti kliento prašymu, o ne kaip puristams. Galų gale, jie moka sąskaitas, o mano argumentas vadovui, naudojančiam CSS / DIV, tik norėjau pabrėžti, kad klientai moka savo atlyginimą!

Vienintelė priežastis, kodėl kyla visi šie CSS / DIV argumentai, pirmiausia atsiranda dėl CSS trūkumo ir dėl to, kad naršyklės yra nesuderinamos tarpusavyje, ir jei būtų, pusė pasaulio interneto dizainerių neveiks.

Kai sukuriate >

Nesupraskite manęs, abu argumentai yra teisingi, tačiau prašome nekritikuoti kūrėjų, kad pasirinktų paprastesnį ir logiškesnį požiūrį į dizainą. Dažnai turime nerimauti dėl svarbesnių dalykų nei teisingas stalo panaudojimo per div.

Taškas atvejis - remiantis šia diskusija, aš konvertuojau keletą esamų tds ir trs į div. 45 minutės pasibjaurėjo su juo, stengdamiesi, kad viskas stovėtų vienas šalia kito, ir aš atsisakiau. TD vėl po 10 sekundžių - veikia - iš karto - visose naršyklėse nieko nereikia daryti. Prašome pabandyti suprasti mane - koks galimas pasiteisinimas, kad norėčiau tai padaryti bet kuriuo kitu būdu!

23
25 нояб. Atsakymą pateikė Tim Black lapkričio 25 d. 2010-11-25 17:25 '10, 17:25, 2010-11-25 17:25

Išdėstymas turėtų būti paprastas. Tai, kad yra straipsnių apie tai, kaip pasiekti dinaminį trijų stulpelių išdėstymą su antraštėmis ir poraštėmis CSS, rodo, kad tai yra bloga išdėstymo sistema. Конечно, вы можете заставить его работать, но есть буквально сотни статей в Интернете о том, как это сделать. Таких статей почти нет для аналогичного макета с таблицами, потому что это явно очевидно. Независимо от того, что вы говорите против таблиц и в пользу CSS, этот факт отменяет все: базовое расположение трех столбцов в CSS часто называется "Святой Грааль".