Как заставить div занимать всю ширину родителя?

Я пытался заставить divs (Name & Guess) занимать всю ширину родительского контейнера. Независимо от того, что я пробовал, они достигают только 98% контейнера. Если я установлю для каждого из них значение 50%, они рухнут, а затем один контейнер окажется поверх другого. В настоящее время они установлены на уровне 49%. Любые идеи?

Как заставить div занимать всю ширину родителя?

.guess-section {
  border: 1px solid red;
  width: 50%;
  background-color: #F7F7F7;
}

.guess-section article {
  background-color: #FFF;
  border: 2px solid #E0E0E0;
  margin: 2%;
  /*padding: 15px;*/
}

.r-low,
.r-high {
  font-weight: 700;
  text-decoration: underline;
}

.user-input {
  display: inline-block;
  border: 1px solid red;
  height: 100px;
  width: 49%;
}

.user-input input {
  display: inline-block;
  width: 100%;
}
<article class = "set-challengers">
  <p>The Current Range is <span class = "r-low">1</span> to <span class = "r-high">100</span></p>
  <section class = "challenger2">
    <h3>Challenger 2</h3>
    <div class = "user-input">
      <label for = "name">
  				<span>Name</span></br>
  				<input type = "text" id = "name" name = "user_name">
				</label>
    </div>
    <div class = "user-input">
      <label for = "name">
  				<span>Guess</span></br>
  				<input type = "text" id = "name" name = "user_name">
				</label>
    </div>
  </section>
  <section class = "challenger-buttons">
    <button class = "submit">SUBMIT GUESS</button>
    <button class = "reset">RESET GAME</button>
    <button class = "clear">CLEAR GAME</button>
  </section>
</article>

загляни в box-sizing: border-box;, но только не внедряй - разберись ;)

zgood 28.01.2019 22:08

Вы должны попробовать это с box-sizing: border-box.

user3589620 28.01.2019 22:08

Кстати, у меня есть box-sizing: border-box, я опубликовал только фрагмент, касающийся конкретного html.

kevin 28.01.2019 22:13

Возможно, стоит использовать для этого CSS-сетка.

yainspan 28.01.2019 22:20
Улучшение производительности загрузки с помощью 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
5
622
3

Ответы 3

Полезным «сбросом» для включения в большинство CSS является * { box-sizing: border-box; } из-за того, как спроектирован коробочная модель. В обычной блочной модели отступы и границы добавляются к ширине элемента. Таким образом, элемент «100% ширины» на самом деле составляет 100% + граница + отступ. border-box меняет это так, что ширина + граница + отступы равны 100%.

Дополнительно: если вы хотите создать два элемента шириной ровно 50% рядом друг с другом, используя inline-block, вам нужно использовать отрицательное поле или трюк, чтобы удалить пробелы между элементами в вашей разметке. Это небольшая неприятность в HTML, и вы можете видеть в фрагменте ниже, я исправил это, выполнив </div, а затем заключительную закрывающую скобку на следующей строке ><div class = "user-input"> Небольшое количество места получает помещается между элементами inline-block, если в вашей разметке между ними есть пробелы.

* {
    box-sizing: border-box;
}

.guess-section {
    border: 1px solid red;
    width: 50%;
    background-color: #F7F7F7;
}

.guess-section article {
    background-color: #FFF;
    border: 2px solid #E0E0E0;
    margin: 2%;
    /*padding: 15px;*/
}

.r-low, .r-high {
    font-weight: 700;
    text-decoration: underline;
}

.user-input {
    display: inline-block;
    border: 1px solid red;
    height: 100px;
    width: 50%;
}

.user-input input {
    display: inline-block;
    width: 100%;
}
<article class = "set-challengers">
        <p>The Current Range is <span class = "r-low">1</span> to <span class = "r-high">100</span></p>
        <section class = "challenger2">
        <h3>Challenger 2</h3>
            <div class = "user-input">
                <label for = "name">
                <span>Name</span></br>
                <input type = "text" id = "name" name = "user_name">
                </label>
            </div
            ><div class = "user-input">
                <label for = "name">
                <span>Guess</span></br>
                <input type = "text" id = "name" name = "user_name">
                </label>
            </div>
        </section>
        <section class = "challenger-buttons">
            <button class = "submit">SUBMIT GUESS</button>
            <button class = "reset">RESET GAME</button>
            <button class = "clear">CLEAR GAME</button>
        </section>
</article>

Я думаю, что два .user-inputdivs должны быть 50%, ОП хочет, чтобы они были рядом. Не сложены.

Ryan Wilson 28.01.2019 22:14

Да, также добавлено редактирование для удаления пробелов, чтобы получить идеальные элементы 50/50.

Alejalapeno 28.01.2019 22:18

Хороший. Не знал про прикол whitespace в HTML. +1

Ryan Wilson 28.01.2019 22:20

box-sizing:border-box для родителя и его детей.

пытаться

    .challenger2 {
      postion: relative;
      overflow: hidden;
    }

    .user-input {
      float: left;
      border: 1px solid red;
      height: 100px;
      width: 50%;
      box-sizing: border-box;
    }

    .user-input input {
      display: inline-block;
      width: 100%;
      box-sizing: border-box;
    }

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