div с размерами в пикселях, когда они не должны

0

Учитывая такую структуру:

<div id="container">
  <div id="left-sidebar">
    <div class="item">some stuff 300px wide</div>
    <div class="item">some stuff 300px wide</div>
    <div class="item">some stuff 300px wide</div>
  </div>
</div>

И стили вроде так:

#container {
  width:1170px;
  overflow: auto;
}

#left-sidebar {
  width: 900px;
  overflow: auto;
}

.item {
  float: left;
  margin-right:30px;
  width:270px;
}

Это должно иметь 3 "элемента" по 300 пикселей каждый, но предметы обертываются на 2 элемента. Это на Firefox 25. Почему они завертываются, хотя технически они имеют точное пространство? Firebug сообщает, что все div имеют правильную ширину пикселей.

В чистом CSS и простом HTML он может работать, но это сложный сайт со многими другими элементами/стилями, хотя Firebug сообщает ширину элемента как маржа 270px + 30px и 900px.

Теги:

2 ответа

2

Если вы хотите использовать float:right вы должны сначала поместить #right-sidebar в исходный код:

<div id="container">
  <div id="right-sidebar">
  some more stuff
  </div>
  <div id="left-sidebar">
    <div class="item">some stuff 300px wide</div>
    <div class="item">some stuff 300px wide</div>
    <div class="item">some stuff 300px wide</div>
  </div>
</div>

См. JSFIDDLE

  • 0
    На самом деле правая боковая панель не имеет никакого эффекта, и проблема существует без нее, обновили вопрос.
  • 0
    Извините, я не могу воспроизвести проблему в Firefox. Можете ли вы поставить свой точный код на jsfiddle.net, и я посмотрю.
0

Оказывается, это классическая проблема с пробелом между элементами. Я удалил пробел, и теперь проблема исчезла.

  • 0
    Я создал jsFiddle с вашим кодом, и все выглядело нормально: jsfiddle.net/audetwebdesign/wP7q8 Из-за поплавков пробел между div.item не должен быть проблемой. Если бы вы использовали inline-blocks , то ваше решение имело бы смысл. Должно быть, что-то еще происходило.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню