Как перекрывать div

Я пытаюсь добиться следующего результата: Желаемый результат Однако я зашел так далеко и застрял. Что я получаю

Это мой код:

.base {
  background: #e2e2e2;
  width: 1020px;
  height: 350px;
  position: absolute;
  top: 100px;
  left: 130px;
}
<div class = "section5" style = "width:100%;background-color:#f5f5f5;height:550px;position: relative;">
  <div class = "base"></div>
  <div class = "square1" style = "width:255px;height:193px;background-color:#969696; z-index:1;"></div>
</div>

Ваш код содержит только два квадрата. Существует ли фиксированное количество квадратов, например. 6 квадратов в ожидаемом результате? Или они генерируются динамически?

SyndRain 29.08.2024 17:12

Вам нужно 8 фигур, но у вас нет 8 элементов. Как вы ожидаете перейти от текущей ситуации к целевой с учетом вашего текущего кода?

TylerH 29.08.2024 17:45

я застрял на первом квадрате

RUMBIDZAI MUKUNGUNUGWA 30.08.2024 13: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
3
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Возможно поможет, выведено с помощью z-index, остальные поля вы можете настроить.

.section5{
  width:100%;
  background-color:#f5f5f5;
  height:550px;
  position: relative;
  z-index:0;
}
.square1{
  width:255px;
  height:193px;
  background-color:#969696; 
  position: relative;
  z-index:1;
}
.base{
    background:#e2e2e2;
    width:1020px;
    height:350px;
    position: absolute;
    top: 100px;
    left:130px;
  z-index: -1;
}
<div class = "section5">
    <div class = "base"></div>
    <div class = "square1"></div>
</div>
Ответ принят как подходящий

Начнем с основы нашего HTML:

<div class = "section5">
    <div class = "base"></div>
    <div class = "square"></div>
    <div class = "square"></div>
    <div class = "square"></div>
    <div class = "square"></div>
    <div class = "square"></div>
    <div class = "square"></div>
</div>

И стиль:

.section5 {
    position: relative;
    width: 800px;
    height: 600px;
    background-color: #f5f5f5
}

.base {
    position: relative;
    width: 600px;
    height: 400px;
    background-color: #e2e2e2;
    left: 100px;
    top: 100px;
}

.square {
    position: absolute;
    width: 150px;
    height: 120px;
    background-color: #969696;
}

Теперь мы можем использовать nth-of-type, чтобы сделать квадраты odd белыми:

.square:nth-child(odd) {
    background-color: white;
}

Чтобы вычислить абсолютное положение квадратов, если мы хотим, чтобы первый и последний квадрат имели зазор 50px от квадрата .section5, и у нас есть квадраты n, мы можем вычислить расстояние d между двумя соседними квадратами следующим образом:

d = (W - 2x - w) / (n - 1)

где W — ширина .section5, а x — зазор 50px, о котором мы упоминали ранее. Таким образом, d в данном случае будет 110px, поэтому left каждого квадрата нужно увеличить на 110px по сравнению с предыдущим.

Та же логика применима и к top.

И применив их, получаем конечный результат (открываем как на ладони)

.section5 {
    position: relative;
    width: 800px;
    height: 600px;
    background-color: #f5f5f5;
}

.base {
    position: relative;
    width: 600px;
    height: 400px;
    background-color: #e2e2e2;
    left: 100px;
    top: 100px;
}

.square {
    position: absolute;
    width: 150px;
    height: 120px;
    background-color: #969696;
}

/* Apply alternating background color to odd squares */
.square:nth-child(odd) {
    background-color: white;
}

/* Positioning the squares */
.square:nth-child(2) {
    left: 50px;
    top: 50px;
}

.square:nth-child(3) {
    left: 160px;
    top: 126px;
}

.square:nth-child(4) {
    left: 270px;
    top: 202px;
}

.square:nth-child(5) {
    left: 380px;
    top: 276px;
}

.square:nth-child(6) {
    left: 490px;
    top: 354px;
}

.square:nth-child(7) {
    left: 600px;
    top: 430px;
}
<div class = "section5">
    <div class = "base"></div>
    <div class = "square"></div>
    <div class = "square"></div>
    <div class = "square"></div>
    <div class = "square"></div>
    <div class = "square"></div>
    <div class = "square"></div>
</div>

Альтернативный подход с использованием переменных CSS:

.square {
    position: absolute;
    width: 150px;
    height: 120px;
    background-color: #969696;
    left: calc(50px + 110px * var(--i));
    top: calc(50px + 76px * var(--i));
}

.square:nth-child(2) { --i: 0; }
.square:nth-child(3) { --i: 1; }
.square:nth-child(4) { --i: 2; }
.square:nth-child(5) { --i: 3; }
.square:nth-child(6) { --i: 4; }
.square:nth-child(7) { --i: 5; }

Конечно, его можно рассчитать и сделать адаптивным с помощью небольшого количества JavaScript. Но это показывает процесс.

m-sarabi 29.08.2024 16:37

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

Похожие вопросы

Javascript – Как я могу изменить стиль своего приложения одним щелчком мыши, изменить его снова вторым щелчком мыши и вернуться к исходному стилю третьим щелчком мыши
Как получить URL-адрес категории продукта WooCommerce, чтобы отобразить его в метатеге HTML?
Простой сервер python3 http не размещает индексный файл в правильном каталоге
Как связать страницы в React js
Как использовать .querySelectorAll для элементов, созданных с помощью .insertAdjacentHTML
Отображение или скрытие элемента div на основе класса выбранной вкладки
Сделайте элемент липким до тех пор, пока анимация, управляемая прокруткой, не завершится
Почему прослушиватели событий для многоточия не работают
Как центрировать содержимое навигации и обеспечить растягивание фона на всю ширину на больших экранах?
Как найти элементы HTML и элементы управления ASP, имеющие ссылки на классы CSS, не имеющие определения в Visual Studio