Почему в каждом втором параллелограмме есть пробел?

Вопрос в названии.

Вот рабочий пример: https://jsfiddle.net/ms89adx4/1/

Вот код:

body {
  font-size: 0;
  margin: 0;
}

.button {
  height: 100px;
  background-color: red;
  width: 85px;
  transform: skew(20deg);
  position: relative;
  display: inline-block;
}
<body>
  <div class = "button"></div>
  <div class = "button"></div>
  <div class = "button"></div>
  <div class = "button"></div>
  <div class = "button"></div>
  <div class = "button"></div>
</body>

Я хочу, чтобы не было пробела каждый второй div. Я мог бы просто сделать margin-left: -0.5px;, но я думаю, что это плохое решение этой проблемы.

Почему в каждом втором параллелограмме есть пробел?

проблема с субпиксельным рендерингом. Я вижу пробелы между всеми ними (измените уровень масштабирования, и он будет другим)

Temani Afif 01.06.2019 21:51

О каком пространстве вы говорите? Можете ли вы выделить это с помощью изображения, пожалуйста?

AdityaSrivast 01.06.2019 21:58

@Aditya Aditya Я добавил изображение.

Krøsh 01.06.2019 22:05

Возможным обходным путем было бы использование псевдо, например. .button::before { content: " "; left:-1px; top:0; right:-1px; bottom:0; background-color:red; position:absolute; }

Asons 01.06.2019 22:08

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

Temani Afif 01.06.2019 22:09

Я не «проверял» ответ Алекса, потому что его решение работало только в том случае, если сайт отображается в масштабе по умолчанию, но для меня это достаточно хорошее решение. Моя проблема была решена, но теперь я ищу ответ, который решает реальную проблему, а не только визуально.

Krøsh 01.06.2019 22:15
Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
1
6
68
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Попробуйте изменить:

width: 85px;

К

width: 86px;

Обычно нечетные числа показывают пробел между элементами div. Старайтесь всегда использовать четное число при выборе ширины элемента.

Это устраняет проблему, когда сайт отображается на 100%. Когда вы уменьшите масштаб до 70%, вы все равно будете видеть пробел через каждые 2-е или 3-е деление. Хотя, это достаточно хорошее решение для меня. Спасибо! :)

Krøsh 01.06.2019 21:55

Неправильный ответ. В другом веб-браузере с другим разрешением проблема появится снова, поэтому @Krøsh, не используйте это как решение.

Asons 01.06.2019 21:58

Вы можете использовать margin-left: -1px;, и это должно сработать

alex 01.06.2019 21:58

ОП уже предположил в вопросе, что отрицательная маржа может это исправить.

Asons 01.06.2019 22:03
Ответ принят как подходящий

Можно добавить небольшую схему:

.container {
  font-size: 0;
  margin: 0;
}

.button {
  height: 100px;
  background-color: red;
  width: 85px;
  display: inline-block;
  position: relative;
  transform: skew(20deg);
  outline:0.1px solid red;
}
<div class = "container">
  <div class = "button"></div>
  <div class = "button"></div>
  <div class = "button"></div>
  <div class = "button"></div>
  <div class = "button"></div>
  <div class = "button"></div>
</div>

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