Я использую сетку для моего макета веб-страницы, очень похожую на макет 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-магии, о которой я не знаю, это выполнит.
Есть идеи?
Вы можете попробовать border-boxes (если ваши сетные системы еще не установлены), чтобы ширина элемента включала границу:
[class*="grid_"]{box-sizing:border-box}
Таким образом, добавление границы (или заполнения) не повлияет на вычисленную ширину элемента - вместо этого область содержимого сжимается соответствующим образом.
div
.