Удалить вертикальные поля между дочерними элементами Flex

Я пытаюсь создать простую графическую систему ASCII на основе сетки в HTML. Система интерпретирует массив односимвольных строк как сетку с обычными разделами, представляющими строки. Затем эти строки добавляются к некоторому родителю через контейнер DIV или P.

Помимо отрицательных полей, как я могу стилизовать это так, чтобы расстояние между строками и столбцами было одинаковым?

Вот что я пробовал до сих пор:

.grid {
  display: flex;
  flex-direction: column;
  row-gap: 0px;
  font-family: monospace;
}
<!DOCTYPE html>
<html>

<head>
  <meta name = "viewport" content = "width=device-width, initial-scale=1.0">
</head>

<body>
  <div class = "grid">
    <div>XXXX</div>
    <div>XXXX</div>
    <div>XXXX</div>
    <div>XXXX</div>
  </div>
</body>

</html>

Чтобы было ясно, мне нужно, чтобы персонажи сидели промывать друг против друга.

Улучшение производительности загрузки с помощью 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
0
32
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вы можете использовать отображение сетки (вместо гибкого) и использовать свойство row-gap, выровненное с интервалом между буквами:

.grid {
  display: grid;
  row-gap: 20px;
  letter-spacing: 20px;
}
Ответ принят как подходящий

Один из способов — установить line-height на ширину символа (8px):

.grid {
  display: flex;
  flex-direction: column;
  font-family: monospace;
  line-height: 8px;
}
<div class = "grid">
  <div>XXXX</div>
  <div>XXXX</div>
  <div>XXXX</div>
  <div>XXXX</div>
</div>

Вы можете сделать следующее:

.grid {
 display: flex;
 flex-wrap: wrap;
 flex-direction: column;
 row-gap: 10px;
 letter-spacing: 20px;

}

Он достигнет желаемого результата, используя css flex.

Вы можете получить желаемый эффект с помощью line-height вместо гибкости. В некоторых браузерах могут быть странные проблемы с высотой строки, но это можно исправить, установив высоту строки в самих элементах div.

.grid {
  line-height: 0.69;
}
<div class = "grid">
  <div>XXXX</div>
  <div>XXXX</div>
  <div>XXXX</div>
  <div>XXXX</div>
</div>

Приведенный ниже код устраняет проблемы line-height, изменяя только line-height в дочерних элементах.

.griddiv {
  line-height: 0.65;
}
<div class = "grid">
  <div class = "griddiv">XXXX</div>
  <div class = "griddiv">XXXX</div>
  <div class = "griddiv">XXXX</div>
  <div class = "griddiv">XXXX</div>
</div>

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