ОТДЕЛЕНИЯ вертикально не выравниваются в горизонтальной прокрутке DIV

Я пытаюсь сделать a

с горизонтальной прокруткой только, и я достиг этого при помощи s с white-space: no-wrap; в a
с overflow-x: scroll;. Проблема состоит в том, что я не могу использовать абзацы с обтекающим текстом в них s, потому что это повреждает расположение в Chrome.

Это то, что я хочу (работы в Firefox) и что я вошел в Chrome:

In Chrome only the first box in the horizontally scrolling DIV is aligned to the top, the other ones are a bit below. In Firefox all boxes are aligned properly.

Проблема происходит каждый раз, когда текст абзаца переносится в s.

Это - мой HTML и CSS:

.info {
  width: 250px;
  height: 200px;
  float: left;
}
.list {
  height: 200px;
  overflow-x: scroll;
  overflow-y: hidden;
  white-space: nowrap;
}
.item {
  height: 175px;
  width: 175px;
  display: inline-block;
  margin-left: 5px;
  overflow: hidden; /* without this, the layout breaks in Firefox, too */
}
.item * {
  white-space: normal;
}

Info regarding this list of items

text

more text, in another line, now wrapping

and etc and etc

second item

third item

and more

Кто-то знает, как зафиксировать это? Или делает кто-то знает другой способ сделать это

с горизонтальной прокруткой? (Я использую жидкое расположение, таким образом, мой оранжевый div не имеет фиксированной ширины).

6
задан Sebastian Simon 3 January 2016 в 17:27
поделиться

5 ответов

Исправлено :-)

Проблема не в разрыве строки, а в выравнивании по вертикали. Благодаря tahdhaze09, который помог мне разобраться в проблеме, это решение у меня есть:

.item {
  height: 175px;
  width: 175px;
  display: inline-block;
  margin-left: 5px;
/*overflow: hidden; without this, the layout breaks in FF too - REMOVED */
  vertical-align:text-top; /* ADDED */
}

Не знаю почему, но переполнение:hidden заставило встроенные элементы выравниваться сверху на Firefox. Тогда в этом нет необходимости. vertical-align:text-top исправило проблему во всех основных браузерах.

5
ответ дан 17 December 2019 в 04:47
поделиться

Пытались ли вы добавить top:0 в спецификацию списка ? (не могу попробовать здесь, только мои мысли).

0
ответ дан 17 December 2019 в 04:47
поделиться

Просто выстрел в темноте, но можете ли вы попробовать удалить все белое пространство между дайвами? (Нет отступов).

И к вашему сведению,

внутри не подтвердится. Скорее всего, это не корень вашей проблемы, но наличие корректного HTML всегда есть при поиске ошибки.

.
0
ответ дан 17 December 2019 в 04:47
поделиться

Разве нельзя просто изменить класс .item на position:relative с float:left так, чтобы они выглядели рядом друг с другом?

Это работает для меня в FF/Chrome:

.item {
  height: 175px;
  width: 175px;
  position: relative;
  float: left;
  margin-left: 5px;
  overflow: hidden;
}
0
ответ дан 17 December 2019 в 04:47
поделиться
[

] У меня нет проблем с твоим кодом на FF, Chrome или Safari. [

] [

] Это тот же самый код, но чтобы быть уверенным: [

] [
<!DOCTYPE HTML>
<html>
    <head>
        <title>Highlighting Elements</title>
        <style>
.info {
  width: 250px;
  height: 200px;
  float: left;
}
.list {
  height: 200px;
  overflow-x: scroll;
  overflow-y: hidden;
  white-space: nowrap;
}
.item {
  height: 175px;
  width: 175px;
  display: inline-block;
  margin-left: 5px;
  overflow: hidden; /* without this, the layout breaks in FF too */
}
.item * {
  white-space: normal;
}
</style>

    </head>
    <body>

        <div id="listOne red">
  <div class="info blue">
    <p>info regarding this list of itens</p>
  </div>
  <div class="list">
    <span class="item">
      <p>text</p>
      <p>more text, in another line, now wrapping</p>
      <p>and etc and etc</p>
    </span>
 <span class="item">
 <p>text</p>
      <p>more text, in another line, now wrapping</p>
      <p>and etc and etc</p>
 </span>
 <span class="item">
 <p>text</p>
      <p>more text, in another line, now wrapping</p>
      <p>and etc and etc</p>
 </span>
 <span class="item">
 <p>text</p>
      <p>more text, in another line, now wrapping</p>
      <p>and etc and etc</p>
 </span>
 <span class="item">
 <p>text</p>
      <p>more text, in another line, now wrapping</p>
      <p>and etc and etc</p>
 </span>
 <span class="item">
 <p>text</p>
      <p>more text, in another line, now wrapping</p>
      <p>and etc and etc</p>
 </span>
 <span class="item">
 <p>text</p>
      <p>more text, in another line, now wrapping</p>
      <p>and etc and etc</p>
 </span>
 <span class="item">
 <p>text</p>
      <p>more text, in another line, now wrapping</p>
      <p>and etc and etc</p>
 </span>

  </div>
  <div class="clear"></div>
</div>


    </body>
</html>
]
0
ответ дан 17 December 2019 в 04:47
поделиться