CSS Grid — Почему мой текст обрезается при изменении размера на меньшие экраны?

#css #css-grid

#css #css-сетка

Вопрос:

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

Вот мой HTML:

 * {
  margin: 0;
}

body {
  overflow-x: hidden;
}

.wrapper1 {
  display: grid;
  grid-template-columns: 6fr 3fr;
  border: 2px solid #6cccb0;
  overflow: hidden;
  height: 30px;
  background-color: #6cccb0;
  width: 1700px;
} 
 <div class="wrapper1">

  <div>
    <p class="item1">SHIPPED for free | GUARANTEED TO LAST</p>
  </div>


  <div>
    <p class="item2">LOG IN | REGISTER | CUSTOMER SERVICE | 1-800-692-8259 </p>
  </div>

</div> 

Спасибо

Комментарии:

1. Попробуйте удалить overflow-x: hidden;

2. или, что еще лучше, удалите width: 1700px;

3. Это не работает, и я пытаюсь избежать горизонтальной полосы прокрутки.

4. Ваша сетка всегда имеет ширину 1700 пикселей, а переполнение тела скрыто. Если вы хотите, чтобы текст переносился на вторую строку, используйте что-то вроде max-width: 100% .

5. Я пытаюсь сохранить текст в одной строке

Ответ №1:

Почему бы не удалить жестко заданную ширину и overflow: hidden свойства? Это приводит к тому, что ваш контент как за кадром, так и вырезается.

 * {
  margin: 0;
}

.wrapper1 {
  display: grid;
  grid-template-columns: 2fr 1fr;
  align-items: center;
  border: 2px solid #6cccb0;
  background-color: #6cccb0;
} 
 <div class="wrapper1">

  <div>
    <p class="item1">SHIPPED for free | GUARANTEED TO LAST</p>
  </div>


  <div>
    <p class="item2">LOG IN | REGISTER | CUSTOMER SERVICE | 1-800-692-8259 </p>
  </div>

</div> 

Комментарии:

1. Вы правы, это решило проблему с отключением. Но что теперь, если я хочу, чтобы текст был в той же строке, а не перемещался на новую строку при меньшем размере экрана?

2. Хорошо, сначала давайте подумаем об этом, если размер экрана уменьшается, что должно произойти с текстом? Если вам нужно, чтобы весь текст оставался видимым и располагался на одной строке, то вам следует уменьшить размер шрифта настолько, чтобы он выглядел хорошо; потому что единственный другой вариант — обрезать текст, но это приведет к удалению информации

Ответ №2:

Вы могли бы использовать

 width: 100%;
 

вместо того , чтобы

 width: 1700px;
 

Таким образом, ваш текст item2 не исчезнет.

Правка 1:

Если вы хотите сохранить текст в одну строку, я предлагаю использовать запросы @media для изменения размера шрифта. так что ваш css должен быть примерно таким.

 * {
    margin: 0;
}

.wrapper1 {
    display: grid;
    grid-template-columns: 2fr 2fr;
    border: 2px solid #6cccb0;
    height: 30px;
    background-color: #6cccb0;
    font-size: 1em;
    color: orange;
}

@media only screen and (max-width: 440px) {
    .wrapper1 {
        font-size: 0.4em;
        color: yellow;
    }
}

@media only screen and (min-width: 440px) {
    .wrapper1 {
        font-size: 0.5em;
        color: aqua;
    }
}

@media only screen and (min-width: 560px) {
    .wrapper1 {
        font-size: 0.6em;
        color: green;
    }
}

@media only screen and (min-width: 728px) {
    .wrapper1 {
        font-size: 0.8em;
        color: blue;
    }
}

@media only screen and (min-width: 1024px) {
    .wrapper1 {
        font-size: 1em;
        color: red;
    }
}
 

Я ввел правила цвета, чтобы помочь вам понять, что происходит. Вы можете удалить их. Я надеюсь, что это поможет вам.

Комментарии:

1. Когда я делаю это, ширина моего div уменьшается до половины экрана при изменении размера до меньших экранов.

2. @Daniel Klein. Я отредактировал свой ответ, чтобы он мог решить вашу проблему, я надеюсь