Как предотвратить переполнение с помощью flex в псевдоэлемент

У меня есть список, в котором я использую 5 div с flex-basis для размещения содержимого в каждой строке li. У каждого из этих div есть атрибут data-label с заголовком для альтернативного просмотра для мобильных устройств. Итак, у меня есть медиа-запрос, который выглядит так:

.col {
  content: attr(data-label);
  flex-basis: 107px;
  text-align: left;
  padding-right: 10px;
}

С приведенной выше настройкой я получаю следующий результат, терминологию которого я действительно не знаю. На снимке экрана я вижу, что нижние 3 столбца правильно перешли и аккуратно выровнены. А вот верхний почему-то ¿переполняется? в районе :before

Кто-нибудь знает правильную терминологию этого поведения или есть какие-либо советы о том, как предотвратить это, чтобы все они аккуратно выровнялись? Я пробовал МНОЖЕСТВО вещей, возиться с элементной проверкой, чтобы увидеть, что имеет эффект, а что нет, но я просто не могу понять это.

Jsfiddle воспроизводит проблему

Не могли бы вы добавить свой HTML-код, чтобы мы могли воссоздать эту проблему?

Adam 25.04.2023 11:12

Вам необходимо предоставить правильный минимально воспроизводимый пример вашей проблемы.

CBroe 25.04.2023 11:41

Jep, извините, давно с тех пор, как я использовал stackoverflow, есть JSfiddle, который воспроизводит проблему.

B. Dionys 25.04.2023 11:46

Вы можете создать фрагменты стека, что предпочтительнее, чем JSFiddle, потому что он сохраняет весь код на этой странице и позволяет избежать риска наличия неработающей ссылки в вопросе.

Emiel Zuurbier 25.04.2023 11:51
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
4
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У детей Flex есть flex-shrink: 1, установленный браузером. Если вы хотите, чтобы дочерний элемент flex не становился меньше, чем набор flex-basis, обязательно отключите свойство сжатия для 0.

.cart-col::before {
  flex-shrink: 0;

  content: attr(data-label);
  flex-basis: 107px;
  text-align: left;
  padding-right: 10px;
}

Ааа окей, я не знал, что спасибо за теги и объяснение, я буду продолжать читать об этом. Это также решает мою проблему за один раз.

B. Dionys 25.04.2023 12:01

Другие вопросы по теме