Сегодня мы сделаем фронтенд для собственного веб-приложения — планировщика задач.
В планировщиках информацию чаще всего организуют в виде карточек — с ними сразу видно, к чему относится задача, какие у неё теги, статус, дедлайн и всё остальное. Чтобы пользователю было удобно этим пользоваться, карточки красиво верстают на экране и добавляют возможность вывести какие-то отдельные по категориям. Сегодня мы сделаем то же самое: сверстаем страницу с карточками и сделаем фильтр, чтобы скрывать ненужное:
Что понадобится
Собирать страницу будем на чистом HTML и CSS — двух основных инструментах веб-разработчика. Если для вас это новая тема, будет немного сложно, поэтому почитайте перед стартом нашу подборку:
- Что такое HTML (и почему это важно)
- 7 полезных HTML-тегов, про которые мало кто знает
- Почему некоторые разработчики ругают вёрстку на «div»
- Зачем нужны переменные в CSS
- 10 полезных инструментов для создания роскошного CSS
- Одной строкой: новые CSS-команды для фронтендов
- Ещё больше полезных CSS-команд
То, что мы будем делать сегодня, — это работа фронтент-разработчика: мы будем работать над тем, что стоит на «переднем крае», то есть в браузере. А ещё есть бэкенд — то, что позволяет хранить наши задачи, давать к ним доступ по паролю, добавлять, удалять и делиться. С этим поработаем в другие разы.
Выигранный миллион рублей отказались выдавать победителям в букмекерской конторе
Создаём страницу
Как обычно, на странице мы разместим только контент, а всю красоту будем наводить в стилях. Создаём стандартный HTML-файл, сохраняем его как index.html и добавляем в него два вложенных блока — wrapper и flexDiv . Первый будет отвечать за общие настройки страницы, а второй — за поведение элементов внутри неё.
После этого добавим теги — это будут простые чекбоксы, у которых мы в стилях скроем галочку и добавим красоты. Запишем всё в виде HTML-кода и откроем страницу в браузере:
Карточки с фильтрами Личное Работа Работа Личное Почитать Работа Почитать Работа Личное
На странице появилось всё, что нам нужно, но на карточки это не похоже. Всё дело в том, что у нас нет подключённых и настроенных стилей. Исправим это и постепенно сделаем всё красиво.
Подключаем стили
Если HTML задаёт то, что будет на странице, то CSS определяет, как это будет выглядеть. Чтобы подключить CSS-файл к странице, добавим в шапку такую строку:
Теперь создадим указанный файл style.css и пропишем в нём сначала общие настройки для страницы и контента:
Вот что у нас получилось:
- контент выровнялся по центру страницы;
- теги выбора стали в одну строку вместе с чекбоксами;
- текст разбился на карточки, хотя это сейчас и выглядит странно;
- в карточках видно, что тег прикреплён точно под текстом.
Теперь настроим внешний вид всех элементов по очереди и начнём с тегов.
Жуткое видео от ИИ о будущей эволюции человечества + пасхалка!
Настраиваем теги
Сначала наведём порядок в тегах:
- скроем флажок чекбокса у тегов;
- настроим общие отступы;
- сдвинем теги наверху так, чтобы они не наезжали друг на друга и не слипались;
- настроим скругления;
- добавим решётку перед каждым тегом.
Для этого каждый пункт выполним в отдельных классах — мы их использовали на странице, теперь вдохнём в них жизнь. Как обычно, мы подписали каждую строку кода, чтобы было проще разобраться, что происходит в каждом стиле:
/* скрываем флажок у чекбокса */ input[type=»checkbox»] < display: none; >/* абсолютное позиционирование для тегов */ .pos-abs < /* включаем абсолютное позиционирование */ position: absolute; /* отступ сверху */ top: -50px; /* внутренний отступ до левой и верхней границы */ margin: 8px; margin-top: 8px !important; >/* для тега с личными записями */ .pos-abs.personal < /* двигаем тег левее */ left: 102px; >/* для тега с рабочими записями */ .pos-abs.read < /* двигаем тег ещё левее */ left: 208px; >/* общие настройки для тегов */ .tag < /* внешние отступы */ padding: 6px 12px; /* подгоняем размер блока под содержимое */ width: -webkit-fit-content; width: -moz-fit-content; width: fit-content; /* радиус скругления */ border-radius: 9999px; /* отступ сверху */ margin-top: 12px; /* запрещаем выделять мышкой этот элемент */ -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; >/* добавляем хештег перед тегом */ .tag::before < /* добавляем текст, отступ и прозрачность */ content: «#»; margin-right: 2px; opacity: 0.3; >
Стало лучше: теги сразу видны, они выглядят более опрятно и у них появился значок решётки. Теперь сделаем следующий шаг — раскрасим их и сделаем более заметными.
Раскрашиваем теги
Во всех системах управления задачами теги раскрашены разными цветами — так их проще находить и ориентироваться по цвету. Сделаем то же самое: добавим каждому тегу свой цвет.
Здесь нам помогут CSS-переменные: мы в одном месте задаём все цвета, которые нам нужны в проекте, а потом используем их при необходимости. В нашем случае нам нужно задать три цвета, по одному для каждого тега:
/* настройки переменных для цветов тегов */ .work, .note:has(.work) < /* рабочий */ —tagColor: #fcdbcf; >.personal, .note:has(.personal) < /* личный */ —tagColor: #ccdcff; >.read, .note:has(.read) < /* почитать */ —tagColor: #f9cafc; >/* настройки цвета фона тегов */ .work, .personal, .read < /* берём значение фона из переменных */ background-color: var(—tagColor); >
Создаём карточки
В проекте появились цвета, но до порядка ещё далеко: у нас нет карточек, которые бы помогли организовать это в единую систему.
Общая логика карточек будет такая: белый фон, есть тонкая граница со скруглением, карточки сами выравниваются друг относительно друга и отбрасывают тень. Ещё сделаем интересный эффект: пусть при наведении курсора на карточку её граница становится цвета тега. Внутри карточки используем гибкую вёрстку, чтобы она сама подстраивалась под содержимое и не обрезала слова:
/* настройки карточки */ .note < /* цвет фона */ background-color: #ffffff; /* граница */ border: 1px solid #ebebeb; /* рисуем границу по периметру карточки */ box-sizing: border-box; /* межстрочное расстояние */ line-height: 1.5; /* радиус скругления */ border-radius: 8px; /* рисуем тень */ box-shadow: rgba(0, 0, 0, 0.05) 0px 1px 4px; /* скрываем всё, что не помещается в блок */ overflow: hidden; /* включаем гибкую вёрстку */ display: flex; /* организуем вёрстку по столбцам */ flex-direction: column; /* выравниваем карточки по центру друг относительно друга */ justify-content: space-between; /* анимация появления и исчезания */ transition: all 300ms ease-in-out 0s; >/* меняем цвет рамки карточки при наведении */ .note:hover
Карточки появились, причём именно так, как нам нужно: они сами подстраиваются в ряд по 2–3 карточки в зависимости от их размера. Но сам размер карточек неодинаковый: чем больше текста, тем больше карточка. Исправим это, пользуясь тем, что по умолчанию у нас все чекбоксы отмечены (это видно на первом скриншоте в самом начале):
/* если тег отмечен */ #work-box:checked ~ .note:has(.work), #personal-box:checked ~ .note:has(.personal), #read-box:checked ~ .note:has(.read) < /* устанавливаем размеры и отступы карточек */ width: 31%; height: 160px; padding: 3%; margin: 1%; opacity: 1; border-width: 1px; >
Добавляем фильтры и анимацию
Последнее, что нам осталось сделать, — настроить код так, чтобы заработали фильтры по тегам. В этом нам поможет основное свойство чекбокса: если он виртуально отжат (нажали на тег, чтобы убрать его) — обнуляем все параметры карточки, чтобы она исчезла из вёрстки.
Ещё добавим пару визуальных штрихов: поменяем форму курсора при наведении на чекбокс и сделаем неотмеченные теги более бледными. Для этого тоже будем смотреть на чекбокс, отмечен он или нет:
/* если тег не отмечен */ #work-box + label div, #personal-box + label div, #read-box + label div < /* ставим белый фон */ background-color: white; /* оставляем рамку цвета изначального фона */ border: 1px solid var(—tagColor); /* текст тоже делаем цвета изначального фона */ color: var(—tagColor); >/* если тег не отмечен */ #work-box ~ .note:has(.work), #personal-box ~ .note:has(.personal), #read-box ~ .note:has(.read) < /* обнуляем параметры и размеры карточки, чтобы скрыть её из списка */ width: 0; height: 0; padding: 0; margin: 0; opacity: 0; border-width: 0; >/* меняем курсор при наведении на тег */ label < cursor: pointer; >/* делаем тег чуть бледнее при наведении */ label:hover
Теперь у нас всё готово: при нажатии на тег он включается или выключается, а вместе с ним появляются или исчезают карточки, которые к нему относятся. При желании можно было бы сюда добавить обработку анимации и вёрстки при маленьких размерах экрана — попробуйте сделать это сами, используя медиазапросы. Про них мы писали, когда делали тёмную тему для сайта.
Карточки с фильтрами Личное Работа Работа Личное Почитать Работа Почитать Работа Личное
Что дальше
В следующий раз сделаем такое: научим страницу создавать и удалять карточки, а данные хранить на сервере или у пользователя. Так шаг за шагом мы постепенно сделаем свой таск-трекер с анимациями, дедлайнами и напоминаниями. Подпишитесь, чтобы не пропустить продолжение.
Это чистый фронтенд
То, чем мы тут занимались, — чистый фронтенд с продвинутым CSS. За такое хорошо платят в компаниях. Если интересно, приходите подучиться и работайте в этой сфере. В «Практикуме» для этого есть тренажёры, наставники и карьерный центр.
Источник: thecode.media
1. Что выведет на экран следующая программа?
Begin
Write(‘Я учусь в’);
Write(2*3+5);
WriteLn(‘ классе.’);
Write(‘Мне’,16,‘лет.’);
WriteLn;
WriteLn(‘Я знаю, что’,‘2*2=’);
Write((6*6-12)/6);
End.
2. Какое значение будет иметь переменная а после выполнения следующих операторов присваивания:
3. Написать программу, которая вычисляет переменную d по формуле:
и выводит результат на экран, если а=2, b=5.
- 14 March 2021
- Ответ оставил: miksap
1. Я учусь в 11 классе. Мне 16 лет.
Я знаю что 2*2=4
2. a=5 b=0
a=5 b=9
a=14 b=9
a=149 b=9
Ответ:149
Нравится —> 0
- НЕ НАШЛИ ОТВЕТ?
Если вас не устраивает ответ или его нет, то попробуйте воспользоваться поиском на сайте и найти похожие ответы по предмету школьной программы: информатика.
На сегодняшний день (05.07.2023) наш сайт содержит 16353 вопросов, по теме: информатика. Возможно среди них вы найдете подходящий ответ на свой вопрос.
Нажимая на кнопку «Ответить на вопрос», я даю согласие на обработку персональных данных
Ответить на вопрос
Последние опубликованные вопросы
Источник: edubirdie.pro
Презентация по информатике «Программирование на языке Pascal»
Комментарий в программе можно записывать в < >на любом языке. Все, что записано в < >компилятором не воспринимается.
Содержимое разработки
Знакомство с языком программирования Pascal
МБОУ «Оксовская ОСШ»
Цели и задачи урока:
- познакомиться с алфавитом языка Pascal; правилами записи имен;
- научиться создавать новый документ в среде Pascal; создавать простейшую программу, выводящую одну или несколько строк, запускать программу и просматривать результат работы.
Окно интегрированной среды разработки состоит из трех частей:
Edit – редактировать
New — создать
Open — открыть
Undo — отменить
Save F2 — сохранить
Redo — повторить
Cut — вырезать
Save as — сохранить как
Exit — выход Alt+X
Copy — копировать Ctrl + Ins
Paste — вставить Shift + Ins
Clear – очистить буфер обмена
Window – окна
Tile – расположить все окна на экране
Команды редактирования:
Cascade – расположить каскадом
Ctrl + Y – удалить строку
Close all – закрыть все окна
Ctrl + N – вставить строку
Size/Move – изменение размеров окна и перемещение
Zoom – распахнуть на весь экран F5
Ctrl + QY – удалить от курсора до конца строки
Ctrl +T – удалить слово справа от курсора
Next – перейти к следующему окну F6
Run — выполнение
Previons – на предыдущее окно
Close – закрыть текущее окно Alt + F3
Run – запуск программы Ctrl + F9
Compile – компиляция Alt + F9
Структура программы:
- Program имя программы;
- uses раздел описания модулей;
- const раздел описания констант;
- var раздел описания переменных;
- procedure (function) раздел описания подпрограмм;
- begin
Оператор – команда алгоритма, записанная на ЯП
Комментарий в программе можно записывать в < >на любом языке. Все, что записано в < >компилятором не воспринимается.
Имена заголовка программы, переменных составляются по следующим правилам:
- имя должно начинаться с буквы, может содержать латинские буквы, цифры и знак _
- длина имени должна быть меньше 255 символов, но значащиеся только первые 63 символа;
- прописные буквы (A…Z) тождественны строчным (a…z).
- Например: book, KNIGA=kniga, nom_1, A2
- Неверные имена: 2A, Vip*bum
Пример простой программы.
Составим программу, выводящую на экран строку приветствия.
Program pr1; — имя программы
вegin — начало программы
writeln (‘Привет!’); -оператор вывода на экран сообщения
end. — конец программы.
writeln (‘Привет!’); — оператор вывода на экран сообщения (то, что заключено в символах ‘ — апостроф, выводится на экран без изменений)
Запишите программу, запустите командой Run — Run
Запишите программу, запустите командой Run — Run
Откройте окно просмотра результатов командой Debug – Output
Задание 1. Найди ошибки в записи программ:
Задание 2. Определите, что будет выведено на экран в результате выполнения следующей программы?
programm 4A
writeln(‘Сегодня на улице хорошая погода’);
writeln(‘Светит солнце!’);
PROGRAM summa chisel
Задание3 . Составьте программу, выводящую на экран сегодняшнюю дату в рамке: ***********************
Задание 4. Составьте программу,
выводящую на экран лисенка-
Задание 5.Составьте программу, выводящую на экран елочку:
writeln(Мы создаем свою первую программу!);
writeln(«А вы нашли все ошибки?»);
Вопросы для повторения
- Из каких частей состоит окно разработки программы Pascal?
- Какими командами меню можно создать новое окно, открыть имеющееся, сохранить программу?
- Какими командами меню можно скопировать содержимое в буфер обмена, вставить из буфера?
- Какой командой меню можно запустить программу на выполнение?
- Какой командой меню можно открыть окно просмотра результатов?
- Из каких блоков может состоять программа на Pascal?
- По каким правилам составляются имена заголовков программы и переменных?
- Какой существует оператор вывода на экран?
Домашнее задание Задание . Составьте программу, выводящую на экран корабль:
-82%
Источник: videouroki.net