ЖСО-201. Цифровые коммуникации. Практическое задание №4. Текстовый лендинг со сроком акции
Вам необходимо создать лендинг с пятью абзацами текста, описывающими акцию. Одним скрытым абзацом с подробными условиями и счетчиком, отмеряющим время до окончания акции. Вам также потребуется фоновая картинка, иллюстрирующая продвигаемый товар или услугу.
Картинку, CSS и JavaScript вы загружаете на Github. CSS и JavaScript перед встраиванием конвертируете через raw.githack.com
I CSS:
1) Начинаем с указания универсального селектора и отображения лендинга в виде блока:
* {
box-sizing: border-box;
}
2) Далее указываем в селекторе шрифт, ширину и вашу фоновую картинку:
html, body {
font-family: 'Open Sans', sans-serif;
height: 100%;
margin: 0;
background: url("тут ваше фото");
background-size: cover;
}
3) В классе объекта указываем ширину и отступы:
.box {
width: 100%;
padding-right: 15px;
padding-left: 15px;
margin: auto;
}
4) Создаем класс лендинга с расположением, и его производных: хэдера лендинга и ссылок в лендинге и заголовков. Можете изменить цвета на свои:
.landing {
position: relative;
background-color: transparent;
}
.landing .header {
display: inline;
padding: 10px 0 0;
position: relative;
}
.landing .header .links {
display: inline;
padding: 0;
margin: 0;
width: 100%;
text-align: right;
}
.landing .header .links li {
display: inline-block;
margin-left: 5px;
cursor: pointer;
}
.landing .header .links li:last-child {
border: 0;
border-radius: 20px;
padding: 10px 18px;
color: #FFF;
background-color: #6c63ff;
font-size: 18px;
}
.landing .info {
width: 100%;
float: left;
margin-top: 130px;
}
.landing .info h1 {
font-size: 44px;
margin: 0 0 20px;
line-height: 1.4;
color: white;
}
.landing .info p {
margin: 0;
line-height: 1.6;
font-size: 15px;
color: aqua;
}
.landing .info button {
border: 0;
border-radius: 20px;
padding: 12px 30px;
margin-top: 30px;
cursor: pointer;
color: #FFF;
background-color: #6c63ff;
}
5) В классах фиксации и контейнера указываем, что ссылки-вкладки будут отображаться блоками:
.clearfix {
clear: both;
}
.container {
display: block;
color: transparent;
margin: 0 auto;
text-align: center;
}
6) Селекторы заголовка и ссылок - указываем отступы и цвет текста (используйте свой, если необходимо):
h2 {
font-weight: normal;
letter-spacing: .125rem;
text-transform: lowercase;
color: yellow;
}
li {
display: inline-block;
font-size: 1.5em;
list-style-type: none;
padding: 1em;
text-transform: lowercase;
color: yellow;
font-size: 18px;
}
li span {
display: block;
font-size: 4.5rem;
}
7) Это параметры адаптивного отображения. Просто скопируйте:
@media all and (max-width: 768px) {
h2 {
font-size: calc(1.5rem * var(--smaller));
}
li {
font-size: calc(1.125rem * var(--smaller));
}
li span {
font-size: calc(3.375rem * var(--smaller));
}
}
8) Блок скрытого текста под спойлером. Задаем позиции кнопки и ее фоновый цвет:
button:focus {
outline: none;
}
#spoiler_button {
border: 0;
border-radius: 20px;
padding: 10px 18px;
color: #FFF;
background-color: #6c63ff;
font-size: 18px;
}
#spoiler_button:hover {
border: 0;
border-radius: 20px;
padding: 10px 18px;
color: #FFF;
background-color: aqua;
font-size: 18px;
}
#spoiler_button:active {
border: 0;
border-radius: 20px;
padding: 10px 18px;
color: #FFF;
background-color: aqua;
font-size: 18px;
}
.fadein, .fadeout {
height: 0;
-moz-transition: opacity 1s ease-in-out;
-o-transition: opacity 1s ease-in-out;
-webkit-transition: opacity 1s ease-in-out;
opacity: 0;
}
.fadein {
height: 100%;
opacity: 1;
}
9) Создаем идентификатор селектора для дополнительного текста (под счетчиком акции):
#additional p {
margin: 0;
line-height: 1.6;
font-size: 15px;
color: yellow;
}
II HTML
10) Указываем тип страницы, заголовок вкладки и шрифт:
<html lang="en">
<head>
<meta charset="UTF-8"></meta>
<title>Здесь заголовок вашей вкладки</title>
<link href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&display=swap" rel="stylesheet"></link>
11) Встраиваем библиотеку CSS. Скачать ее можно здесь: https://raw.githubusercontent.com/Dmitrykonn/specimen/master/normalize.css
После этого загрузите ее в Github, конвертируйте через raw.githack.com и встройте как CSS.
12) Встройте ваш CSS.
13) Закройте </head> внутри <body> создайте классы лендинга и общей оболочки:
<div class="landing">
<div class="box">
14) Теперь нам нужно сделать ссылки-вкладки, ведущие к абзацам текста. Для этого открываем соответствующие классы:
<div class="header">
<ul class="links">
15) Задаем в них названия ваших вкладок и ставим в адресе закладки по типу: #place3. Такие же закладки далее нужно будет внедрить в соответствующие места в тексте. Название вкладок и цвет их текста укажите свои:
<li><a href="#place3" style="color: white;">Название</a></li>
<li><a href="#place4" style="color: white;">Название</a></li>
<li><a href="#place5" style="color: white;">Название</a></li>
<li><a href="#place2" style="color: white;">Название</a></li>
<li><a href="#place1" style="color: white;">Название</a></li>
16) Закрываем классы:
</ul>
</div>
17) Располагаем сам текст лендинга:
<div class="info">
<h1>Здесь ваш заголовок лендинга</h1>
<p>Это первый абзац</p>
<p id="place1">Это второй абзац</p>
Обратите внимание, что для внедрения закладки используется идентификатор: id="place1". Используйте такие идентификаторы и для других вкладок по ссылкам.
18) Подключаем кнопку спойлера:
<button id="spoiler_button" name="spoiler_button" type="button">название</button>
19) А теперь сам текст спойлера:
<div class="fadeout" id="spoiler_text">
<p>Здесь содержимое вашего спойлера</p>
</div>
20) Закрываем оставшиеся классы:
</div>
</div>
21) Обозначаем разделитель:
<div class="clearfix">
</div>
</div>
22) Теперь встраиваем контейнер счетчика. В моем примере он указан с закладкой. Может оставить ее в этом месте, можете поменять:
<div class="container" id="place2">
<h2 id="headline">До окончания акции осталось</h2>
<div id="countdown">
<ul>
<li><span id="days"></span>дней</li>
<li><span id="hours"></span>часов</li>
<li><span id="minutes"></span>минут</li>
<li><span id="seconds"></span>секунд</li>
</ul>
</div>
</div>
23) И добавляем блок текста внизу под счетчиком акции:
<div id="additional">
<p>Текст в первом абзаце</p>
<br>
<p>Текст во втором абзаце</p>
<br>
<p>Текст в третьем абзаце</p>
</div>
III JavaScript
24) Теперь нам нужно задать динамику счетчика. Для этого создаем файл JavaScript. Указываем в нем функции отсчета времени:
(function () {
const second = 1000,
minute = second * 60,
hour = minute * 60,
day = hour * 24;
25) Задаем дату окончания по типу месяц/день:
let today = new Date(),
dd = String(today.getDate()).padStart(2, "0"),
mm = String(today.getMonth() + 1).padStart(2, "0"),
yyyy = today.getFullYear(),
nextYear = yyyy + 1,
dayMonth = "05/15/", //дата окончания
date = dayMonth + yyyy;
today = mm + "/" + dd + "/" + yyyy;
if (today > date) {
date = dayMonth + nextYear;
}
26) Функции отображения даты:
const countDown = new Date(date).getTime(),
x = setInterval(function() {
const now = new Date().getTime(),
distance = countDown - now;
document.getElementById("days").innerText = Math.floor(distance / (day)),
document.getElementById("hours").innerText = Math.floor((distance % (day)) / (hour)),
document.getElementById("minutes").innerText = Math.floor((distance % (hour)) / (minute)),
document.getElementById("seconds").innerText = Math.floor((distance % (minute)) / second);
if (distance < 0) {
document.getElementById("headline").innerText = "Акция!";
document.getElementById("countdown").style.display = "none";
document.getElementById("content").style.display = "block";
clearInterval(x);
}
//seconds
}, 0)
}());
27) Динамику раскрытия спойлера и текст в кнопке спойлера (можете заменить на свой):
var divToggleVis = document.getElementById('spoiler_text');
var button = document.getElementById('spoiler_button');
button.onclick = function() {
if (divToggleVis.className === 'fadeout') {
divToggleVis.className = 'fadein';
} else {
divToggleVis.className = 'fadeout';
}
if (button.innerHTML === 'узнать') {
button.innerHTML = 'скрыть';
} else {
button.innerHTML = 'узнать';
}
};
28) Сохраняете ваш JS, загружаете его на Github, конвертируете ссылку, встраиваете ее по правилам встраивания JavaScript.
29) Закрываете оставшиеся теги:
</body>
</html>
Если все верно, то ваш результат будет выглядеть примерно так: https://konoplevdigital.blogspot.com/p/landing-countdown-box-sizing-border.html
Проверьте: у вас должен работать счетчик, открываться пять ссылок на закладки и раскрываться спойлер.
Ссылки на выполненное задание принимаются в комментариях к данному посту до 15:00 17 марта.
Предыдущий лендинг https://yushkovajso201.blogspot.com/2025/03/landing-import-urlhttpsfonts.html
ОтветитьУдалитьтаблица https://yushkovajso201.blogspot.com/2025/03/apple-world-develop-conference.html
Предыдущее задание - "хорошо". Ссылка на второе задание не рабочая - ведет на пустую страницу.
Удалитьпоследний лендинг https://yushkovajso201.blogspot.com/2025/03/blog-post.html
Удалитьтаблица анализ https://yushkovajso201.blogspot.com/2025/03/apple-world-develop-conference_14.html
Текущее задание - "отлично", долг - "хорошо"
Удалитьhttps://dashakaravaeva.blogspot.com/2025/03/blog-post_12.html Даша Караваева
ОтветитьУдалитьОценка "отлично"
УдалитьСедов Егор
ОтветитьУдалитьhttps://sedovegor.blogspot.com/2025/03/selected_12.html#place1
Оценка "отлично"
УдалитьСедов Егор предыдущий лендинг
ОтветитьУдалитьhttps://sedovegor.blogspot.com/2025/03/landing-since-2020-selected-books-and.html
Оценка "отлично"
УдалитьМитрошина https://msm2206.blogspot.com/2025/03/eee.html
ОтветитьУдалитьОценка "хорошо" - три вкладки меню некликабельны.
УдалитьЛера Бычкова https://leaeraea.blogspot.com/2025/03/blog-post_12.html
ОтветитьУдалитьОценка "хорошо" - у вас тоже из пяти вкладок три нерабочие.
УдалитьНиязова Ангелина https://lliinaoa.blogspot.com/2025/03/3-12-3-4-20-natures-bounty-50.html
ОтветитьУдалитьОценка "отлично"
УдалитьКириллова Наталья https://kirillova-natalya-d.blogspot.com/2025/03/4.html#place5
ОтветитьУдалитьОценка "отлично"
УдалитьКараваева предыдущий лендинг https://dashakaravaeva.blogspot.com/2025/03/landing.html
ОтветитьУдалитьПринято, оценка "хорошо"
УдалитьФедоров Степан: https://steffed.blogspot.com/2025/03/verite-verite.html
ОтветитьУдалитьНе принято. Счетчик у вас сделан прозрачным, а потому не виден. Либо уберите прозрачный цвет, там, где вы его задали, либо впишите параметры цвета (например, так: style="color: white") в теги html - h2 id="headline" и div id="countdown". Жду исправленный вариант.
УдалитьФедоров Степан (исправленный вариант): https://steffed.blogspot.com/2025/03/verite-verite.html
ОтветитьУдалитьОценка "отлично"
УдалитьПеревышина Дарья: https://dariartemi.blogspot.com/2025/03/box-sizing-border-box-html-body-font.html
ОтветитьУдалитьОценка "отлично"
УдалитьЕлсуков Степан: https://elsukovstepan.blogspot.com/2025/03/box-sizing-border-box-margin-0-padding_13.html
ОтветитьУдалитьНе принято. В css вы не следуете заданию - ошибки в селекторах html и body, а JavaScript не содержит параметров счетчика. Жду исправленный вариант.
УдалитьКсения Кудряшова https://akiraguuuuu.blogspot.com/2025/03/sylvanian-families-sylvanian-families.html
ОтветитьУдалитьОценка "отлично"
УдалитьКсения Кудряшова предыдущий лендинг https://akiraguuuuu.blogspot.com/2025/03/landing_13.html
ОтветитьУдалитьПринято, оценка "хорошо"
УдалитьЕлизавета Пермякова https://lililiad201.blogspot.com/p/blog-page_14.html
ОтветитьУдалитьОценка "отлично"
УдалитьЧепель Полина предыдущее задание https://chplpo.blogspot.com/2025/03/landing_14.html второе задание https://chplpo.blogspot.com/2025/03/blog-post_14.html
ОтветитьУдалитьДолг - оценка "хорошо", текущее задание не принято - не работает счетчик акции. У вас в JavaScript неожиданно проникли куски html. Переделайте JavaScript. Жду исправленный вариант.
Удалитьисправленный вариант https://chplpo.blogspot.com/2025/03/blog-post_21.html
УдалитьОценка "отлично"
УдалитьСтарицына Полина https://strawberrrrry.blogspot.com/2025/03/box-sizing-border-box-html-body-font.html
ОтветитьУдалитьОценка "отлично"
УдалитьЮскина Полина предыдущее задание https://polinayuskina.blogspot.com/2025/03/bodyshape1.html
ОтветитьУдалитьПринято, оценка "хорошо"
УдалитьНураева Лина https://nuraevalinaa.blogspot.com/2025/03/hug-hug-hug.html
ОтветитьУдалитьОценка "отлично"
УдалитьЮскина Полина https://polinayuskina.blogspot.com/2025/03/bodyshape-about-us-rules-training_20.html
ОтветитьУдалитьОценка "отлично"
УдалитьПредыдущее задание: https://malkovsa.blogspot.com/2025/03/landing-import-urlhttpsfonts_12.html
ОтветитьУдалитьПринято, оценка "хорошо"
Удалитьhttps://malkovsa.blogspot.com/2025/03/box-sizing-border-box-html-body-font_16.html
ОтветитьУдалитьОценка "отлично"
Удалитьhttps://elsukovstepan.blogspot.com/2025/03/box-sizing-border-box-html-body-font.html
ОтветитьУдалитьИсправил)
Оценка "отлично"
Удалитьhttps://ohotaohyeeah.blogspot.com/2025/03/carti.html
ОтветитьУдалитьОценка "отлично"
УдалитьШишканов Григорий
ОтветитьУдалитьhttps://icealabaster.blogspot.com/2025/03/blog-post_16.html
Оценка "отлично"
УдалитьИбрагимова Карина предыдущее задание https://karinankaaa.blogspot.com/2025/03/hjvug.html
ОтветитьУдалитьПринято, оценка "хорошо"
УдалитьИбрагимова Карина https://karinankaaa.blogspot.com/2025/03/travelzen-about-us-rules-select-country.html
ОтветитьУдалитьОценка "отлично"
УдалитьФомин Дмитрий https://dmitriyzhso201.blogspot.com/2025/03/bones.html
ОтветитьУдалитьОценка "отлично"
УдалитьКузнецов Артем https://artemsvo2005.blogspot.com/2025/03/maincraft.html
ОтветитьУдалитьОценка "отлично"
УдалитьПредыдущий лендинг https://evgeniistar.blogspot.com/2025/03/blog-post_16.html
ОтветитьУдалитьНе принято. Измените цвет текста - сейчас он белый и ничего не видно.
Удалитьhttps://nikitazykov.blogspot.com/2025/03/ecosmart-30-box-sizing-border-box.html
ОтветитьУдалитьОценка "хорошо", вы не следуете пунктам задания.
УдалитьСтарицын Евгений https://evgeniistar.blogspot.com/2025/03/blog-post_43.html
ОтветитьУдалитьНе принято. JavaScript не встроен - указана пустая ссылка.
УдалитьИсправленный https://evgeniistar.blogspot.com/2025/03/blog-post_16.html
ОтветитьУдалитьПринято, оценка "хорошо"
Удалитьhttps://bystrova21.blogspot.com/2025/03/4.html
ОтветитьУдалитьБыстрова Полина
Оценка "отлично"
УдалитьПредыдущий лендинг https://pnevayana.blogspot.com/2025/03/blog-post_3.html
ОтветитьУдалитьТекущий лендинг https://pnevayana.blogspot.com/2025/03/blog-post_17.html#place3
Долг - "хорошо", данное задание - "отлично"
Удалить