Разрешение потребности с кнопкой внутри div

Я пытаюсь сделать простую страницу, с 3 div, 1-top div, выступает в качестве заголовка,
другие 2 Каждый рядом с другим с небольшим зазором. До сих пор так хорошо, это, как мой код выглядит:

HTML

<!DOCTYPE html>
<html>
 <head>
   <meta charset="UTF-8">
   <title></title>
   <link rel="stylesheet" type="text/css" href="css/style.css">
 </head>
 <body>
  <div id="main">
    <div class="head">GIMP & Inscape galerija</div>
    <div class="content"><button>Test</button></div>
    <div class="outcome">Here is the outcome, that will come, when i will press buttons</div>
  </div>
 </body>
</html>

и CSS

body {
    background-image: url("../img/background.jpg");
    background-repeat: no-repeat;
}
#main {
    width: 1400px;
    margin: 0 auto;
    position: relative;
}
.head {
    width: 1400px;
    height: 100px;
    margin: 0 auto;
    border: solid 1px;
    border-radius: 25px;
    text-align: center;
    line-height: normal;
    display: flex;
    justify-content:center;
    align-content:center;
    flex-direction:column;
    margin-top: 50px;
}
.content {
    width: 350px;
    margin: 0 auto;
    height: 600px;
    border: solid 1px;
    margin: 35px 0px 0px 0px;
    border-radius: 10px;
    display: inline-block;
}
.outcome {
    width: 991px;
    height: 600px;
    border: solid 1px;
    margin: 0 auto;
    margin-left:50px;
    border-radius: 10px;
    display: inline-block;
}

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

2 ответа

  1. Я ввел код в JSBin. Это, кажется, хорошо работает с одной или несколькими кнопками, и эти обновления должны помочь достичь этого.

    Внесенные изменения:

    • Добавлены display: flexи flex-direction: columnсвойства #mainв. Я думаю, что это то, что вы собирались в .headпервоначально.
    • Добавил a .rowобернуть оба .contentи .outcome.
    • Рефакторинг .contentи .outcomeCSS для объединения похожего кода. А также сделать их использовать %ширину вместо фиксированной ширины, чтобы помочь с отзывчивостью.

    Вот полный CSS:

    * {
      box-sizing: border-box;
    }
    
    #main {
      max-width: 1400px;
      margin: 0 auto;
      position: relative;
      display: flex;
      flex-direction: column;
    }
    
    .head {
      width: 100%;
      height: 100px;
      margin: 50px auto 35px;
      border: solid 1px;
      border-radius: 25px;
      text-align: center;
      line-height: normal;
      justify-content: center;
      align-content: center;
      flex-direction:column;
    }
    
    .row {
      display: flex;
      flex-direction: row;
    }
    
    .content,
    .outcome {
      height: 600px;
      border: solid 1px;
      border-radius: 10px;
    }
    
    .content {
      width: 33%;
      margin: 0 30px 0 0;
    }
    
    .outcome {
      width: 66%;
    }
    

    http://jsbin.com/kihojed/edit?html, css, выход

  2. Можно добавить float:leftк содержимому div и float:rightк результату div. Это гарантирует, что div не пойдет вниз.

    .content {
        width: 350px;
        margin: 0 auto;
        height: 600px;
        border: solid 1px;
        margin: 35px 0px 0px 0px;
        border-radius: 10px;
        float:left; //Added this
    }
    .outcome {
        width: 991px;
        height: 600px;
        border: solid 1px;
        margin: 0 auto;
        border-radius: 10px;
        float:right; //Added this
        margin-top:35px; //Added this to bring outcome div at same height
    }
    

    https://jsfiddle.net/varunsinghal65/e8t79jby/#&togetherjs=EwUt1Vdnd8

    Вот ваш ans: почему этот элемент встроенного блока сдвинут вниз?

    Это может помочь вам !