Проблемы с составлением синтаксиса
Недавно я начал последовательно изучать языки программирования и в данный момент мне от моего "Учителя" (я бы даже сказал "Сенсея", так как он человек с профильным образованием и действительно обладает соответствующими познаниями на должном уровне) (в целях проверки учебного прогресса) поступило задание "Создать 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, время: 12:58. |