Иногда в xhtml мы пишем suppose <table border="1">, а затем снова в css мы пишем table{ border:2px solid black}. Я не понимаю, когда что писать. Когда использовать атрибуты, а когда использовать CSS. Иногда они сбиваются с толку.

4
raiyan106 16 Июл 2014 в 00:47
2
Относительно атрибута border: Do not use this attribute, as it has been deprecated: the <table> element should be styled using CSS. developer.mozilla.org/en-US/docs/Web/HTML/Element/…
 – 
showdev
16 Июл 2014 в 00:49
Ну это был просто пример. Еще один — Cellspacing и CellPading. Иногда он объявляется как атрибут, а иногда в css. Это сбивает с толку.
 – 
raiyan106
16 Июл 2014 в 00:50
2
То же самое касается cellpadding и cellspacing: developer.mozilla.org/en-US/docs/Web/HTML/Element/…
 – 
showdev
16 Июл 2014 в 00:55
3
- Вот почему вы никогда не должны обращать внимание на то, что говорит w3schools. Это часто неправильно. И никак не связан с W3C.
 – 
Alohci
16 Июл 2014 в 01:07
2
... никогда не доверяйте w3schools в правильности фактов. перейти к самому документу. Даже если на сайте исправлены некоторые проблемы, он все равно не так надежен, как сама документация, и никоим образом не является веским аргументом против документации.
 – 
Brett Weber
16 Июл 2014 в 01:07

4 ответа

Лучший ответ

Хотя атрибут границы не устарел, тогда как < a href = "http://www.w3.org/TR/html4/struct/tables.html#adef-align-TABLE" rel = "nofollow"> атрибут align - (чтобы осветить статус атрибута в соответствии с рекомендацией HTML4), обычно рекомендуется не помещать эти атрибуты в разметку.

Я не могу найти ссылку на эти атрибуты при просмотре таблицы XHTML. документация, поэтому я полагаю, что это неприемлемо.

Вместо рассматриваемых атрибутов использование CSS исключает смешивание содержимого и стиля. Кажется, что XHTML полностью ориентирован на контент, а не на стили, поэтому я должен сказать, что, хотя это приемлемо, это не лучший способ использовать атрибуты вместо CSS во внешней таблице стилей.

Один случай, когда я мог видеть использование атрибутов вместо css, - это разработка html-письма, поскольку большинство почтовых клиентов удаляют css, если он не объявлен встроенным с использованием атрибута style. В этом случае может быть проще использовать отдельные атрибуты, чем вставлять все правила в атрибут стиля.


ОБНОВИТЬ

Из-за информации, предоставленной в комментарии другого пользователя, я вижу, что спецификация XHTML, на которую я смотрел, устарела. Современный XHTML распознает и поддержка атрибутов, таких как граница. Приведенная ссылка представляет собой объяснение различий между html и xhtml в качестве введения в предмет. Хорошая вещь. Я ссылаюсь на следующий комментарий:

Когда вы обсуждаете документацию XHTML, вы имеете в виду прерванную спецификацию XHTML 2. Современный XHTML - это XHTML5, который имеет те же правила модели атрибутов и содержимого, что и обычный HTML5, только с другим синтаксисом. Авторы XHTML 2 намеревались удалить всю грязь, накопившуюся на HTML за эти годы, и поэтому использовали очень пуристический подход. Авторы HTML5 заняли гораздо более прагматичную позицию, признали некоторые странные особенности, такие как border = "1", на самом деле полезными, и разрешили их для этих узких ситуаций.

2
Brett Weber 16 Июл 2014 в 19:40
Когда вы обсуждаете документацию XHTML, вы имеете в виду прерванную спецификацию XHTML 2. Современный XHTML — это XHTML5. , который имеет те же правила атрибутов и модели контента, что и обычный HTML5, только с другим синтаксисом. Авторы XHTML 2 задались целью удалить все дерьмо, которое накопилось в HTML за долгие годы, и поэтому выбрали очень строгий подход. Авторы HTML5 заняли гораздо более прагматичную позицию, признали некоторые странные функции, такие как border="1", на самом деле полезными, и разрешили их для этих узких ситуаций.
 – 
Alohci
16 Июл 2014 в 03:38
- Отличная информация! Я ничего не знала об этом, спасибо, что поделились!
 – 
Brett Weber
16 Июл 2014 в 19:25

Если вы не знаете, какой инструмент использовать, подумайте, что это на самом деле.

HTML - это язык разметки. Он используется для описания содержимого вашей веб-страницы, чтобы его могли понять все, кто просматривает ваш сайт. Он определяет абзацы, цитаты, важные части контента, навигацию и т. Д.

CSS - это язык стилей . Он описывает, как представлен ваш контент. Используйте его, чтобы элементы выглядели так, как вы хотите, чтобы ваш веб-сайт выглядел визуально привлекательно.

Границы - это часть визуального стиля вашего контента . Вы поместили свой контент в таблицу, потому что это имеет смысл, но если вы хотите добавить границу к таблице, добавьте правила CSS, чтобы она выглядела так, как вы хотите.

Вы часто обнаруживаете, что старый HTML-код написан с большим количеством атрибутов, стилизованных под контент, а также с тегами <font> и <center> и другими вещами, которые смешивают контент с презентацией. Вы также можете обнаружить, что некоторые визуальные части вашего сайта невозможны в чистом CSS и требуют дополнительной разметки, чтобы заставить его работать; это те виды компромиссов, на которые вы должны пойти как веб-разработчик.

6
Sebastian Zartner 16 Июл 2014 в 01:01

Вы должны предпочитать стили атрибутам, и в этом конкретном случае вы всегда должны использовать стили, потому что, согласно W3C, индекс атрибутов, атрибут border= в <table> устарел. Cellspacing и cellpadding официально не рекомендуются, но их использование не рекомендуется, и они указаны как "устаревшие функции" в HTML5.

Насколько это возможно, держите все стили / представления вне документа - документ должен быть содержимым и структурой - затем стилизуйте его, как хотите, используя XSLT или CSS.

1
Stephen P 16 Июл 2014 в 01:53
В комментариях уже указывалось, что это утверждение («атрибут border= в устарел. Cellspacing и cellpadding также устарели») недопустимо. Если вы можете предоставить документацию, которая может переопределить документы прямо из W3C, я удалю свой отрицательный голос.  – 
Brett Weber
16 Июл 2014 в 01:25
Конечно, спасибо, я приведу источник ... но комментариев не было, когда я это писал, по крайней мере, до того, как я нажал «Опубликовать».
 – 
Stephen P
16 Июл 2014 в 01:43
Это не проблема. Я просто пытаюсь сохранить точность этого вопроса, потому что у меня был точно такой же вопрос не так давно. Пока я не увидел это, я все еще был в замешательстве по этому поводу. Однако я согласен с тем, что этот атрибут не следует использовать.
 – 
Brett Weber
16 Июл 2014 в 01:45

Атрибуты таблицы устарели. Вы всегда должны использовать CSS для стилизации ваших таблиц. Независимо от того, создаете ли вы отдельную таблицу стилей или встраиваете ее в свой html-файл.

Любой элемент html можно стилизовать с помощью css.

РЕДАКТИРОВАТЬ:

Дополнительную информацию об устаревших атрибутах см. Здесь: http://www.w3.org/TR/ html4 / index / attributes.html

Удачи!

0
rob 16 Июл 2014 в 01:32
В комментариях уже указывалось, что это утверждение («Атрибуты таблицы устарели») недопустимо. Если вы можете предоставить документацию, которая может переопределить документы прямо из W3C, я удалю свой отрицательный голос.
 – 
Brett Weber
16 Июл 2014 в 01:24
Это ссылка на атрибуты. Строка, определяющая границу по отношению к таблице, не показывает, что атрибут устарел. Пространство, которое должно означать это, пусто и не содержит символа «D», как определено в легенде, для обозначения устаревшего атрибута. Этот атрибут не считается устаревшим ни в этой рекомендации для HTML4, ни в черновике для HTML5.1. Кроме того, не ожидается, что он будет постепенно прекращен. Извините, это только укрепило комментарии к вопросу.
 – 
Brett Weber
16 Июл 2014 в 01:43
Не пытаюсь быть супер-приверженцем, просто пытаюсь сохранить этот вопрос в чистоте, так как я тоже запутался в этом. Однако я согласен с тем, что этот атрибут не следует использовать.
 – 
Brett Weber
16 Июл 2014 в 01:50