Не одобряется ли использование атрибута style? - PullRequest
2 голосов
/ 15 июля 2009

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

Смотри также:

Вопрос стиля - подходы к стилю и таблицам стилей

Ответы [ 12 ]

17 голосов
/ 15 июля 2009

Есть случаи, когда вы точно знаете, что все, что вы хотите сделать, это настроить стиль этого одного конкретного элемента, и ничего больше.

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

Был там, сделал это. 8 -)

5 голосов
/ 15 июля 2009

Я чувствую, что есть аспект, который не был затронут здесь: различие между отредактированными фрагментами HTML и сгенерированными фрагментами HTML.

Для редактирования человеком, вероятно, лучше и проще поддерживать наличие стилей в файле.

Однако

Как только вы начнете генерировать элементы HTML, с помощью серверных сценариев или с каким-либо JavaScript, обязательно сделайте все стили необходимые для базовой функциональности встроенными!

Например, вы написали какую-то библиотеку JavaScript, которая генерирует всплывающие подсказки. Теперь вы будете вставлять DIV на свою страницу, для этого потребуются некоторые стили. Например, position: absolute и, первоначально, display:none. Вы можете испытать желание дать этим элементам класс .popup и потребовать, чтобы этот класс имел правильные определения в каком-то файле CSS. В конце концов, стили должны быть указаны в файле CSS, верно?

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

Для максимальной простоты использования просто выберите нужные стили непосредственно на элементе при его создании. Для стилей, предназначенных исключительно для эстетических целей, таких как background-color, font-size и т. Д., Вы все равно можете прикрепить класс, чтобы дать потребителю вашего сценария простой способ изменить внешний вид элементов сценария, но не это не нужно!

4 голосов
/ 15 июля 2009

Вы можете использовать атрибут style, но смысл использования CSS в том, что вы вносите изменения в один файл, и это влияет на весь сайт. Старайтесь избегать этого как можно больше (старые привычки умирают)

2 голосов
/ 15 июля 2009

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

Небольшой не по теме совет: нажатие клавиши F12 в IE8 открывает отличный инструмент, который позволяет вам проверять стили элементов веб-страниц, которые вы просматриваете. В Firefox FireBug делает то же самое. Эти виды инструментов являются спасителями, если вы хотите знать, как изменение стиля повлияет на элемент.

2 голосов
/ 15 июля 2009

Это не подлежит ремонту. Все мы сделали это. То, что вам лучше всего делать, это вносить все корректировки в стиль. Позвольте мне научить вас тому, чего большинство разработчиков не знают о CSS ... вы можете использовать одновременно N стилей.

Например, представьте, что у вас есть отличный стиль для раскрашенных div с названием someDIVStyle:

.someDIVStlye
{
  background-color: yellow;
  ...
}

Вы хотите использовать его, но просто хотите настроить background-color на синий. Многие люди копируют / вставляют его, а затем создают новый стиль с изменениями. Однако просто создайте такой стиль:

.blueBackground
{
  background-color: blue;
}

Примените его так:

<div class="someDIVStyle blueBackground">...

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

1 голос
/ 15 июля 2009

Это очень «личный» вопрос, для меня слово «ВСЕ» - очень сильное слово.Вы должны сделать все возможное, чтобы большинство стилей в вашем CSS.но вы можете использовать стиль в некоторых случаях, если он облегчит вашу жизнь.

0 голосов
/ 27 июля 2009

Да, атрибут стиля вообще не одобряется. Поскольку вы переходите на метод CSS из таблицы, я настоятельно рекомендую вам избегать встроенных стилей. Как указывал предыдущий автор: вредные привычки трудно сломать, и привычка использовать встроенные стили для их временного удобства - ошибка. Вы также можете вернуться к использованию тега шрифта. Там действительно нет разницы.

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

Я думаю, что это общее мнение всех, кто опубликовал ответ

0 голосов
/ 15 июля 2009

Атрибут style имеет одно важное применение: установка стиля программно. Хотя в DOM есть методы для работы с таблицами стилей, их поддержка по-прежнему незначительна, и они немного тяжелы для многих задач, таких как скрытие и отображение элементов.

0 голосов
/ 15 июля 2009

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

Например, если вы хотите иметь различный фон заголовка на каждой странице (туристические агентства ...), гораздо проще поместить информацию о стиле в этот конкретный элемент (лучше в заголовок документа). .) чем дать этому элементу отдельный класс на каждой странице и определить все эти классы во внешней таблице стилей.

0 голосов
/ 15 июля 2009

Как уже говорили другие, вообще нет.

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

Для меня это было явной причиной динамически создавать тег стиля в div.

Кроме того, если вы используете, например, .net-фреймворк с веб-формами и встроенными элементами управления, вы все равно увидите встроенные стили!

...