Скопировать значение класса CSS и создать новое значение?

0

Я использую сетку для моего макета веб-страницы, очень похожую на макет Grid 960. У меня есть куча предопределенных классов для всех ширины сетки. Когда я хочу, чтобы div был определенной шириной, я просто делаю:

<div class="grid_4">
  ...
</div>

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

.right-border {
  border-right: 1px solid #e1e1e1;
}

<div class="grid_4 right-border">
  ....
</div>

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

Есть ли способ получить текущую ширину div и просто вычесть 1 для тех div, у которых есть класс right-border? Я думаю, что это, вероятно, выполнимо только с jQuery, но, возможно, что-то вроде CSS-магии, о которой я не знаю, это выполнит.

Есть идеи?

  • 0
    попробуйте дать ширину 99%
  • 0
    @AtalShrivastava Это слишком неточно для меня. Ширина 99% варьируется в зависимости от ширины div .
Теги:

1 ответ

6
Лучший ответ

Вы можете попробовать border-boxes (если ваши сетные системы еще не установлены), чтобы ширина элемента включала границу:

[class*="grid_"]{box-sizing:border-box}

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

  • 0
    Не забудьте добавить префиксы поставщиков (-moz, -ms, -o и т. Д.).
  • 0
    Отлично! Я знал, что у кого-то будет волшебство, которого я еще не изучил. Спасибо.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню