Проблемы с составлением синтаксиса
Недавно я начал последовательно изучать языки программирования и в данный момент мне от моего "Учителя" (я бы даже сказал "Сенсея", так как он человек с профильным образованием и действительно обладает соответствующими познаниями на должном уровне) (в целях проверки учебного прогресса) поступило задание "Создать web-страницу с полем ввода информации, которая будет отображаться в новом элементе (пункте) списка (в моём случае под полем ввода) при нажатии на кнопку "Добавить" (в моём случае "Add")".
В качестве идеального образца мы с ним выбрали некий "TO-DO-LIST" с источника: w3schools.com/howto/howto_js_todolist.asp . Выполняя данное задание, я решил подойти к нему немного творчески: изменил цвета так, как мне больше нравится. Попытался содержание страницы оформить на русском языке, но почему-то указанная мной в синтаксисе самой страницы кодировка "utf-8" почему-то не сработала (первый раз я с таким сталкиваюсь, кстати), в связи с чем мне пришлось все выбранные слова и фразы перевести на английский язык с помощью google-переводчика. Более того, я пытался внести исправления в js-синтаксис для того, чтобы добавлять элемент(-ы) списка, помимо способа с нажатием на кнопку "Add", путём нажатия на клавишу "Enter" на клавиатуре... Тоже не вышло к сожалению:((( Также я решил добавить в левой части каждого элемента списка специальный символ "Наконечник стрелы" при наведении курсора на соответствующий элемент (здесь речь идёт о CSS-синтаксисе). Вроде как получилось, но с одним очень существенным недостатком: "Наконечник стрелы" теперь отображается поверх другого символа (последний изначально был использован с поворотом на 45 градусов по часовой стрелке для отображения галочки при нажатии на элемент(-ы) списка). К настоящему прилагаю следующие ссылки: 1. https://ru.files.fm/u/tghpw3sx (ссылка на 3 моих файла в файлообменнике ("index.html", "style.css" и "external.js")); (на всякий случай) 2. https://ru.files.fm/u/ncjc74s7 (ссылка на 10 моих скриншотов в том же файлообменнике ("1. Исходный вид страницы.jpg", "2. Вид страницы с отображением проблемы с отметками при наведении.jpg", "3. Вид страницы при попытке добавления пункта нажатием клавиши "Enter"", "4. html-синтаксис.jpg", "5. 1-я часть CSS-синтаксиса.jpg", "6. 2-я часть CSS-синтаксиса.jpg", "7. 3-я часть CSS-синтаксиса.jpg", "8. 4-я часть CSS-синтаксиса.jpg", "9. 1-я часть JS-синтаксиса.jpg" и "10. 2-я часть JS-синтаксиса.jpg")). |
garrip91,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>to-do list</title>
<style type="text/css">
* {
box-sizing: border-box;
}
ul {
margin: 0;
padding: 0;
}
ul li {
cursor: pointer;
position: relative;
padding: 12px 8px 12px 40px;
background: #eee;
font-size: 18px;
transition: .2s;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
ul li:nth-child(even) {
background: yellow;
}
ul li:nth-child(odd) {
background: sandybrown;
}
ul li:hover {
background: magenta;
}
ul li:hover::before {
content: '\27A4';
position: absolute;
top: 10px;
left: 16px;
height: 15px;
width: 7px;
}
ul li.checked {
background: lime;
color: #fff;
text-decoration: underline;
}
ul li.checked::before {
content: '';
position: absolute;
border-color: #fff;
border-style: solid;
border-width: 0 2px 2px 0;
top: 10px;
left: 16px;
transform: rotate(45deg);
height: 15px;
width: 7px;
}
.close {
position: absolute;
right: 0;
top: 0;
padding: 12px 16px 12px 16px;
}
.close:hover {
background-color: red;
color: white;
}
.header {
background-color: aqua;
padding: 30px 40px;
color: purple;
text-align: center;
}
.header:after {
content: '';
display: table;
clear: both;
}
input {
margin: 0;
border: none;
border-radius: 0;
width: 75%;
padding: 10px;
float: left;
font-size: 16px;
}
.addBtn {
padding: 10px;
width: 25%;
background: #d9d9d9;
color: #555;
float: left;
text-align: center;
font-size: 16px;
cursor: pointer;
transition: .3s;
border-radius: 0;
}
.addBtn:hover {
background-color: #bbb;
}
</style>
</head>
<body>
<div id="myDIV" class="header">
<h1>Tips on how to correctly create your to-do list:</h1>
<input type="text" id="myInput" placeholder="Here you can offer your option(as a recommendation)...">
<span class="addBtn">Add</span>
</div>
<ul id="myUL">
<li>Choose a carrier at a distance of the hand, which should often "loom" before your eyes</li>
<li>Select the same time for its creation: morning or evening</li>
<li>Make up for the current day only</li>
<li>Prioritize</li>
<li>Keep a "list of ideas"</li>
<li>Supervise the "kidnappers of time"</li>
<li>Be realistic</li>
<li>Plan a vacation</li>
<li>Do not "execute" yourself ...</li>
</ul>
<script>
var list = document.getElementById("myUL");
var input = document.getElementById("myInput");
var addBtn = document.querySelector(".addBtn");
function createClose(parent) {
var span = document.createElement("SPAN");
var txt = document.createTextNode("\u00d7");
span.className = "close";
span.appendChild(txt);
span.addEventListener("click", function() {
list.removeChild(parent)
}, false);
parent.appendChild(span)
}
var myNodelist = document.getElementsByTagName("LI");
var i;
for (i = 0; i < myNodelist.length; i++) createClose(myNodelist[i]);
list.addEventListener("click", function(ev) {
if (ev.target.tagName === "LI") ev.target.classList.toggle("checked")
}, false);
function newElement() {
var li = document.createElement("li");
var inputValue = input.value;
var t = document.createTextNode(inputValue);
li.appendChild(t);
if (inputValue === "") alert("You must write something!");
else {
list.appendChild(li);
createClose(li)
}
input.value = ""
}
input.addEventListener("keypress", function(ev) {
if (ev.keyCode === 13) newElement()
}, false);
addBtn.addEventListener("click", newElement, false);
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 16:20. |