Подтвердить что ты не робот

Div бок о бок без поплавка

Как я могу сделать div 'left' и 'right' похожими на столбцы бок о бок?

Я знаю, что могу использовать float: осталось на них, и это будет работать... но на шагах 5 и 6 здесь http://www.barelyfitz.com/screencast...s/positioning/ парень говорит, что это возможно, я не могу заставить его работать, хотя...

код:

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

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

.container{
    background:black;
    height:400px;
    width:450px;
}
</style>

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

Ответ 1

Обычный метод, когда не используется float, заключается в использовании display: inline-block: http://www.jsfiddle.net/zygnz/1/

.container div {
  display: inline-block;
}

Однако обратите внимание на его ограничения: после первого блока есть дополнительное пространство - это потому, что два блока теперь являются по существу inline элементами, такими как a и em, поэтому пробелы между двумя значениями. Это может сломать ваш макет и/или не выглядеть красиво, и я бы предпочел не выделять все пробелы между символами ради этой работы.

Поплавки также более гибкие, в большинстве случаев.

Ответ 2

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

display:inline-block;

Попробуйте...


Другой способ - разместить их, используя:

position:absolute;
left:0;

и/или

position:absolute;
right:0;

Примечание.. Для этого, как и следовало ожидать, элемент оболочки должен иметь position:relative;, чтобы элементы с абсолютным позиционированием оставались относительно их оберточного элемента.

Ответ 3

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

Итак, если функции float вызывают проблемы, есть несколько вариантов, которые вы можете попробовать.

Один из них модифицирует выравнивание div в теге div, который он сам, таким образом <div class="kosher" align=left> Если это вас не устраивает, тогда есть другой вариант с таким запасом.

.leftdiv {
    display: inline-block;
    width: 40%;
    float: left;
}
.rightdiv {
    display: block;
    margin-right: 20px;
    margin-left: 45%;
}

Не забудьте удалить <div align=left>.

Ответ 4

Вы можете попробовать с пометкой для правого div

margin: -200px 0 0 350px;

Ответ 5

Вы также можете использовать макет CSS3 flexbox, который хорошо поддерживается в настоящее время.

.container {
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    background:black;
    height:400px;
    width:450px;
}

.left {
    flex: 0 0 300px;
    background:blue;
    height:200px;
}

.right {
    flex: 0 1 100px;
    background:green;
    height:300px;
}

См. пример (с устаревшими стилями для максимальной совместимости) и Узнать больше о flexbox.

Ответ 6

Используйте display:table-cell; для удаления пробела между .Left и .Right

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: table-cell;
}
<div class="container">
  <div>
    <div class="left">
      LEFT
    </div>
  </div>
  <div>
    <div class="right">
      RIGHT
    </div>
  </div>
</div>