Как мне выровнять все мои div в одной строке?

#html #css

#HTML #css

Вопрос:

Я просмотрел кучу веб-сайтов, но ни один из них у меня не работал. Вероятно, я упускаю что-то действительно простое.

 #container {
  width:100%;
}

#one {
  background-color:blue;
  width:20%;
  height:50%;
}

#two {
  background-color:green;
  width:20%;
  height:50%;
}

#three {
  background-color:yellow;
  width:20%;
  height:50%;
}

#four {
  background-color:orange;
  width:20%;
  height:50%;
}

#five {
  background-color:red;
  width:20%;
  height:50%;
}
  

Вот как я хочу, чтобы это выглядело:

изображение

Он не отображает много, что, как я подозреваю, связано с высотой: 50%… Заранее спасибо 🙂

Комментарии:

1. Пожалуйста, предоставьте несколько скриншотов того, что вы получаете, и сделайте то, что вы хотите (ish) в paint или другом редакторе.

2. Извините, я не смог поместить реальную картинку, у меня была недостаточно высокая репутация

3. В следующий раз свяжите один из них в imgur.

4. Я так и сделал. Я отредактировал это

5. О, это автоматически встроилось!

Ответ №1:

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

 #container #one, #container #two, #container #three, #container #four, #container #five {
 float:left;
}
  

или вы можете использовать встроенный блок отображения

 #container #one, #container #two, #container #three, #container #four, #container #five {
     display:inline-block;
    }
  

Чтобы выровнять divs по центру, если над ними осталось какое-либо пространство, вы можете добавить выравнивание текста по центру, чтобы обеспечить правильное центрирование divs в вашем контейнере. Это работает только при использовании встроенного блока отображения в вашем контейнере.

 #container {
         text-align:center;
        }
  

Комментарии:

1. float: left; — это маршрут, которым я всегда пользуюсь, потому что он очень хорошо справляется с переносом, особенно если вы можете гарантировать размеры div с помощью CSS (что, конечно, очень просто).

2. Ничего не отображалось… В любом случае спасибо

3. Можете ли вы показать пример, когда он не отображается с использованием моего метода? Я был бы рад помочь заставить это работать.

Ответ №2:

Чтобы поместить все div в одну строку, используйте

 display:inline-block;
  

если хотите отобразить divs в следующей строке,
использовать

 display:block;
  

по умолчанию установлено значение блокировать;

 #container {
width:100%;
  
}
#one,#two,#three,#four,#five{
width:20%;
height:50%;
}
#one {
background-color:blue;
display:inline-block;
}

#two {
background-color:green;
display:inline-block;
}
#three {
background-color:yellow;
  display:inline-block;
}
#four {
background-color:orange;
}
#five {
background-color:red;
}  
 <div id="container">
  <div id="one">
    One
   </div>
   <div id="two">
     Two
   </div>
   <div id="three">
     Three
   </div>
  <div id="four">
     four
   </div>
  <div id="five">
     five
   </div>
</div>  

Надеюсь, это поможет

Комментарии:

1. То же самое, ничего не отображается

Ответ №3:

Я немного изменил ваш код, но это должно вывести то, что вы ищете.

Вы отображаете divs в строке и располагаете их относительно друг друга с небольшим отрицательным запасом, чтобы они занимали 20% ширины каждый.

В комментарии вы упомянули, что хотите «сделать его ровно на 50% выше», поэтому вам нужно указать 100% высоту тела, а затем задать для divs значение 50% height:

 html,
body {
  height: 100%;
}
div {
  display: inline-block;
  width: 20%;
  height: 50%;
  position: relative;
  margin: -2px;
}
#one {
  background-color: lightblue;
}
#two {
  background-color: green;
}
#three {
  background-color: yellow;
}
#four {
  background-color: orange;
}
#five {
  background-color: red;
}  
 <div id="one">

</div>

<div id="two">

</div>

<div id="three">

</div>

<div id="four">
</div>

<div id="five">

</div>  

Ответ №4:

я не уверен, что это то, о чем вы спрашиваете, но, возможно, вам просто нужно

 div{float:right;}
  

Ответ №5:

Попробуйте это:

 #container {
  width: 100%;
  height: 300px;
  border: 1px solid #000;
}
#container div {
  width: 20%;
  height: 50%;
  float: left;
}
#element-1 {
  background-color: red;
}
#element-2 {
  background-color: blue;
}
#element-3 {
  background-color: pink;
}
#element-4 {
  background-color: yellow;
}
#element-5 {
  background-color: green;
}  
 <div id="container">
  <div id="element-1"></div>
  <div id="element-2"></div>
  <div id="element-3"></div>
  <div id="element-4"></div>
  <div id="element-5"></div>
</div>  

Я в некотором роде помог

Комментарии:

1. Это сработало, но есть ли способ увеличить его высоту ровно на 50%? Потому что я хочу, чтобы это было примерно одинаково на любом устройстве… В любом случае спасибо: D

2. @SenpaiSaitama Да, есть другой способ. Я немного обновил приведенный выше пример css.

3. На самом деле это ничего не изменило, кроме границы, и сделало ее короче, чем раньше, lol. В любом случае спасибо