<div class="container">
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
</div>
.container {
display: grid;
grid-gap: 10px;
grid-template-areas:
"A A B"
"A A C"
"A A D";
}
.card:nth-child(1) {
grid-area: A;
}
.card:nth-child(2) {
grid-area: B;
}
.card:nth-child(3) {
grid-area: C;
}
.card:nth-child(4) {
grid-area: D;
}
.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
.card:nth-child(1) {
grid-row: span 3;
grid-column: span 2;
}
const button = document.querySelector(".button");
const container = document.querySelector(".container");
button.addEventListener("click", async () => {
const response = await fetch("./path/sample.html");
const result = await response.text();
const parser = new DOMParser();
const DOM = parser.parseFromString(result, "text/html");
const targetContent = DOM.querySelector("body").innerHTML;
container.insertAdjacentHTML("afterbegin", targetContent);
});
.register__inner {
width: 100%;
}
.register__form {
width: 100%;
max-width: 1000px;
margin: 0 auto;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
grid-gap: 10px;
}
.register__input {
width: 100%;
height: 65px;
border: 1px solid #d8d8d8;
border-radius: 5px;
padding: 27px 24px 23px;
}
.register__btn {
width: 100%;
height: 65px;
border: none;
border-radius: 5px;
background: #ffe100;
}
<div class="container">
<div class="card"></div>
<div class="card"></div>
<div class="card"></div>
</div>
.container {
display: grid;
grid-auto-flow: column;
grid-gap: 10px;
grid-template-areas:
"A B"
"A C";
}
.card:nth-child(1) {
grid-area: A;
}
.card:nth-child(2) {
grid-area: B;
}
.card:nth-child(3) {
grid-area: C;
}
.container{
display: grid;
grid-gap: 10px;
grid-template-columns: repeat(2, 1fr);
}
.card:nth-child(1) {
grid-row: 1 / span 2;
}
Добавил бургер меню на свой сайт портфолио.
<script src="/source/js/script.js"></script>
- <script src="/source/js/script.js"></script>
+ <script src="source/js/script.js"></script>
const swiper = new Swiper('.swiper', {
breakpoints: {
640: {
slidesPerView: 2,
},
768: {
slidesPerView: 4,
},
1024: {
slidesPerView: 5,
},
}
});
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit</p>
<p>Lorem
ipsum dolor sit amet consectetur adipisicing elit. </p>
<p class="target">Lorem ipsum dolor sit amet consectetur adipisicing elit</p>
const target = document.querySelector(".target");
target.innerHTML = target.innerText
.split(" ")
.map((w, i) => (i > 0 ? w : `<span>${w}</span>`))
.join(" ");
.target > span:first-child {
display: block;
}
function getAllNextSiblings(el, subElement, selectorFilter) {
let collection = [];
let target = el.nextElementSibling;
while (target) {
if (target.matches(subElement)) break;
if (selectorFilter && !target.matches(selectorFilter)) {
target = target.nextElementSibling;
continue;
}
collection.push(target.textContent.trim());
target = target.nextElementSibling;
}
return collection;
}
// собираем заголовки и параграфы в массив объектов
// разбивая полученные данные на группы
[...document.querySelectorAll("h1")].map(target => {
return {
heading: target.textContent,
paragraphs: getAllNextSiblings(target, "h1", "p")
};
});
<div class="container">
<h1>Глава 1</h1>
<p>Текстовой блок - 1</p>
<p>Текстовой блок - 2</p>
<p>Текстовой блок - 3</p>
<p>Текстовой блок - 4</p>
<h1>Глава 2</h1>
<p>Текстовой блок - 1</p>
<p>Текстовой блок - 2</p>
<p>Текстовой блок - 3</p>
</div>
[
{
"heading": "Глава 1",
"paragraphs": [
"Текстовой блок - 1",
"Текстовой блок - 2",
"Текстовой блок - 3",
"Текстовой блок - 4"
]
},
{
"heading": "Глава 2",
"paragraphs": [
"Текстовой блок - 1",
"Текстовой блок - 2",
"Текстовой блок - 3"
]
}
]