Разрыв между отзывчивыми кнопками css

Мне нужно сделать кнопки категорий 50% отзывчивыми (или одинаковой ширины, отзывчивыми и центрированными), всегда две в одной строке.

ПРОБЛЕМА

Выглядит легко, но сложно, как мне сделать белый промежуток в 20 пикселей посередине?

div{
margin: 0 auto;

max-width:400px;
}

.gifsMainCategories{
	list-style:none;
	font-size:0;
	margin:10px auto;
	padding:0;
	text-align:center;
	width:100%;
}
.gifsMainCategories li{
	display:inline-block;
	width:50%; font-size:16px;
     height:60px;
     line-height:60px;
background:red;	
margin:10px auto;
	
}

.gifsMainCategories li:nth-child(2n+1) {
background: #17bf63;
   } 

.gifsMainCategories li:nth-child(2n+2) {
background: #794bc4;
   }
<div>

<ul class = "gifsMainCategories">
<li>Dance</li>
<li>shame</li>
<li>love</li>
<li>anger</li>
<li>scare</li>
<li>shocking</li>
<li>claps</li>
<li>sad</li>
<li>well done</li>
<li>Win</li>
<li>really?</li>
<li>I dont know...</li>
<li>Dream</li>
<li>Boring</li>
<li>Slap</li>
<li>Oops...</li>

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

Ответы 3

Вы можете сделать это для этого, используя

* {
    box-sizing: border-box;
}

div{
margin: 0 auto;

max-width:400px;
}

* {
    box-sizing: border-box;
}

.gifsMainCategories{
	list-style:none;
	font-size:0;
	margin:10px auto;
	padding:0;
	text-align:center;
	width:100%;
}
.gifsMainCategories li{
	width:50%; font-size:16px;
     height:60px;
     line-height:60px;
margin:10px auto;
padding:0px 10px 0px 0px;
float:left;
	
}

.gifsMainCategories li:nth-child(2n){
padding:0px 0px 0px 10px;
	
}

.gifsMainCategories li div{
	font-size:16px;
  width:100%;
     height:60px;
     line-height:60px;
background:red;	
	
}
<div>

<ul class = "gifsMainCategories">
<li><div>Dance</div></li>
<li><div>shame</div></li>
<li><div>Dance</div></li>
<li><div>shame</div></li>
<li><div>Dance</div></li>
<li><div>shame</div></li>
<li><div>Dance</div></li>
<li><div>shame</div></li>
<li><div>Dance</div></li>
<li><div>shame</div></li>

</ul>
</div>

Я использовал .gifsMainCategories li:nth-child(2n){background-color в своем примере, потому что в случае, если этот параметр не работает, структура контента не будет перемещаться или изменять его положение .... но в этом случае надежно ли использовать кросс-браузер? любой другой вариант, кроме этого?

Dan 07.04.2018 07:57

вы можете присвоить класс 2-му, 4-му .. li вместо .gifsMainCategories li: nth-child (2n) it.

Hiren Vaghasiya 07.04.2018 08:51
Ответ принят как подходящий

Вы можете добиться результата, просто изменив ширину, чтобы отрегулировать расстояние между двумя кнопками, используя метод calc () для элемента li. Попробуйте этот код.

.gifsMainCategories li{
    display:inline-block;
    width:40%;
    font-size:16px;
    height:60px;
    line-height:60px;
    background:red; 
    margin:10px;
}

Я избегаю упоминания о том, что не использую calc(). У меня уже были проблемы с использованием этого параметра.

Dan 07.04.2018 07:53

нет другого пути? простой CSS

Dan 07.04.2018 07:54

Если вам не нужно, чтобы они составляли ровно 50%, вы можете сделать их примерно по 40% каждый и иметь поля слева и справа. Таким образом будет достаточно места для промежутка между ними.

Aryan Twanju 07.04.2018 08:00

да, я думаю, что к настоящему времени это должны быть настройки css. работает нормально. не стесняйтесь редактировать свой ответ, чтобы отметить его. Спасибо

Dan 07.04.2018 08:06

Поскольку OP хочет избежать calc, решение widtha, использующее flex и свойство border для имитации полей, может быть:

.gifsMainCategories{
  list-style:none;
  padding:0;
  text-align:center;
  width:100%;
  display: flex;
  flex-wrap: wrap;
  box-sizing: border-box;

}
.gifsMainCategories li{
  box-sizing: inherit;
  font-size:16px;
  height:60px;
  width: 50%;
  border: 5px solid white;
  line-height: 60px;
}

Также добавлен box-sizing: border-box;, я не знаю, установлен ли он для всего в вашем оригинальном css

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