2015-09-09 3 views
1

У меня есть три дивы рядная заблокирована с шириной 33% каждое:Добавления обивки до колонн добавления до 100%

<div> 
    <div class="third">hello</div> 
    <div class="third">hello</div> 
    <div class="third">hello</div> 
</div> 

УС:

.third { 
    width: 33%; 
    display:inline-block; 
    background-color:yellow; 
} 

Но как только добавить отступы к дивы, она толкает ширину столбцов, и они переносятся на следующую строку:

.third { 
    padding:10px; 
} 

есть в любом случае я могу предотвратить отступы от increasin g размер div? Я просто хочу, чтобы содержимое было нажато внутрь.

Скрипки, чтобы продемонстрировать: http://jsfiddle.net/chdehewh/

Спасибо!

+1

'* {коробчатого проклейки: граница-бокс}' – atmd

+0

Только так вы знаете, вы можете получить идеальные трети с 'ширином: calc (100%/3); ' – David

+0

@ Давид, это несовместимо с IE 8. И IE 9 имеют частичную поддержку ... –

ответ

1

Box проклейки определяется как пограничный коробка делает отступы и границы включены в общую ширину

.third { 
    width: 33%; 
    display:inline-block; 
    background-color:yellow; 
    box-sizing: border-box; 
} 

Смотреть это работает: http://jsfiddle.net/chdehewh/2/

Также я включил трюк, чтобы избежать пробелов с инлайн элементов блока. Посмотрите

+0

'-moz-box-size: border-box' тоже, если вы не хотите неприятную проблему в firefox. – David

+0

@ Давид, в каком году вы живете? Я в 2015 году с firefox v40 с autoupdater .... –

+0

Некоторые люди не используют последнюю версию браузеров. Некоторые люди все еще используют IE 6 и сафари 5.1. Вы должны кодировать для всех, а не только для людей с последними версиями. – David

0

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

Прежде всего, вы должны установить box-sizing: border-box; на свой класс .third-with-padding.

Далее вам нужно удалить пробелы между вашими div. Пробелы отображаются, как если бы они были в тексте при использовании display: inline-block;. Если вы не хотите удалять символы пробела (очищайте код чище), вы можете использовать float, flexbox, display: table или множество других решений.

HTML

<div> 
    <div class="third-with-padding"> 
     hello 
    </div><div class="third-with-padding"> 
     hello 
    </div><div class="third-with-padding"> 
     hello 
    </div> 
</div> 

CSS

.third-with-padding { 
    box-sizing: border-box; 
    width: 33%; 
    display:inline-block; 
    background-color:yellow; 
    padding:10px; 
} 
Смежные вопросы