Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания и решения примеров htmlacademy.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
13.49 Mб
Скачать

Проверяем работу localStorage [27/28]

На прошлом шаге вы расскомментировали скрипт, который сохранил данные из формы в локальное хранилище вашего браузера.

На этом шаге мы проверим, что данные действительно сохранились.

Для этого нужно раскомментировать тот же самый скрипт, что и в предыдущем шаге. И если у вас достаточно современный браузер, который поддерживает localStorage, то вы увидите в форме текущего задания ваш текст.

Заметьте, что в исходном коде задания тег <textarea> пуст, поэтому данные в форму могут попасть только из хранилища. Можете даже провести эксперимент: закрыть браузер, запустить его, открыть это задание, раскомментировать скрипт и убедиться, что сохранённый текст появится вновь.

Подробнее о localStorage и других возможностях HTML5, которые позволяют улучшить опыт взаимодействие с формами, вы можете прочитать в  одноимённой статье в блоге Алексея Симоненко.

Испытание: через тернии к звёздам [28/28]

Через тернии, благодаря нашим стараниям, Кексик, наконец, достиг пяти звёзд своего отеля на берегу озера в норвежском лесу.

И вот, хорошенько отдохнув, полакомившись свежей рыбкой и вернувшись домой, он решил описать свои впечатления в блоге. Но для этого потребовалось немного дописать движок блога сайта и составить форму отзыва.

Нагрев кружку молока, Кексик сел за ноутбук и с уверенностью начал верстать форму.

Но что-то обязательно должно было пойти не так: откинувшись на спинку кресла и мечтательно прикрыв глаза, Кекс отвлёкся от вёрстки, предался грёзам и стал вспоминать свою поездку. И вот незадача: взял да и снёс случайно хвостом кружку с молоком прямо на клавиатуру ноутбука. Ноутбук выдал синий экран смерти и погас через мгновение.

Выхода нет — нужно помочь ему завершить начатое и доверстать форму до конца, вооружившись полученными знаниями.

form28-28.html

<!DOCTYPE html>

<html lang="ru">

<head>

<title>Испытание: через тернии к звёздам</title>

<meta charset="utf-8">

<link rel="stylesheet" href="https://htmlacademy.ru/assets/course74/exam.css">

<style>

form {

width: 450px;

margin: 0 auto;

padding: 20px;

background-color: #ffffff;

border-radius: 10px;

box-shadow: 0 0 10px #cccccc;

}

fieldset {

margin-bottom: 15px;

padding: 10px;

border: 1px solid #34495e;

border-radius: 5px;

}

fieldset legend {

color: #34495e;

}

label {

display: block;

margin-bottom: 5px;

}

input,

select,

output,

textarea {

width: 95%;

margin: 0 0 10px 0;

padding: 2px 5px;

border: 1px solid #cccccc;

border-radius: 5px;

vertical-align: middle;

}

#id {

background-color: #ebebe3;

}

#color {

background-color: white;

}

input,

select {

height: 24px;

}

output {

display: inline-block;

width: 30px;

height: 20px;

margin: 0 5px 10px 0;

text-align: center;

}

select[multiple] {

height: 100px;

}

select option[value="losos"],

option[value="okun"]

{

background-color: #308cc6;

color: white;

}

input[type="submit"],

input[type="reset"] {

display: inline-block;

width: auto;

height: auto;

margin: 0 5px;

padding: 6px 15px;

color: #ffffff;

background: #2c3e50;

border: none;

border-radius: 5px;

}

input[disabled] {

background-color: #ebebe3;

}

.one-third-width {

width: 33.3%;

}

.two-third-width {

width: 66.6%;

}

.half-width {

width: 50%;

}

.one-third-width,

.two-third-width,

.half-width {

display: inline-block;

margin-right:4px;

}

.one-third-width input,

.two-third-width select {

width: 80%;

}

.half-width input,

.half-width select {

width: 80%;

}

.half-width input[type="range"] {

width: 65%;

}

.output-area {

vertical-align: top;

}

.buttons {

margin-top: 10px;

text-align: center;

}

body {

min-width: 553px;

}

main {

min-height: 400px;

}

</style>

</head>

<body>

<header class="page-header">Форма отзыва</header>

<main>

<form action="/echo" method="post" oninput="days.value=rating.value">

<fieldset>

<legend>Личные данные</legend>

<div class="half-width">

<label for="id">ID отзыва</label>

<input type="text" id="id" name="id" value="12345" disabled>

</div>

<div class="half-width">

<label for="name">Имя путешественника</label>

<input type="text" id="name" name="name" value="Кекс" readonly>

</div>

</fieldset>

<fieldset>

<legend>Отзыв о поездке</legend>

<div class="half-width">

<label for="country">Страна визита</label>

<input type="search" id="country" name="country" value="Норвегия">

</div>

<div class="half-width">

<label for="city">Город</label>

<select id="city" name="city" list="city">

<option value="town1">Осло</option>

<option value="town2">Хельсинки</option>

</select>

</div>

<div class="half-width">

<label for="rating">Оценка поездки</label>

0 <input type="range" id="rating" name="rating" min="1" max="10" step="1" value="10"> 10

</div>

<div class="half-width output-area">

<output name="days">10</output>

</div>

<label for="review">Текст отзыва</label>

<textarea name="review" rows="5">Это было просто мяу!</textarea>

</fieldset>

<fieldset>

<legend>Оценка отеля</legend>

<div class="half-width">

<label for="hotel">Название отеля</label>

<input type="text" id="hotel" name="hotel" placeholder="Название по-английски" >

</div>

<div class="half-width">

<label for="arrival_date">Дата въезда</label>

<input type="text" id="arrival_date" name="arrival_date" placeholder="В формате дд-мм-гггг">

</div>

<div class="one-third-width">

<label for="color">Цвет кроватки</label>

<input type="color" id="color" name="color" value="#ff0000">

</div>

<div class="two-third-width">

<label for="dish_rating">Оценка обедов</label>

<select id="dish_rating" name="dish_rating" list="dish_rating">

<option value="1">Подушечки оближешь</option>

<option value="2">Вкусно</option>

</select>

</div>

<label for="fish">Самая вкусная рыба</label>

<select id="fish" name="fish" multiple>

<option value="losos">Норвежский лосось</option>

<option value="zubatka">Зубатка</option>

<option value="okun">Морской окунь</option>

<option value="karas">Карась</option>

<option value="karp">Зеркальный карп</option>

</select>

</fieldset>

<div class="buttons">

<input type="submit" value="Оценить">

<input type="reset" value="Сбросить">

</div>

</form>

</main>

<footer class="page-footer"></footer>

</body>

</html>