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

У меня есть сайт, на котором обычно есть новости в верхней части главной страницы, а иногда (для определенных периодов) есть одна или несколько «быстрых ссылок» под новостями, чтобы направлять пользователей на страницы, представляющие интерес. Под ними - обычная аннотация.

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

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

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

Я мог бы иметь отдельные классы стилей для каждого варианта каждого элемента:

.news {top: 100px; etc...;}
.news2 {top: 150px; etc...;}
.ql {top: 150px; etc...;}
.ql2 {top: 200px; etc...;}
.main {top: 200px; etc...;}
.main2 {top: 250px; etc...;}

... что кажется слишком многословным.

Или, возможно:

.news {etc...;}
.ql {etc...;}
.main {etc...;}
.top100 {top: 100px;}
.top150 {top: 150px;}
.top200 {top: 200px;}
.top250 {top: 250px;}

Несколько более компактный, и он сохраняет стиль в таблице стилей, а не в HTML.

Или, возможно, даже:

.news {etc...;}
.ql {etc...;}
.main {etc...;}

в HTML:

<div class = "news" style = "top:100px;">
<div class = "ql" style = "top:150px;">
<div class = "main" style = "top:200px;">

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

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

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
0
221
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий
.top100 {top: 100px;}
.top150 {top: 150px;}
.top200 {top: 200px;}
.top250 {top: 250px;}

Это плохая практика, потому что теперь вы добавляете информацию о стиле в HTML. Лучше использовать описательные имена и связать их вместе. Нравиться:

.news {top: 100px; etc...;}
.news2, .ql {top: 150px; etc...;}
.ql2, .main {top: 200px; etc...;}
.main2 {top: 250px; etc...;}

Позже вы сможете добавить другие правила.

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

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

CJM 07.11.2008 14:44

Итак, вы используете "<classname>" там, где нет быстрых ссылок, и <classname>2", когда они есть?

Вы знаете, что вы можете использовать более одного имени класса для элемента. Так что у вас может быть, например, <elem class = "<classname> quicklinks">. И создайте отдельный класс .quicklinks в вашем CSS, чтобы переместить все вниз еще на 50 пикселей.

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

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

Как я сказал GameCat, основной дизайн относительно плох - макет должен быть плавным, но, к сожалению, это не так. К счастью, в редизайне все изменится.

CJM 11.11.2008 19:19

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

Lee Kowalkowski 11.11.2008 23:42

Собственно, лучшее решение, наверное, таково:

.news, .news2 {top: 100px; etc...;}
.news2 {top: 150px;}
.ql, .ql2 {top: 150px; etc...;}
.ql2 {top: 200px;}
.main, .main2 {top: 200px; etc...;}
.main2 {top: 250px;}

Но я понимаю вашу точку зрения GameCat ...

Спасибо

Другие вопросы по теме