2014-05-11 4 views
0

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

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

Я пытался использовать переполнение:. Скрытый или overflow-x:hidden с запасом или изменить их размер, но ничего не изменилось (и я пытался использовать границы с переливом скрытого)

Я вынужден использовать много DIV из тех же класс, и мне нужно, чтобы они покрывали всю ширину строки.

Edit: код большой, так что я отправлю небольшой пример, чтобы объяснить, что мой вопрос

<div class="container"> 
    <div class="block">content...</div> 
    <div class="block">content...</div> 
</div> 

<style> 
.container{width:1000px; margin:0px auto;} 
.block{width:480px;height:500px;float:left;} 
</style> 

Я хочу поставить первый блок + 40px пространство + второй блок

+2

Вы что-то пробовали? У вас есть код, который вы хотите поделиться с нами? Было бы проще помочь вам таким образом. –

+0

Как человек, который задал вопрос, вы всегда можете отредактировать его, чтобы добавить примеры кода или прояснить часть текста. –

ответ

1

Если вы хотите два. block divs в той же строке, что я бы сделал, это не делать это в пикселях, а с%.

Например, что я хотел бы сделать это:

Дайте DIV, что вы хотите на право идентификатор права и тот, который вы хотите на левой стороне идентификатором слева:

<div class="container"> 
<div class="block" id="right">content...</div> 
<div class="block" id="left">content...</div> 
</div> 

Тогда я бы стилизовать с

<style> 
.container{width:1000px; margin:0px auto;} 
.block{width:48%;height:500px;display:inline;} 
#left{float:left;} 
#right{float:right;} 
</style> 

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

+0

спасибо за ответ, но я не могу дать ему разные идентификаторы, потому что я хочу сделать только 1 div и размножать его с помощью PHP while loop, поэтому я вынужден использовать тот же класс – user3626117

+0

. Что относительно того, чтобы иметь тот же класс и иметь маржу слева и справа быть 4 пикселя и не иметь идентификаторов и поплавков –

+0

Я подумал об этом, и я думаю, что буду использовать его, если нет других решений, которые мне нужно, чтобы они застряли слева и справа, чтобы быть выровненными с меню и другими части страницы – user3626117

0

Может ли это быть чем-то вроде вас?

http://jsfiddle.net/justin_thomas/9S46N/

CSS-:

.myRow { 
    width:48em; 
} 
.myclass { 
    padding: 1em; 
    margin-left:1em; 
    margin-right:1em; 
    float: left; 
    display:inline; 
    width: 20em; 
} 

HTML-:

<div class="myRow"> 
    <div class="myClass">Blah... blah...</div> 
    <div class="myClass">Blah... blah...</div> 
</div> 

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

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

+0

Я подумал об этом решении, чтобы использовать двойные поля, но divs не будут выровнены с другими частями страницы. – user3626117

+0

Если вы делаете это программно, почему бы вам не добавить класс для div с сгенерированным именем класса в нем (например, column1, column2 и т. д.). Похоже, вы пытаетесь сделать 2 вещи; используйте только один класс в div, а затем также позволяйте расположить его там, где вы хотите. Я думаю, что вышеупомянутое решение будет работать только в общих чертах, если вы не сможете каким-то образом различать каждый из div, может быть трудно привести их в соответствие с остальной частью страницы (если вы не оставите остальную часть страницы в divs!). – Justin

1

Возможно, вы захотите дать им разные имена классов или идентификаторы, если вы хотите манипулировать ими двумя разными.

<div class="container"> 
<div class="block1">content...</div> 
<div class="block1">content...</div> 
</div> 

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

.block1, block2 { 
display: inline; 
} 

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

+0

nop, только один класс, потому что я собираюсь использовать 1 div с while looping – user3626117

+0

Как насчет использования псевдоселектора в стиле? Как это: Первый DIV должен выбрать контейнер, то они второй ДИВ, чтобы выбрать все дивы в этом контейнере, но Селектор, который вы используете, будет выбирать только первый блок. Дайте мне знать, если это сработает. Я читал об этом здесь: [ссылка] http://css-tricks.com/almanac/selectors/f/first-of-type/ –

+0

Работает ли псевдоселектор? Просто любопытно. –

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