Overflow-x не прокручивается по всей ширине - PullRequest
0 голосов
/ 29 марта 2020

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

HTML:

 <div id="hand">
    <div class="wrapper">
      <div class="card">
        <!-- Cards content -->
      </div>
      <div class="card">
        <!-- Cards content -->
      </div>
      <div class="card">
        <!-- Cards content -->
      </div>
      <!-- Repeat until 20 cards -->
    </div>
 </div>

S CSS

    div#hand {
        position: fixed;
        bottom: -200px;
        left: 0;
        width: 100vw;
        height: auto;
        display: flex;
        justify-content: center;
        overflow-x: auto;
        overflow-y: visible;

        >div.wrapper {
            display: flex;
            flex-direction: row;
            margin-left: 200px;
            margin-right: 200px;

            div.card {
                cursor: pointer;
                position: relative;
                width: 230px;
                height: 350px;
                margin: 0;
                border-radius: 3px;
                border-style: dotted;
                border-width: 5px;
                border-color: #fff;
                box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
                margin-top: 60px;
                bottom: 0;
                display: inline-block;

                transition: 0.4s;

                &:not(:first-child) {
                    margin-left: -160px;
                }

                &:hover:not(:last-child) {
                    margin-right: 160px;
                }

                &:hover {
                    bottom: 60px;
                }
            }
        }
    }

Это приводит к следующему отображению: Cards being rendered

Это круто и все, но проблема возникает, когда я делаю браузер ширина меньше: Cards not being rendered correctly

В данный момент я прокручиваюсь влево до конца, но обратите внимание, что карточка с номером один на первом изображении не видна. Если я прокручиваю вправо, последняя карта показывается без проблем: Cards on the right looking fine

Есть ли способ, которым полоса прокрутки фактически прокручивает каждую карту? Я попытался добавить поля слева и справа или добавить отступ для родительского div, но ничего не получается: c

Спасибо за вашу помощь заранее ^^

1 Ответ

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

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

div#hand {
  position: fixed;
  bottom: -200px;
  left: 0;
  width: 100vw;
  height: auto;
  display: flex;
  justify-content: center;
  overflow-x: auto;
  overflow-y: auto;
}
div.wrapper {
  background-color: #333;
  overflow: auto;
  white-space: nowrap;
}

div.card {
  display: inline-block;
  color: white;
  text-align: center;
  padding: 14px;
  text-decoration: none;
}
div#hand > div.wrapper div.card {
  cursor: pointer;
  position: relative;
  width: 230px;
  height: 350px;
  margin: 0;
  border-radius: 3px;
  border-style: dotted;
  border-width: 5px;
  border-color: #fff;
  background-color: black;
  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5);
  margin-top: 60px;
  bottom: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: 0.4s;
}
div#hand > div.wrapper div.card:not(:first-child) {
  margin-left: -160px;
}
div#hand > div.wrapper div.card:hover:not(:last-child) {
  margin-right: 160px;
}
div#hand > div.wrapper div.card:hover {
  bottom: 60px;
}
Code
 <div id="hand">
   <div class="wrapper">
     <div class="card">
       <h2>1</h2>
     </div>
     <div class="card">
       <h2>2</h2>
     </div>
     <div class="card">
       <h2>3</h2>
     </div>
     <div class="card">
       <h2>4</h2>
     </div>
     <div class="card">
       <h2>5</h2>
     </div>
     <div class="card">
       <h2>6</h2>
     </div>
     <div class="card">
       <h2>7</h2>
     </div>
     <div class="card">
       <h2>8</h2>
     </div>
     <div class="card">
       <h2>9</h2>
     </div>
     <div class="card">
       <h2>10</h2>
     </div>
     <div class="card">
       <h2>11</h2>
     </div>
     <div class="card">
       <h2>12</h2>
     </div>
     <div class="card">
       <h2>13</h2>
     </div>
     <div class="card">
       <h2>14</h2>
     </div>
     <div class="card">
       <h2>15</h2>
     </div>
     <div class="card">
       <h2>16</h2>
     </div>
     <div class="card">
       <h2>17</h2>
     </div>
     <div class="card">
       <h2>18</h2>
     </div>
     <div class="card">
       <h2>19</h2>
     </div>
     <div class="card">
       <h2>20</h2>
     </div>
   </div>
 </div>
 </div>



Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...