Как мне сделать так, чтобы определенная часть моего веб-сайта выглядела так? (Используя HTML и CSS.)

#html #css #css-grid

#HTML #css #css-сетка

Вопрос:

В настоящее время я пытаюсь создать базовый веб-сайт, используя HTML, CSS и Javascript. Однако есть определенная часть этого веб-сайта, с созданием которой у меня возникают трудности. Вот как должен выглядеть раздел, причем часть слева — это та часть, которая больше всего сбивает меня с толку. Это раздел, который должен содержать четыре основных квадрата рядом друг с другом; Изображение 1 (ссылка ранее) обеспечивает визуальное представление.

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

Вот html-код, стоящий за этим:

    <div class="top-large-left">
                        <h3 id="hot">Interaction</h3>                     
                    </div>                   
                    <div class="small-top-right">
                        <h3 id="item">Location</h3>
                    </div>
                    <div class="large-left-section">
                        <div>
                            <section class="left-section">
                                <div class="btn-group button">
                                    <div class="button1">
                                <button type="button1">Display X, Y</button>
                                </div>
                                <div class="button2">
                                <button type="button2">Theme</button>
                                </div>
                                <div class="button3">
                                <button type="button3">Modal</button>
                                </div>
                                <div class="button4">
                                <button type="button4">Swap Image</button>
                            </div>
                                

                            </section>
                        </div>
 

А также CSS:

  .btn-group button {
    background-color: #428bca;
    border-radius: 5px;
    font-weight: bold;
    font-size: 15px;
    color: white;
    padding: 32px 19px;
    cursor: pointer;
    display: inline-block;
    margin: 2px 2px;
    border: 1px;
    text-align: center;
    line-height: 25px;
  }
  .button1 {
    width: 130px;
  }  
  .button2 {
    width: 130px;
    
  }
  .button3 {
    width: 130px;
  }
  .button4 {
    width: 130px;
  }
 

Как я смогу добиться того, что показано на первом изображении? Мне нужно использовать функцию css-grid или что-то еще?Не стесняйтесь говорить, если мне нужно предоставить дополнительную информацию, спасибо.

Ответ №1:

Flex — это ваше решение здесь. Flex упрощает вашу жизнь.

Запустите фрагмент на полное окно. (Полная страница)

  .top-large-left {
    background-color: #428bca;
    padding: 0 1rem;
 }
  .top-large-left h3 {
    margin:0;
  }
 .wrapper {
   display:flex;
   flex-direction:row;
 }
 .large-left-section,
 .large-right-section{
    flex: 1 1 50%;
    border: 10px solid lightgrey;
    text-align: center;
    margin:5px; 
}
 .btn-group button {
    background-color: #428bca;
    border-radius: 5px;
    font-weight: bold;
    font-size: 15px;
    color: white;
    padding: 32px 19px;
    cursor: pointer;
    display: inline-block;
    margin: 2px 2px;
    border: 1px;
    text-align: center;
    line-height: 25px;
  }
.large-left-section .left-section .btn-group.button{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
.large-left-section .left-section .btn-group.button .btn {
    flex: 0 0 45%;
    margin:5px;
}
.large-left-section .left-section .btn-group.button .btn button {
  width:100%;
} 
 <div class="top-large-left">
  <h3 id="hot">Interaction</h3>                     
</div> 
<div class="wrapper">
  <div class="large-left-section">
    <section class="left-section">
        <div class="btn-group button">
           <div class="btn button1">
            <button type="button1">Display X, Y</button>
          </div>
          <div class="btn button2">
            <button type="button2">Theme</button>
          </div>
          <div class="btn button3">
            <button type="button3">Modal</button>
          </div>
          <div class="btn button4">
            <button type="button4">Swap Image</button>
          </div>
        </div>
    </section>
  </div>
  <div class="large-right-section">

  </div>
</div> 

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

1. Я бы рекомендовал использовать css-grid для такой задачи поверх flexbox. У него нет проблемы с необходимостью запуска при полном запуске для работы. Если вам нужен макет, подобный таблице, как в этом случае, то css-grid — лучший инструмент, поскольку вы можете одновременно управлять шириной и высотой.