как обернуть гибкие элементы, которые прокручиваются горизонтально - PullRequest
1 голос
/ 25 марта 2020

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

Суть в том, что я хочу обернуть все flex-элементы с помощью box-shadow. К сожалению, обертка не обернется вокруг всех элементов flex и останется такой же короткой, как автоконтейнер переполнения.

Outer-Wrapper является гибким, но в этом примере исправим 400px;

вот ручка:

https://codepen.io/shooby83/pen/QWbJwaK

.outer-wrapper {
  padding: 0 10px;
  border: 1px solid red;
  width: 400px;
  overflow-x: auto;
}

.wrapper {
  display: flex;
  box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .16);
  height: 100px;
  margin: 15px
}

.item {
  flex: 1 0 100px;
  background: pink;
  padding: 5px;
  border: 1px solid rgba(0, 0, 0, .16);
}
<div class="outer-wrapper">
  <div class="wrapper">
    <div class="item">item one</div>
    <div class="item">item two</div>
    <div class="item">item three</div>
    <div class="item">item four</div>
    <div class="item">item five</div>
  </div>
</div>

1 Ответ

0 голосов
/ 25 марта 2020

используйте inline-flex вместо flex и рассмотрите width вместо flex-basis

.outer-wrapper {
  padding: 0 10px;
  border: 1px solid red;
  width: 400px;
  overflow-x: auto;
}

.wrapper {
  display: inline-flex;
  min-width:calc(100% - 30px); /* to make sure it keep a block behavior when there is few items*/
  box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .16);
  height: 100px;
  margin: 15px
}

.item {
  width:100px;
  flex-grow:1;
  flex-shrink:0;
  background: pink;
  padding: 5px;
  border: 1px solid rgba(0, 0, 0, .16);
}
<div class="outer-wrapper">
  <div class="wrapper">
    <div class="item">item one</div>
    <div class="item">item two</div>
    <div class="item">item three</div>
    <div class="item">item four</div>
    <div class="item">item five</div>
  </div>
</div>

<div class="outer-wrapper">
  <div class="wrapper">
    <div class="item">item one</div>
    <div class="item">item two</div>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...