Неожиданное дополнение с помощью кнопки

Посмотрите это репродукция jsfiddle

.test {
  width: 10rem;
  list-style: none;
  margin: 0;
}

ul.test li {
  background: black;
  padding: 0;
}

ul.test li button {
  background: red;
  border: none;
}
<ul class = "test">
  <li>
    <div>
      <button>
  Hello
  </button>
    </div>
  </li>
  <li>
    <div>
      <button>
  World
  </button>
    </div>
  </li>
</ul>

Почему в каждом ли и кнопке внутри есть отступы?

Я знаю, что это связано с тем, что мы установили границу: none для кнопки, но почему li не подстраивается под новую высоту кнопки? Почему остается тонкое пространство?

Это хорошая возможность для вас начать знакомство с с помощью инспектора браузера . Чтобы узнать больше об этом сообществе и о том, как мы можем вам помочь, начните с тура и прочитайте Как спросить и связанные с ним ресурсы.

Mister Jojo 08.07.2024 18:12
Улучшение производительности загрузки с помощью 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
1
69
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Отступы и элементы списка не являются причиной недостаточного пространства. Именно так автоматически рассчитывается высота элемента div при наличии дочерних элементов строкового уровня, которая зависит от высоты его строковых блоков. Поскольку кнопки имеют другой размер шрифта по умолчанию (по крайней мере, в Chrome), появляется тонкое пространство, потому что фон кнопки заполняет только меньший линейный блок. Вы можете увидеть больше пустого пространства, уменьшив размер шрифта или высоту строки. С другой стороны, если вы измените размер шрифта кнопки обратно на исходный размер, тонкое пространство также исчезнет.

.test {
  width: 10rem;
  list-style: none;
  margin: 0;
}

ul.test li {
  background: black;
  padding: 0;
}

ul.test li button {
  background: red;
  border: none;
  font-size: inherit;
}
<ul class = "test">
  <li>
    <div>
      <button>
          Hello
        </button>
    </div>
  </li>
  <li>
    <div>
      <button>
          World
        </button>
    </div>
  </li>
</ul>

Вы можете видеть, что тонкое пространство исчезает после изменения отображения кнопок на display:block.

.test {
  width: 10rem;
  list-style: none;
  margin: 0;
}

ul.test li {
  background: black;
  padding: 0;
}

ul.test li button {
  background: red;
  border: none;
  display: block;
}
<ul class = "test">
  <li>
    <div>
      <button>
        Hello
      </button>
    </div>
  </li>
  <li>
    <div>
      <button>
        World
      </button>
    </div>
  </li>
</ul>

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