2013-10-01 5 views
1

Я имею в виду эту Fiddle, которую я нашел на SO, которая использует display: inline-block;, и я применил ее к своей собственной работе, но я не могу понять, как заставить два divs сидеть бок о бок, а не с 3-4px разрыв?Бок о бок divs без пробела?

http://jsfiddle.net/zygnz/1/

Я пробовал:

HTML

<div class="container"> 
     <div class="left"> 
      LEFT 
     </div> 
     <div class="right"> 
      RIGHT 
     </div> 
</div> 

CSS

div.left { 
    background:blue; 
    height:200px; 
    width:300px; 
} 

div.right{ 
    background:green; 
    height:300px; 
    width:100px; 
} 

.container{ 
    background:black; 
    height:400px; 
    width:450px; 
} 

.container div { 
    display: inline-block; 
} 

Но ничего не получил.

+0

'дисплей: рядный block' добавить некоторый разрыв между применяемыми элементами. чтобы удалить этот пробел, не выделяйте пространство между элементами в HTML-коде, например: '

' или используйте 'float: left' вместо' display: inline-block'. если вы хотите по-прежнему идти с 'display: inline-block', тогда есть исправление для применения маржи в отрицательных значениях в элементе' em'. Я думаю, что это '-0.36em'. –

ответ

1

Я хотел бы использовать float:left, но и попробовать настройки полей на div.left и div.right до 0, как:

margin:0 auto; 

Так, с скрипкой:

div.left { 
    background:blue; 
    height:200px; 
    width:300px; 
    margin:0 auto; 
    float:left; 
} 
1

Если вы установили отображение: встроенный блок; затем добавьте margin-right: -4px;, чтобы удалить разрыв.

see this demo

+0

Блестящий, что работает, но это самый приятный способ сделать это? – SaturnsEye

+0

альтернативно вы можете использовать float: left; –

+0

вы можете удалить новую строку между элементами в HTML – avrahamcool

2

На самом деле вы не должны ничего менять в CSS, чтобы избежать разрыва,

это пробельная проблема в HTML,

изменить HTML-код для этого

<div class="container"> 
     <div class="left">LEFT 
     </div><div class="right">RIGHT 
     </div> 
</div> 

jsFiddle here

ИЛИ

вы можете редактировать CSS

Вы можете использовать float:left; вместо display:inline-block;, чтобы свести на нет пробельных проблемы.

1

Использование 2 диапазона (теперь divs), сделайте встроенный блок и не оставляйте между ними пробелы или новые строки. Использовать интервалы не divs, потому что некоторые старые элементы не могут создавать элементы встроенного блока из блоков по умолчанию, таких как div.

Как это:

<span style="display: inline-block">one</span><span style="display: inline-block">two</span> 

Не нравится:

<span style="display: inline-block">one</span> <span style="display: inline-block">two</span> 
0

Вместо использования display:inline-block вы можете float в div's, просто изменить css к

.container div { 
float:left; 
} 

Приведенный выше код должен получить требуемый результат.Он будет выравнивать div рядом друг с другом без пробела.

см ссылками ниже, чтобы увидеть, что вызвало белое пространство или около float и display:inline block

Reference 1

Reference 2

Смежные вопросы