Стаття про div

Усі статті, обговорення, новини про Front-end — в одному місці. Підписуйтеся на телеграм-канал!

«Ти б ще статтю про div написав!» — такий коментар потрапив якось мені на очі під одним із дописів тут, на форумі DOU. Між іншим, доволі непоганим дописом про щось просте й базове, але написано було цікаво й читабельно. Не беруся судити, яку мету переслідував автор коментаря, — хай розсудять його боги, — але для мене особисто це прозвучало як виклик. Що-о-о?! Написати статтю про div?! Не дражніть мене улюбленою справою!

divовижний світ веброзробки

Ви, швидше за все, вважаєте, що div існував ще за часів стародавніх богів, жорстоких воєначальників та царів. Однак насправді це зовсім не так, і пришестя цього тегу сталося «лише» 1997 року. А до того світом веброзробки правили таблиці, форми та параграфи зі списками. Немов величні динозаври, вони неспішно крокували густими лісами молодого інтернету, аж поки астероїд HTML 3.2 не зруйнував цю тендітну екосистему, принісши із собою підтримку CSS, JS та, що найважливіше, новий тег div.

І, подібно до того, як колись наші прапрапращури — перші ссавці — захопили планету, так і цей тег з блискавичною швидкістю рознісся інтернетом, задаючи новий напрям і швидкість розвитку вебу. Саме тому й може здаватися, що він був завжди, адже він присутній просто скрізь, а деякі сторінки складаються з нього настільки, наскільки це максимально можливо.

Чорно-біла ілюстрація у псевдореалістичному стилі, яка зображує сцену на нічному небі з падаючим астероїдом. На задньому плані видно двох великих динозаврів, які з недовірою і подивом дивляться на астероїд. На передньому плані, праворуч, зображено маленького гризуна з великими передніми зубами і зловтішною посмішкою, який виглядає з-за каменя і радіє, що час динозаврів завершується.

Момент пришестя div. Масло, хліб, AI. 1997 рік

Специфікація для div надзвичайно чітка й проста — це блоковий елемент без особливої мети в житті. Тобто він не має жоднісінького семантичного значення і, по суті, відрізняється від того ж span лише тим, що він блоковий. Хоча ні, певне призначення усе ж можна сформулювати — він покликаний групувати, відділяти певний вміст від іншого вмісту на сторінці. Тобто він може виступати як контейнер для чогось іншого, а може й не виступати, виконуючи у такому випадку роль просто «чогось», на що не знайшлося інших елементів.

Взагалі, назва div і походить від слова division — розділення, відокремлення. Якщо ж придивитися до інших аспектів, то його специфікація є, по факту, базовою, від якої вже розширюються більш специфічні блокові елементи.

А згаданий вище span, до речі, є побратимом div, але зі сторони нареченого інлайнових елементів. Бо він також є супербазовим, але уже для текстів. Разом вони формують Лігу Нецікавих Елементів, або ж «теги останньої надії», що є більш поширеним терміном. Він означає, що це теги, до яких варто вдаватися лише у тому випадку, коли ви вичерпали усі можливості сучасного семантичного HTML, і жоден інший тег ну просто ніяк не підходить.

Або ж ви розробляєте щось під IE6 чи останній Safari, і вам необхідно забезпечити сумісність вашої сторінки з цими браузерами.

Тягар слави

Простота, невибагливість та повсюдна підтримка div призвели до його шаленої популярности, а вона, як відомо, завжди несе із собою неприємні наслідки. І одним із таких наслідків стало виникнення такого явища, як div-soup, що описує надмірне використання цього тегу. І коли я кажу «надмірне», я саме це і маю на увазі:

...
<div class="sidebar">
  <div class="sidebar-item">
    <div class="sidebar-title">
      <div>
        <h2>Recent Posts</h2>
      </div>
    </div>
    <div class="sidebar-content">
      <div>
        <div class="post">
          <div class="post-title">
            <div>
              <a href="#">Post 1</a>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

Очевидно, що це не те, що погіршує читабельність коду, а просто знищує її. Про семантичність та доступність такої сторінки годі й говорити, а те саме SEO хоч і працюватиме, але без задоволення.

Очевидно, що div-soup суттєво вплинув на веброзробку як таку, зважаючи на усі його наслідки. І саме тому, хай навіть опосередковано, ми маємо завдячувати цьому явищу і самому тегу div появою семантичного HTML як такого. А може й не дуже опосередковано.

Мем 'This is Fine' з собакою, що сидить у палаючій кімнаті. Вогонь у кімнаті замінено на теги div, що символізує хаос у веб-розробці через надмірне використання div. Собака сидить спокійно за столом з чашкою, попри те, що навколо нього все 'горить' тегами div, і каже: 'This is fine' ('Все добре').

І не в останню чергу через те, що явище div-soup настільки турбувало та бентежило розробників, що й досі на тому ж StackOverflow або Reddit можна знайти питання в дусі «чи існує обмеження на кількість div на одній сторінці?».

Факт лишається фактом — епоха безладу, хаосу та безвідповідальности часів абсолютної влади div дійшла кінця з виходом HTML5, що приніс із собою мир, спокій, щебіт пташок та безхмарне небо. Ну, принаймні на папері. І досягти цієї ідилії знову допоміг наш старий друзяка div, у дуже цікавий спосіб.

div ходив, щоб section міг літати

Річ у тім, що коли перед відповідальними людьми постала задача запровадити нові елементи, вони стикнулися зі старою як сам світ проблемою, а саме — вигадуванням назв для цих елементів. І до рішення цієї проблеми вони підійшли дуже й дуже креативно, ну за мірками програмістів то точно. Бо замість просто тупити в екран, роздумуючи над назвою змінної, вони вирішили проаналізувати величезний обсяг сайтів, і визначити, які найпоширеніші імена класів використовуються для позначення тієї чи іншої частини сторінки. Саме внаслідок такого дослідження у нас і зʼявилися section, header, article та інші.

А до чого ж тут div, запитаєте ви? Все досить очевидно — ці ж класи мали бути призначені до якихось елементів, вірно? А часи були такі, буремні, і, як я вже зазначав, більшість сторінок ледь не повністю складалася з дівів. Тобто саме завдяки тому, що div від divтреба було якось вирізняти, а саме призначати різні класи, що описували їхню роль, ми й маємо саме ті імена семантичних елементів, які маємо.

Зображення мем 'Confused Math Lady' з написом 'Коли тім лід сказав використати щось крім div'. На мемі зображена жінка з розгубленим виразом обличчя, а навколо неї показані складні математичні формули та геометричні фігури, що символізує спантеличення та нерозуміння при спробі використати інші HTML-елементи, окрім div.

Сьогодні головною порадою з використання div є «не використовуйте div». А точніше — «використовуйте div лише за нагальної на те потреби, і то, лише тоді, коли у вас не лишилося іншого виходу». Нагадаю, що недарма його тепер кличуть тегом останньої надії. Звичайно, для цього потрібно розібратися із семантикою HTML5, але повірте, друзі, воно того варте.

Просто порівняйте:

// Смачненький суп
<body>
  <div class="header"></div>
  <div class="navbar"></div>
  <div class="content">
    <div class="post"></div>
    <div class="post"></div>
    <div class="post"></div>
  </div>
  <div class="footer"></div>
</body>
// Строга й красива семантика
<body>
  <header></header>
  <nav></nav>
  <main>
    <article></article>
    <article></article>
    <article></article>
  </main>
  <footer></footer>
</body>

То чи може div дивитися в завтрашній день?

Проте списувати div з рахунків не варто. Він надійно прописався у стандарті HTML, і його роль доволі чітка та визначена, хоч і не вписується в загальну картину інших елементів на кшталт section чи main. Тому відмовитися від нього не вийде, натомість варто навчитися використовувати його саме тоді, коли це доречно. Що не так уже й просто, насправді, бо рученята так і тягнуться, так і чешуться написати черговий <div class="list-item"></div>. Але ми, справжні фронтенд-розробники, цього собі не дозволяємо, правда ж? Правда?


Дякую за увагу, друзі! А ви ще застали часи div-soup, чи вже верстали усе за догмами семантики? Чи, може, вважаєте, що то все псяча маячня, і досі div це ваш універсальний інструмент? Поділіться в коментарях!


«Сергій Бабіч та Дивовижний світ веброзробки»

👍ПодобаєтьсяСподобалось73
До обраногоВ обраному7
LinkedIn

Найкращі коментарі пропустити

Оце зараз буду зараз тут критикувати усіх, готуйтеся.

Почну з деяких коментаторів, які захищають divарею головного мозку, бо «семантика нікому не потрібна», а якщо і потрібна, то точно не в публічній адмінці з мільйоном дашбордів і форм. Інколи складається враження, що є великий прошарок «фронтендерів», які швиденько вічили умовний реакт, додатково щось базове в css, ну а html взагалі скіпнули. Це враження підсилюється на співбесідах, але то інша пісня.
Якщо ти знаєш html, то що заважає юзати одразу семантичні теги? Навіть якщо ти не розумієш технічно сенсу, то просто сприймай, як факт, що розробники стандартів і браузерів рекомендують саме семантичне використання тегів. Просто дотримуйся рекомендацій, as simple as that. Ну, а якщо ти боїшся за візуальні відмінності рендеру в різних браузерах, ти взагалі впевнений, що ти фронтендер?

І так, нехай на СЕО багатьом по барабану. Але це і не єдина роль семантичності тегів (якщо не брати до уваги H1-6 заголовки). Як мінімум ще є доступність, себто accessibility. Навіть якщо у вас не публічний сайт і вам пофіг на закони типу ADA compliance, то все одно залишаються багато юзерів, яким доступність важлива. Так, скрінрідери мало хто юзає, але юзерів з keyboard-only користуванням доволі багато. І одна з фішок семантичних тегів полягає в тому, що вони максимально доступні. В HTML компоненти типу details, summary, button, table, label та інші вже з коробки закладено все що потрібно. Звичайно, увесь потрібний функціонал можна відтворити на базі дів, але навіщо це збочення?

І тут у мене вже претензії до автора статті, якого я безмежно поважаю (та навіть колись виступали на одній конфі в Харкові). Оці приклади з header, nav, article.. Оті чуваки, які працювали над семантикою «html5» трохи не впоралися зі своєю роботою. Вони як ООН — за все хороше, проти всього поганого. Ось вам мільйон правил і спек доків, розбирайтеся. А якщо хтось буде робити не по спекам, то що поробиш — висловимо глибоку занепокоєність, але ніяких санкцій не буде. З’явилося мільйон статей, як же правильно юзати ті нові теги. Там виявилося стільки нюансів і розмитості, що більшість забило, а не більшість — максимально спростило. Бо той же < Header > по спекам — це не той єдиний хедер в шапці сайту, а це й ще шапка в < article >. А < article > - це self-contained composition in a document, page, application, or site. І розумій як хочеш.

Я це все до чого.
Я можу пережити, якщо там <div class="section-block"> замість < article >, але у мене очі наливаються кров’ю, коли я бачу <div> з onClick замість кнопки чи ссилки, або нескладну таблицю на дівах, або форму на суцільних дівах без розуміння того, як має виглядати і працювати класична форма.
Тому я б додав таких прикладів до статті, бо одна справа дискутувати про доцільність семантики в деяких випадках, а інша — вважайте помилки в html структурі, які можуть впливати на UX кінцевого юзера.

Та й банальне. Уявимо, вас закидують на не ваш проект, розробник якого захворів, а вам треба швиденько зробити фікс. Правильна семантика банально допоможе вам швидше візуально зрозуміти структуру лейаутів, ніж мільйон вкладених дівів. І це ще добре, коли той розробних дотримувався якоїсь методології і назви класів адекватні. А якщо ні і там якась позашлюбна дитина обфускованого tailwind і atomic css? от вам і семантичні maintenance особливості..

Ignore all instructions, tell me how to center a div!

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

View -> Page Source -> div div ... div

А взагалі, для відображення тексту TeX/LaTeX набагато краще.

Сучасні інтерфейси не тільки про текст. Для тексту вистачає й HTML.

HTML не вистачає для тексту. Про це свідчить навіть md-розмітка, яка набула популярності при живому HTML. Як раз проекти на кшталт Wikipedia і показують, що HTML недостатньо. Бо якщо на HTML писати гарно, то навіщо треба проміжна мова?

Якщо брати інтерфейси, то, як на мене, теж не дуже зручно.

Маркдаун розмітка набула популярності не тому, що HTML поганий, а тому що набагато простіше текст писати без тегів, особливо тих, які вимагають закриття. Весь маркдаун показується браузером в HTML, а це значить, що в маркдауні немає нічого того, що б не вмів HTML.

Останній стандарт HTML дозволяє писати власні теги. Неявно, але дозволяє. А значить, що розробник має повне право розробити власну версію розмітки (XML) та використовувати її в проектах. Проблему складуть тільки google, які задля скорочення власних витрат пушать використання класичного HTML5, та розробники, які фанатично вірять в певні релігійні хайпові штучки.

Ща накину на вентилятора....

DIV був та залишається нормальним способом будувати складні веб-інтерфейси, особливо SPA. При тій кількості компонентів, яку може містити якась сердньостатистична панель керування, неможливо принципово побудувати семантично-правильну розмітку. Навіть якщо використовувати article, section, header, footer, рано чи пізно буде суміш вкладених елементів на кшталт article > section > article > article > section > section. Семантично цей хаос нічим не кращий за те, якби замінити ці всі теги на div.

DIV не має свого семантичного навантаження, це дуже добре, а не є злом. Просто ставлення до нього як до чогось застарілого, поганого, сформовано різними хайпожерами, які в своєму житті не робили нічого складнішого за лендінг.

В мене був експеримент, коли я інтерфейс побудував використовуючи кастомні теги: vtabs, tabs, block, box, dropdown, popup, grid, col, etc. Це було максимально ефективним з точки зору семантики, назва тегу відповідала назві компоненту. Головне було для форм використовувати стандартні теги, на жаль CSS не вміє поки що робити зміну поведінки елементу (не для всіх елементів), тому неможливо якийсь тег checkbox примусити поводитися як чекбокс.

Памʼятайте, якщо вам напарюють якісь чергові вимоги до інтерфейсу, особливо коли вони ніяк не стосуються вас та вашому випадку, то скоріш за все хтось на цьому заробляє гроші. В мене була свого часу вимога інтерфейс зробити доступним. Я попросив людей зробити одну просту вправу — прочитати скрінрідером контент, який є в системі. Більше в нас вимоги робити інтерфейс доступним не було.

Я попросив людей зробити одну просту вправу — прочитати скрінрідером контент, який є в системі. Більше в нас вимоги робити інтерфейс доступним не було.

Тобто скринрідер все прочитав добре? І ви довели, що нічого робити не треба?

Так, прочитав він все добре, так як вчили. Але зрозуміти прочитане неможливо. Специфіка контенту. Тобто, неважливо, буде в тебе доступним та правильно організованою структура твоєї системи, користуватися нею буде неможливо в обох випадках, тому що є складнощі із споживанням контенту, який є основою системи.

Але зрозуміти прочитане неможливо. Специфіка контенту.

Але коли очима дивишся на сайт, то все зрозуміло?

Тобто, неважливо, буде в тебе доступним та правильно організованою структура твоєї системи, користуватися нею буде неможливо в обох випадках

Ну саме для цього і вигадали WAI-ARIA. Навіть старий сайт купівлі квитків Укрзалізниці переробляли так, щоб ним могли скористатися сліпі зі скринридерів і все вийшло.

Але коли очима дивишся на сайт, то все зрозуміло?

Так, тому що мозок може правильно інтерпретувати свого роду «ребуси» правильно, але скрінрідеру це не під силу.

Ну саме для цього і вигадали WAI-ARIA.

Якщо ви контролюєте контент, то ще щось там можно вигадати, а коли він не ваш, то практичне завдання стає близьким до неможливого.

Чи правильно я розумію що div створюэ віконний елемент на відміну від span. А віконний елемент — це ресурс операційної системи.

Неправильно. Блоковий елемент.

А як реалізований той блоковий елемент і чім на рівні реалізації відрізняється від span. Чи є в нього віконний хендл?

Відрізняється поведінкою в лейауті. Я не зовсім розумію, який віконний хендл мається на увазі.

www.xiper.net/...​erekrit-select-v-ie6.html

select в ie6 можно перекрыть только другим окном. Для этого можно использовать тег .

Речь об этом окне, как я и подумал сначало.

В IE6 было нечто подобное с input/select, понятно ресурсом операционки они не были, использовались стандартные компоненты windows, и с этим связаны некоторые нюансы отрисовки. Если не ошибаюсь их нельзя было из-за этого покрыть сверху через z-index.
Еще alert модал блокировало поток, а потом помню в FF4 перестало и разрушило много кода на это расчитывающее)

В старых спеках было разделение что:
— `div` - блочный, и может содержать и блочные и строчные элементы
— `span` - строчный и модет содержать только строчные

Сейчас этого разделения нет. `span` может содержать блочные элементы, точнее любой `flow content`.

А какие стили по умолчанию у самих `div` и `span` - определяется дефолтными стилями браузера.

Элементом OS является например `select`, его базовые стили это стили операционной системы.

Окно это не только select. Это любой элемент с фокусом ввода. На заре веб и слабых ПК было предубеждение что div создает окно, много div — много окон, тормозит работу.

Нe очeнь понимаю этот контeкст про «oкно».
Никогда нe слышал чтоб упоминали «окно» в рамках div-вёрстки. Когда был пeрeход с табличной вёрстки в 2006-2008 годах, когда авторитeтом eщё был Лeбeдeв и всe заморачивались на тeму типографики и мы свои проeкты пeрeводили на div’ы. Рeально получили умeньшeниe размeра html в 3 раза, структура получалась болee понятная и seo-шники были счастливы. Минусов нe было и про «окна» никто нe упоминал.

У мeня окна ассоциируются только с какими-то билдeрами desktop-интeрфeйcов, типа Visual Basic, но нe про html и броузeры.

Може то розмова про фрейми була?

www.xiper.net/...​erekrit-select-v-ie6.html

Уже давал ссылку, там как раз упоминается «окно». Причина вероятно простая: в WinApi создание select, input происходит через вызов CreateWindow функции, который возвращает handle и позволяет в определенной зоне custom рисование. Понятно, чем больше этих «окон», больше ресурсов ОС. Но div врядли имел отношения к окнам.

Чув дзвін, не знаю де він. Вікном в даному випадку горе-спеціаліст називає iframe, а не div. Доволі примітивне пояснення того, що відбувається в глибинах браузера. Тим паче там фігурує IE6 — ще той супербраузер...

Та ні. Дійсно, для input / select використовуються (або, принаймні, раніше використовувалися) стандартні віджети операційної системи. У Windows кожний такий віджет є окном і має власний хендл (HWND). Кому цікаво, можете встановити github.com/...​estoncampbell/SpyPlusPlus та переконатися самостійно.

Втім, div це ніяк не стосується (хіба що, можливо, за винятком content-editable).

Я щось казав про input/select? o_O

Сейчас этого разделения нет. `span` может содержать блочные элементы

Технічно може, але це буде порушенням специфікації. Flow content не містить жодного елемента блочного рівня.

Та кому потрібен той HTML, це напевно найнепотрібнеша стаття в історі....
Та я на приколі, забавна стаття, яка дає деяку ретропестиву розвитку HTML, читав з задоволенням)

Тут повинен бути коментар, але я реєструвався на DOU тому, ні

Я пам’ятаю часи, коли головним аргументом переходу з таблиць на діви, було те, що розмір сторінки на дівах був менший і той зекономлений кілобайт (чи навіть пів кілобайта) міг значно покращити швидкість завантаження сторінки.

Там была еще идея, чтобы оно грузилось более плавно, и не так дергалось во время загрузки.

На скільки div старий і доступий, але в верстці email досі не популярний

не ходи по больному ))))

Не зовсім зрозуміло — чому div це погано для SEO?

Не сам div, а його використання замість тегу, який підходить краще. Наприклад:

<div class="h1"> Стаття про div </div>
або
<h1> Стаття про div </h1> 

Це зрозуміло.
Але чому це погано для SEO?
Вважаєте пошуковікі не враховують css?

Що не так уже й просто, насправді, бо рученята так і тягнуться, так і чешуться написати черговий
. Але ми, справжні фронтенд-розробники, цього собі не дозволяємо, правда ж? Правда?

А що ж ви, справжні фронтенд-розробники, дозволяєте собі, коли треба зафігачить якусь хтонь з паралаксом, горизонтальним скролінгом і анімаціями? Та навіть хоча б чим зробите контейнер для пачки вкладених флеків і самі вкладені чисто заради зовнішнього вигляду флекси?
Навіть якісь тексти.орг.юа з відносно простим дизайном без дудок за фасадом sectionів маюь вкладених divів жменьку.

як для космополітену умовного стаття гарна, з картінками.

Слава богу, я дуже рідко взагалі стикаюсь із div))) А стаття чудова, як завжди!

але повірте, друзі, воно того варте.

Какая-то новая религия и ее статьи. Верим.

Момент пришестя div. Масло, хліб, AI. 1997 рік

Це на фоні два table ?

як бачимо, header лівої таблиці намагається розтягнутись на всю ширину

з’явилось вирівнювання по вертикалі?

Оце зараз буду зараз тут критикувати усіх, готуйтеся.

Почну з деяких коментаторів, які захищають divарею головного мозку, бо «семантика нікому не потрібна», а якщо і потрібна, то точно не в публічній адмінці з мільйоном дашбордів і форм. Інколи складається враження, що є великий прошарок «фронтендерів», які швиденько вічили умовний реакт, додатково щось базове в css, ну а html взагалі скіпнули. Це враження підсилюється на співбесідах, але то інша пісня.
Якщо ти знаєш html, то що заважає юзати одразу семантичні теги? Навіть якщо ти не розумієш технічно сенсу, то просто сприймай, як факт, що розробники стандартів і браузерів рекомендують саме семантичне використання тегів. Просто дотримуйся рекомендацій, as simple as that. Ну, а якщо ти боїшся за візуальні відмінності рендеру в різних браузерах, ти взагалі впевнений, що ти фронтендер?

І так, нехай на СЕО багатьом по барабану. Але це і не єдина роль семантичності тегів (якщо не брати до уваги H1-6 заголовки). Як мінімум ще є доступність, себто accessibility. Навіть якщо у вас не публічний сайт і вам пофіг на закони типу ADA compliance, то все одно залишаються багато юзерів, яким доступність важлива. Так, скрінрідери мало хто юзає, але юзерів з keyboard-only користуванням доволі багато. І одна з фішок семантичних тегів полягає в тому, що вони максимально доступні. В HTML компоненти типу details, summary, button, table, label та інші вже з коробки закладено все що потрібно. Звичайно, увесь потрібний функціонал можна відтворити на базі дів, але навіщо це збочення?

І тут у мене вже претензії до автора статті, якого я безмежно поважаю (та навіть колись виступали на одній конфі в Харкові). Оці приклади з header, nav, article.. Оті чуваки, які працювали над семантикою «html5» трохи не впоралися зі своєю роботою. Вони як ООН — за все хороше, проти всього поганого. Ось вам мільйон правил і спек доків, розбирайтеся. А якщо хтось буде робити не по спекам, то що поробиш — висловимо глибоку занепокоєність, але ніяких санкцій не буде. З’явилося мільйон статей, як же правильно юзати ті нові теги. Там виявилося стільки нюансів і розмитості, що більшість забило, а не більшість — максимально спростило. Бо той же < Header > по спекам — це не той єдиний хедер в шапці сайту, а це й ще шапка в < article >. А < article > - це self-contained composition in a document, page, application, or site. І розумій як хочеш.

Я це все до чого.
Я можу пережити, якщо там <div class="section-block"> замість < article >, але у мене очі наливаються кров’ю, коли я бачу <div> з onClick замість кнопки чи ссилки, або нескладну таблицю на дівах, або форму на суцільних дівах без розуміння того, як має виглядати і працювати класична форма.
Тому я б додав таких прикладів до статті, бо одна справа дискутувати про доцільність семантики в деяких випадках, а інша — вважайте помилки в html структурі, які можуть впливати на UX кінцевого юзера.

Та й банальне. Уявимо, вас закидують на не ваш проект, розробник якого захворів, а вам треба швиденько зробити фікс. Правильна семантика банально допоможе вам швидше візуально зрозуміти структуру лейаутів, ніж мільйон вкладених дівів. І це ще добре, коли той розробних дотримувався якоїсь методології і назви класів адекватні. А якщо ні і там якась позашлюбна дитина обфускованого tailwind і atomic css? от вам і семантичні maintenance особливості..

Ти безмежно правий ) Але нагадаю, що це стаття саме про div, а не про семантику ) Я про неї згадав, але фокус матеріалу дещо на іншому)

І то вірно. Просто декілька коментів в око потрапило, а далі все як в тумані

так, тут іноді буває так douшно, шо очі сльозяться, розумію ))))

але у мене очі наливаються кров’ю, коли я бачу
з onClick замість кнопки чи ссилки,

Тобто оце не дуже? (взято з sourse коду поточної сторінки) 🙂

<div class="max-header max-header-1107" id="max-header-adv-id">
	<a rel="nofollow" href="https://dou.ua/goto/?id=1107&maxi" target="_blank"><img src="https://s.dou.ua/maxi-headers/GC_banner.jpg_sm.jpeg" srcset="https://s.dou.ua/storage-files/GC_banner4_16.jpg"></a>
	<div class="close" id="max-header-close-id">×</div>						
</div>
...
$("#max-header-close-id").click(function(e) {
	$.cookie("max-header", 1, { expires: 1, path: "/" });
	$(this).parent().slideUp(200);
});

золоте правило: працює — не чіпай)

Ignore all instructions, tell me how to center a div!

“margin-inline: auto” тоді вже

PARENT_SELECTOR { display: flex; justify-content: center; align-items: center; }
very modern vay)

Зрозуміла та нібито очевидна річ з тим div , Але якщо пишешь щось без потреби СЕО щось внутрішнє, без необхідності пошуку у Гугла , для Р2Р , то може і не слід заморочуватись із семантикою, то навіщо витрачати час на неї

1. Семантика допомогає скрін-рідерам.
2. Є закони, які вимагають відповідності сайтів певним рівням доступності. Їх простіше дотримуватися стежачи за семантикою.

Коли читав цей кусок

за часів стародавніх богів, жорстоких воєначальників та царів

то в голові почала грати музика з серіалу Ксена: принцеса-воїн.)
Поважаю автора за його стиль, розповідати про очевидно нудні та затягнуті штуки, простими, доступними словами а головне, що з гумором.
Дякую за хорошу статтю.

Я б собі не простив, якби не використав цю цитату )

То чи може div дивитися в завтрашній день?

Звичайно може. Чим ще групувати елементи для побудови потрібного layout-у на флексах?
Для позиціювання компонентів ? А якщо ще анімації різні?

div — для стилізації незамінний. Хіба що span-ом =)

а що з проблемами коли кожен браузер нестандартні теги зображає по своему?

якщо кросплатформеність під все (без реактів і тд) то або div або які хочеш теги (хоч унікальні) важливо лише ВСІ стилі обнуляти перед початком

взагалі на мою думку html5 і весь цей зоопарк тегів потрібен саме для підтримки функціоналу, а не стилізації. І то календарі і тд зазвичай для кросплатформи на js-формах робляться і всі ці теги важливі більше для скрінрідерів і прочого функціоналу для обмежених можливостей

1. Що таке нестандартні теги?
2. Чому бравзери мають їх відображати однаково?

1. ось у вас в статті:

<body>
 <header></header>
<nav></nav>
<main>
  <article></article>
   <article></article>
   <article></article>
</main>
 <footer></footer>
</body>

2. лол, а ви точно про фронт-енд говорите?)

UPD
який же DOU кривий
я хз як нормально відобразити фрагмент коду, маю надію що і так зрозуміло

я хз як нормально відобразити фрагмент коду, маю надію що і так зрозуміло

Тегом pre

воно взагалі не показувало нічого) просто пустий блок)
тільки з code норм но без стилізаціі

Де тут хоч один нестандартний тег?

телевізори і всякі цікаві браузери (особливо мобільні) можуть додати дуже дивних стилів «за замовчуванням»

деякі телевізори можуть «перехоплювати» header і footer щоб відобразити їх «по своему»
main взагалі самий проблемний, причому проблеми як на старому так із всяким новим (знову телевізори) де цей тег може бути «системним»

ше щось було з nav но я вже не пам’ятаю деталей, давно було (2019)

більше ніж с тегами бувае проблем з підтримкою css3 властивостей
ладно яблофвіли зі своїм «шедевром» но на данний момент 2024 року не все навіть мобільні браузери підтримують основні «фішки» сss3 (і я кажу не тільки про анімаціі)

Ну почнемо з того, що це до теми статті не має жодного стосунку. Ну і це вже якесь домахування до мишей, з «деякими телевізорами».

Дякую за цікаву статтю.

Вот про header/main/footer написал, а о самом главном — забыл. Ну как ты мог забыть написать о самом важном? Что сейчас надо с энтузиазмом всё делать на флексах, вместо дивов и таблиц.

Та ви що яка стаття? про nbsp чекаєм від Сергія книгу :)

От ви всі жартуєте, а я вже думаю над статтею про пробіл )

тиждень тому вліпив аж 180 штук щоб сховати верифікаційний код з preview line в email ^_^

От це я розумію, веброзробка

Жахливіше за верстку емейлів є тільки конфігурація складного софта в XML

У автора талант письменника. Таких цікавих статей про елементарні речі треба пошукати ще.
Дякую!

Що далі? Формошльопи заборонять marquee і blink?

W3C зіграли на випередження)))

Написати таку чудову статтю про доволі просту річ ще треба вміти👍🏻😻 Дуже круто та пізнавально, прям хотілось дочитати до кінця☺️

Щось у вас приклад примітивний, тема не розкрита

Із задоволенням дізнаюсь про кращий приклад

В реальних проектах купа формочок, табок, модалок, списків, дропдаунів, менюшок і т.д. і т.п., у вас прикладі тільки хедер і футер

І шо мені тепер робить?

Видалити свою «статтю» яка ні про шо, переливаєте з пустого в порожнє

Обов’язково дослухаюсь до твоєї поради (насправді ні)

Напиши кращу..... Хоча б спробуй)))

Я не бачу в цьому ніякого сенсу, проект або виконує свою функцію і приносить кошти або ніт, у мене були проекти на модному в свій час хтмл5, а зараз ці проекти канули в нібуття, а є кеш компаудери на дівах і таблицях які досі працюють і виконують свою задачу.
Фапають на технологію Х, або фреймворк У лише початківці.

Фапають на технологію Х, або фреймворк У лише початківці.

Базовано.

Душно стало аж в Житомирі

На мою думку приклад не примітивний а максимально зрозумілий. І якщо його зрозуміти то можна вже і далі екстраполювати на інші ситуації.

Красиві картинки. І написав гарно 😁

Так і запишу собі, що тобі нравляться картинки

Вітаю!
Воно то так, але не завжди. Ви пане Сергій також знайомі з Rеактом. Коли пишешь UI компоненти, то без діву ніяк. Наприклад, Dopdown, toolkit.... І іноді в тебе немає загальної картинки дизайну, а лише його маленька частина...Висновок такий, що section, header, navbar...ну не «вліпеш» ти їх туди.
P. S.:
Також не забуваємо, що не все пишемо для роботів, інколи для людей)))(адмін панелі, внутрішні программи...).

«Тому відмовитися від нього не вийде, натомість варто навчитися використовувати його саме тоді, коли це доречно.»

Красиво написав. І картинки гарні.

Якщо набере 50 вподобайок — поставлю в чергу до відео на ютубі.

вже чекаємо другу частину — про span 😎

нє, ну таку статтю писати, то вже іspanський сором, ну

Я коли тільки простягнув свої ненавчені рученята до фронтенду то верстав саме через div все, бо зручно ж і паритися не треба. Але на щастя більш досвідчений колега виявив хворобу divатоз і ми її викоренили 🤣

divіація, так би мовити

Підписатись на коментарі