Управление конфликтами CSS - PullRequest
5 голосов
/ 17 декабря 2009

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

Мы уже используем SVN .. у каждого парня CSS есть свой собственный файл css, с которым он работает. Поэтому мой вопрос: какие шаги следует предпринять, чтобы свести к минимуму:

1: конфликты макетов

2: повышение возможности повторного использования ранее написанных стилей.

3: минимизировать потерянное время, пытаясь объединить стили вместе в финальном CSS.

Буду очень признателен за любые советы, которые вы, ребята, можете предложить.

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

Ответы [ 4 ]

4 голосов
/ 17 декабря 2009
  1. Определите соглашение о присвоении имен для ваших CSS-файлов, чтобы предотвратить конфликты (префикс?)
  2. Имейте автоматизированный процесс, который вы можете запустить перед регистрацией (проверки регистрации), чтобы увидеть возможные конфликты
  3. Обсудите, что вы добавите (обзор кода?) И вообще избежите конфликтов

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

4 голосов
/ 17 декабря 2009

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

Изменение общих тегов требует большего планирования, чем изменение каждого файла разработчика.

С общими тегами я имею в виду

div {
  /* affects all divs */
}

и каждый разработчик должен делать только

div.something {
  /* potentially overwrite defaults for div */
}

и html-файл должен быть похож на

link href="general.css"
link href="dev1.css"
link href="dev2.css"
3 голосов
/ 17 декабря 2009

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

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

Я не собираюсь делать вид, что это легко сделать - работать над чем-то в команде - это задача, которую вся индустрия разработки программного обеспечения еще не решила полностью. Удачи!

1 голос
/ 17 декабря 2009

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

Пример CSS:

#myid selector { ... }
#myotherid selector { ... }

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...