Плавный дизайн с использованием процентов для ширины, граница в 1 пиксель все портит

Надеюсь, я предоставлю достаточно информации, чтобы бороться с ошибочным названием.

Я разрабатываю веб-сайт, который имеет два основных раздела: боковую панель и раздел контента. Боковая панель находится слева, а контент — справа. На данный момент у меня есть эта разметка и CSS:

<section id="sidebar">
    sidebar
</section>
<section id="content">
    content
</section>

#sidebar {
    width: 29%;
    background: #f7f3ed;
    float: left;
    padding-right: 1%;
    text-align: right;
}

#content {
    width: 69%;
    padding-left: 1%;
    float: left;
}

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

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

Вот пример jsfiddle: http://jsfiddle.net/juffd/

Как я могу применить границу без переноса области содержимого под боковую панель и без специального указания ширины каждого элемента в пикселях?


person James Dawson    schedule 02.01.2013    source источник


Ответы (1)


Используйте 1_. Это заставляет ширину элемента включать его отступы, а также любые границы.

person Alexander Christiansson    schedule 02.01.2013
comment
Никогда не видел эту собственность. Исправил, спасибо. Вы знаете, какая поддержка у этого браузера? Я вижу, что это элемент CSS3, и с Mozilla/Webkit вам нужно использовать что-то вроде -moz-box-sizing, поэтому я предполагаю, что более ранние версии некоторых браузеров вообще не поддерживают его? - person James Dawson; 02.01.2013
comment
-webkit-box-sizing: рамка-бокс; -moz-box-sizing: рамка-бокс; box-sizing: граница-коробка; - person Fabio; 02.01.2013
comment
Да, у него довольно плохая поддержка браузеров. Если вы посмотрите на атрибуты, специфичные для поставщика, ситуация станет немного лучше. Если вы не хотите, чтобы горизонтальные полосы прокрутки отображались в старых браузерах, вы можете добавить overflow-x: none; к атрибутам body и html. - person Alexander Christiansson; 02.01.2013