Почему blueprint css определяет div.class и класс с одинаковым стилем? - PullRequest
2 голосов
/ 27 декабря 2010

В связанном коде для CSS-структуры проекта есть стиль, определенный для селектора div.class и только для селектора .class.Разве это не избыточно?Или есть более тонкая причина для определения класса с двумя селекторами?

https://github.com/joshuaclayton/blueprint-css/blob/master/blueprint/src/grid.css (строки 229-235)

/* In case you need to add a gutter above/below an element */
div.prepend-top, .prepend-top {
  margin-top:1.5em;
}
div.append-bottom, .append-bottom {
  margin-bottom:1.5em;
}

1 Ответ

3 голосов
/ 27 декабря 2010

Интересный вопрос. Я не использовал Blueprint, но тогда, если вы решите переопределить div.prepend-top или .prepend-top, будут переопределены только стили этого селектора.

Это значит делать это:

.prepend-top { margin-top: 1em; }

Оставит стили для <div> s с этим классом без изменений (по-прежнему с верхним полем в 1,5 em), поскольку div.prepend-top является более специфичным селектором и поэтому будет иметь приоритет для элементов <div>.

И делает это:

div.prepend-top { margin-top: 1em; }

Оставит стили для других элементов с этим классом без изменений из-за селектора типа div. Аналогично для append-bottom класса.

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

...