Веб-разработка - это искусство создания интернет-сайтов и веб-приложений. В современном мире практически все, что мы видим в интернете, создано с помощью трех основных технологий: HTML, CSS и JavaScript. Эти языки являются основой всех веб-сайтов - от простых страниц до сложных социальных сетей и интернет-магазинов.
Веб-разработка - это процесс создания веб-сайтов и веб-приложений для интернета. Каждый раз, когда вы открываете браузер и заходите на любой сайт, вы видите результат работы веб-разработчиков.
Зачем детям изучать веб-разработку:
Веб-технологии работают на всех устройствах
Не нужно устанавливать специальные программы
Результат виден мгновенно в браузере
Легко делиться своими проектами с друзьями
Креативность - дизайн и визуальное оформление
Логическое мышление - структура и алгоритмы
Внимание к деталям - каждый символ имеет значение
Терпение - отладка и улучшение кода
Высокий спрос на веб-разработчиков
Возможность работать удаленно
Создание собственных проектов и стартапов
Фриланс и дополнительный доход
HTML (HyperText Markup Language) - это язык разметки, который определяет структуру и содержание веб-страницы. Если представить веб-страницу как дом, то HTML - это каркас и стены.
Теги - основные элементы HTML:
<tag>Содержимое</tag>
Атрибуты - дополнительная информация о теге:
<tag attribute="значение">Содержимое</tag>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Моя первая веб-страница</title>
</head>
<body>
<h1>Добро пожаловать на мой сайт!</h1>
<p>Это моя первая веб-страница.</p>
</body>
</html>
Объяснение структуры:
<!DOCTYPE html> - объявляет тип документа
<html> - корневой элемент страницы
<head> - информация о странице (не видна пользователям)
<title> - заголовок в браузере
<body> - видимое содержимое страницы
Заголовки:
<h1>Самый большой заголовок</h1>
<h2>Заголовок второго уровня</h2>
<h3>Заголовок третьего уровня</h3>
<h4>Заголовок четвертого уровня</h4>
<h5>Заголовок пятого уровня</h5>
<h6>Самый маленький заголовок</h6>
Текст и параграфы:
<p>Это обычный параграф текста.</p>
<p>Это еще один параграф с <strong>жирным текстом</strong> и <em>курсивом</em>.</p>
<br> <!-- Перенос строки -->
<hr> <!-- Горизонтальная линия -->
Списки:
<!-- Нумерованный список -->
<ol>
<li>Первый элемент</li>
<li>Второй элемент</li>
<li>Третий элемент</li>
</ol>
<!-- Маркированный список -->
<ul>
<li>Яблоки</li>
<li>Бананы</li>
<li>Апельсины</li>
</ul>
Ссылки и изображения:
<a href="https://www.google.com">Ссылка на Google</a>
<a href="page2.html">Ссылка на другую страницу</a>
<img src="cat.jpg" alt="Картинка кота" width="300">
Таблицы:
<table>
<tr>
<th>Имя</th>
<th>Возраст</th>
<th>Класс</th>
</tr>
<tr>
<td>Анна</td>
<td>12</td>
<td>6А</td>
</tr>
<tr>
<td>Иван</td>
<td>13</td>
<td>7Б</td>
</tr>
</table>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Обо мне - Анна Иванова</title>
</head>
<body>
<h1>Привет! Меня зовут Анна</h1>
<img src="my-photo.jpg" alt="Моя фотография" width="200">
<h2>О себе</h2>
<p>Мне 12 лет, я учусь в 6 классе. Увлекаюсь <strong>программированием</strong>
и <em>рисованием</em>. Мечтаю стать веб-разработчиком!</p>
<h2>Мои увлечения</h2>
<ul>
<li>Программирование на Python</li>
<li>Создание сайтов</li>
<li>Чтение книг о технологиях</li>
<li>Игра на пианино</li>
<li>Рисование в Procreate</li>
</ul>
<h2>Мои любимые предметы</h2>
<ol>
<li>Информатика</li>
<li>Математика</li>
<li>Английский язык</li>
<li>Изобразительное искусство</li>
</ol>
<h2>Контакты</h2>
<p>Email: <a href="mailto:anna@example.com">anna@example.com</a></p>
<p>Мой проект в Scratch: <a href="https://scratch.mit.edu/users/anna123/">посмотреть</a></p>
<hr>
<p><small>© 2024 Анна Иванова. Все права защищены.</small></p>
</body>
</html>
CSS (Cascading Style Sheets) - это язык стилей, который определяет внешний вид HTML-элементов. Если HTML - это каркас дома, то CSS - это покраска, мебель и декор.
1. Внутренние стили (в теге <style>):
<head>
<style>
h1 {
color: blue;
font-size: 36px;
}
</style>
</head>
2. Внешний файл CSS:
<head>
<link rel="stylesheet" href="styles.css">
</head>
3. Встроенные стили (в атрибуте style):
<h1 style="color: red; font-size: 24px;">Заголовок</h1>
селектор {
свойство: значение;
другое-свойство: другое-значение;
}
Примеры:
/* Стили для всех заголовков h1 */
h1 {
color: #3366cc;
font-family: Arial, sans-serif;
text-align: center;
}
/* Стили для всех параграфов */
p {
font-size: 16px;
line-height: 1.5;
margin: 10px 0;
}
По тегу:
h1 { color: blue; }
p { font-size: 14px; }
По классу (class):
<p class="highlight">Важный текст</p>
.highlight {
background-color: yellow;
font-weight: bold;
}
По идентификатору (id):
<div id="header">Шапка сайта</div>
#header {
background-color: #333;
color: white;
padding: 20px;
}
Цвета и фон:
.colorful {
color: red; /* Цвет текста */
background-color: lightblue; /* Цвет фона */
background-image: url('bg.jpg'); /* Фоновое изображение */
}
Шрифты:
.typography {
font-family: 'Arial', sans-serif;
font-size: 18px;
font-weight: bold; /* normal, bold, 100-900 */
font-style: italic; /* normal, italic */
text-decoration: underline; /* none, underline, line-through */
text-align: center; /* left, center, right, justify */
}
Размеры и отступы:
.box {
width: 300px;
height: 200px;
padding: 20px; /* Внутренние отступы */
margin: 10px; /* Внешние отступы */
border: 2px solid black; /* Граница */
}
Позиционирование:
.positioned {
position: relative;
top: 10px;
left: 20px;
z-index: 1;
}
/* styles.css */
/* Общие стили для всей страницы */
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
margin: 0;
padding: 20px;
background-color: #f4f4f4;
color: #333;
}
/* Стили для главного заголовка */
h1 {
color: #2c3e50;
text-align: center;
font-size: 2.5em;
margin-bottom: 30px;
text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
}
/* Стили для подзаголовков */
h2 {
color: #34495e;
border-bottom: 2px solid #3498db;
padding-bottom: 5px;
margin-top: 30px;
}
/* Стили для параграфов */
p {
background-color: white;
padding: 15px;
border-radius: 8px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
margin: 15px 0;
}
/* Стили для изображения */
img {
display: block;
margin: 20px auto;
border-radius: 50%;
border: 4px solid #3498db;
box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
/* Стили для списков */
ul, ol {
background-color: white;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
li {
margin: 8px 0;
padding: 5px;
border-left: 3px solid #3498db;
padding-left: 15px;
}
/* Стили для ссылок */
a {
color: #3498db;
text-decoration: none;
font-weight: bold;
transition: color 0.3s ease;
}
a:hover {
color: #2980b9;
text-decoration: underline;
}
/* Стили для футера */
hr {
border: none;
height: 2px;
background: linear-gradient(to right, #3498db, #2ecc71);
margin: 40px 0 20px 0;
}
small {
color: #7f8c8d;
font-style: italic;
}
/* Адаптивность для мобильных устройств */
@media (max-width: 600px) {
body {
padding: 10px;
}
h1 {
font-size: 2em;
}
img {
width: 150px;
height: 150px;
}
}
JavaScript - это язык программирования, который делает веб-страницы интерактивными. Если HTML - это каркас, а CSS - декор, то JavaScript - это электричество, которое оживляет дом.
1. Внутренний JavaScript:
<script>
alert('Привет, мир!');
</script>
2. Внешний файл:
<script src="script.js"></script>
3. Inline JavaScript:
<button onclick="alert('Кнопка нажата!')">Нажми меня</button>
Переменные:
let имя = 'Анна';
let возраст = 12;
let любитПрограммирование = true;
const PI = 3.14159; // Константа
Функции:
function поприветствовать(имя) {
return 'Привет, ' + имя + '!';
}
let приветствие = поприветствовать('Иван');
console.log(приветствие); // Вывод в консоль браузера
Работа с HTML элементами:
// Найти элемент по ID
let заголовок = document.getElementById('main-title');
// Изменить текст
заголовок.textContent = 'Новый заголовок!';
// Изменить стиль
заголовок.style.color = 'red';
заголовок.style.fontSize = '36px';
События:
// При клике на кнопку
document.getElementById('myButton').addEventListener('click', function() {
alert('Кнопка была нажата!');
});
// При загрузке страницы
window.addEventListener('load', function() {
console.log('Страница загружена!');
});
Калькулятор:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Простой калькулятор</title>
<style>
.calculator {
max-width: 300px;
margin: 50px auto;
padding: 20px;
border: 2px solid #3498db;
border-radius: 10px;
background-color: #ecf0f1;
}
input, button {
width: 100%;
padding: 10px;
margin: 5px 0;
font-size: 16px;
border: 1px solid #bdc3c7;
border-radius: 5px;
}
button {
background-color: #3498db;
color: white;
cursor: pointer;
}
button:hover {
background-color: #2980b9;
}
#result {
font-size: 24px;
font-weight: bold;
color: #27ae60;
text-align: center;
}
</style>
</head>
<body>
<div class="calculator">
<h2>Мой калькулятор</h2>
<input type="number" id="num1" placeholder="Первое число">
<input type="number" id="num2" placeholder="Второе число">
<button onclick="сложить()">Сложить (+)</button>
<button onclick="вычесть()">Вычесть (-)</button>
<button onclick="умножить()">Умножить (×)</button>
<button onclick="разделить()">Разделить (÷)</button>
<div id="result">Результат: 0</div>
</div>
<script>
function получитьЧисла() {
let a = parseFloat(document.getElementById('num1').value) || 0;
let b = parseFloat(document.getElementById('num2').value) || 0;
return [a, b];
}
function показатьРезультат(результат) {
document.getElementById('result').textContent = 'Результат: ' + результат;
}
function сложить() {
let [a, b] = получитьЧисла();
показатьРезультат(a + b);
}
function вычесть() {
let [a, b] = получитьЧисла();
показатьРезультат(a - b);
}
function умножить() {
let [a, b] = получитьЧисла();
показатьРезультат(a * b);
}
function разделить() {
let [a, b] = получитьЧисла();
if (b === 0) {
alert('Нельзя делить на ноль!');
} else {
показатьРезультат(a / b);
}
}
</script>
</body>
</html>
Интерактивная викторина:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Викторина по программированию</title>
<style>
body {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 50px auto;
padding: 20px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.quiz-container {
background-color: rgba(255, 255, 255, 0.1);
padding: 30px;
border-radius: 15px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}
.question {
font-size: 20px;
margin-bottom: 20px;
font-weight: bold;
}
.answers {
margin: 20px 0;
}
.answer {
display: block;
margin: 10px 0;
padding: 15px;
background-color: rgba(255, 255, 255, 0.2);
border: none;
border-radius: 8px;
color: white;
cursor: pointer;
font-size: 16px;
transition: all 0.3s ease;
}
.answer:hover {
background-color: rgba(255, 255, 255, 0.3);
transform: translateY(-2px);
}
.correct {
background-color: #27ae60 !important;
}
.wrong {
background-color: #e74c3c !important;
}
.score {
font-size: 24px;
text-align: center;
margin: 20px 0;
font-weight: bold;
}
#nextButton {
background-color: #3498db;
color: white;
border: none;
padding: 15px 30px;
font-size: 16px;
border-radius: 8px;
cursor: pointer;
display: none;
}
</style>
</head>
<body>
<div class="quiz-container">
<h1>🧠 Викторина по программированию</h1>
<div id="question" class="question"></div>
<div id="answers" class="answers"></div>
<div class="score">Счет: <span id="score">0</span></div>
<button id="nextButton" onclick="следующийВопрос()">Следующий вопрос</button>
<div id="finalResult" style="display: none;">
<h2>🎉 Викторина завершена!</h2>
<p id="finalScore"></p>
<button onclick="начатьСначала()">Начать сначала</button>
</div>
</div>
<script>
const вопросы = [
{
вопрос: "Что означает HTML?",
варианты: [
"Home Tool Markup Language",
"HyperText Markup Language",
"Hyperlinks and Text Markup Language"
],
правильный: 1
},
{
вопрос: "Какой язык используется для стилизации веб-страниц?",
варианты: ["HTML", "CSS", "JavaScript", "Python"],
правильный: 1
},
{
вопрос: "Что делает JavaScript?",
варианты: [
"Создает структуру страницы",
"Стилизует элементы",
"Добавляет интерактивность",
"Ничего из перечисленного"
],
правильный: 2
},
{
вопрос: "Как называется язык программирования, созданный в MIT для детей?",
варианты: ["Python", "Java", "Scratch", "C++"],
правильный: 2
},
{
вопрос: "Что означает 'отзывчивый дизайн' (responsive design)?",
варианты: [
"Дизайн быстро загружается",
"Дизайн адаптируется под разные устройства",
"Дизайн отвечает на вопросы пользователей"
],
правильный: 1
}
];
let текущийВопрос = 0;
let счет = 0;
function показатьВопрос() {
const вопрос = вопросы[текущийВопрос];
document.getElementById('question').textContent = вопрос.вопрос;
const answersDiv = document.getElementById('answers');
answersDiv.innerHTML = '';
вопрос.варианты.forEach((вариант, индекс) => {
const button = document.createElement('button');
button.className = 'answer';
button.textContent = вариант;
button.onclick = () => проверитьОтвет(индекс);
answersDiv.appendChild(button);
});
document.getElementById('nextButton').style.display = 'none';
}
function проверитьОтвет(выбранный) {
const вопрос = вопросы[текущийВопрос];
const кнопки = document.querySelectorAll('.answer');
кнопки.forEach((кнопка, индекс) => {
кнопка.disabled = true;
if (индекс === вопрос.правильный) {
кнопка.classList.add('correct');
} else if (индекс === выбранный) {
кнопка.classList.add('wrong');
}
});
if (выбранный === вопрос.правильный) {
счет++;
document.getElementById('score').textContent = счет;
}
document.getElementById('nextButton').style.display = 'block';
}
function следующийВопрос() {
текущийВопрос++;
if (текущийВопрос < вопросы.length) {
показатьВопрос();
} else {
показатьРезультат();
}
}
function показатьРезультат() {
document.getElementById('question').style.display = 'none';
document.getElementById('answers').style.display = 'none';
document.getElementById('nextButton').style.display = 'none';
const финальныйРезультат = document.getElementById('finalResult');
финальныйРезультат.style.display = 'block';
const процент = Math.round((счет / вопросы.length) * 100);
let сообщение = '';
if (процент >= 80) {
сообщение = 'Отлично! Вы настоящий знаток программирования! 🌟';
} else if (процент >= 60) {
сообщение = 'Хорошо! Продолжайте изучать программирование! 👍';
} else {
сообщение = 'Неплохо! Есть куда расти! 📚';
}
document.getElementById('finalScore').innerHTML =
`Ваш результат: ${счет} из ${вопросы.length} (${процент}%)<br>${сообщение}`;
}
function начатьСначала() {
текущийВопрос = 0;
счет = 0;
document.getElementById('score').textContent = '0';
document.getElementById('question').style.display = 'block';
document.getElementById('answers').style.display = 'block';
document.getElementById('finalResult').style.display = 'none';
показатьВопрос();
}
// Запуск викторины
показатьВопрос();
</script>
</body>
</html>
Создадим многостраничный сайт-блог с использованием всех изученных технологий:
index.html (главная страница):
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Блог юного программиста</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>
<nav>
<ul>
<li><a href="index.html">Главная</a></li>
<li><a href="about.html">Обо мне</a></li>
<li><a href="projects.html">Проекты</a></li>
<li><a href="contact.html">Контакты</a></li>
</ul>
</nav>
<h1>🚀 Блог юного программиста</h1>
<p class="subtitle">Изучаем программирование вместе!</p>
</header>
<main>
<section class="hero">
<h2>Добро пожаловать в мой мир кода!</h2>
<p>Здесь я делюсь своими проектами, знаниями и опытом в программировании.</p>
<button onclick="показатьМотивацию()">Получить мотивацию! 💪</button>
<div id="motivation" class="motivation hidden"></div>
</section>
<section class="posts">
<h2>Последние записи</h2>
<article class="post">
<h3>Мой первый сайт на HTML и CSS</h3>
<p class="post-date">15 января 2024</p>
<p>Сегодня я создал свой первый сайт! Использовал HTML для структуры и CSS для красивого оформления. Это было невероятно увлекательно...</p>
<a href="#" class="read-more">Читать далее</a>
</article>
<article class="post">
<h3>Изучаем JavaScript: переменные и функции</h3>
<p class="post-date">10 января 2024</p>
<p>JavaScript - это супер интересно! Сегодня разобрался с переменными, функциями и событиями. Теперь мои страницы стали интерактивными...</p>
<a href="#" class="read-more">Читать далее</a>
</article>
<article class="post">
<h3>Scratch: моя первая игра готова!</h3>
<p class="post-date">5 января 2024</p>
<p>Наконец-то закончил свою первую игру в Scratch! Это платформер про кота, который собирает рыбок. Было сложно, но очень весело...</p>
<a href="#" class="read-more">Читать далее</a>
</article>
</section>
<section class="code-counter">
<h2>Счетчик строк кода</h2>
<p>Сегодня я написал: <span id="codeLines">0</span> строк кода</p>
<button onclick="добавитьСтроки()">Добавить 10 строк</button>
<button onclick="сброситьСчетчик()">Сбросить</button>
</section>
</main>
<footer>
<p>© 2024 Блог юного программиста. Создано с ❤️ и HTML/CSS/JS</p>
</footer>
<script src="script.js"></script>
</body>
</html>
styles.css:
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
color: #333;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
}
header {
text-align: center;
padding: 2rem;
color: white;
}
nav ul {
list-style: none;
display: flex;
justify-content: center;
margin-bottom: 2rem;
}
nav li {
margin: 0 1rem;
}
nav a {
color: white;
text-decoration: none;
padding: 0.5rem 1rem;
border-radius: 20px;
transition: background-color 0.3s ease;
}
nav a:hover {
background-color: rgba(255, 255, 255, 0.2);
}
h1 {
font-size: 3rem;
margin-bottom: 0.5rem;
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.subtitle {
font-size: 1.2rem;
opacity: 0.9;
}
main {
max-width: 800px;
margin: 0 auto;
padding: 2rem;
}
.hero {
background: white;
padding: 2rem;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
margin-bottom: 2rem;
text-align: center;
}
.hero button {
background: linear-gradient(45deg, #3498db, #2ecc71);
color: white;
border: none;
padding: 15px 30px;
font-size: 1.1rem;
border-radius: 25px;
cursor: pointer;
transition: transform 0.3s ease;
margin-top: 1rem;
}
.hero button:hover {
transform: translateY(-3px);
box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}
.motivation {
margin-top: 1rem;
padding: 1rem;
background: linear-gradient(45deg, #f39c12, #e74c3c);
color: white;
border-radius: 10px;
font-weight: bold;
font-size: 1.1rem;
animation: slideIn 0.5s ease;
}
.hidden {
display: none;
}
@keyframes slideIn {
from { opacity: 0; transform: translateY(-20px); }
to { opacity: 1; transform: translateY(0); }
}
.posts {
background: white;
padding: 2rem;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
margin-bottom: 2rem;
}
.post {
border-bottom: 1px solid #eee;
padding: 1.5rem 0;
transition: transform 0.3s ease;
}
.post:hover {
transform: translateX(10px);
}
.post:last-child {
border-bottom: none;
}
.post h3 {
color: #2c3e50;
margin-bottom: 0.5rem;
}
.post-date {
color: #7f8c8d;
font-size: 0.9rem;
margin-bottom: 1rem;
}
.read-more {
color: #3498db;
text-decoration: none;
font-weight: bold;
}
.read-more:hover {
text-decoration: underline;
}
.code-counter {
background: white;
padding: 2rem;
border-radius: 15px;
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
text-align: center;
}
.code-counter button {
background: #3498db;
color: white;
border: none;
padding: 10px 20px;
margin: 0 10px;
border-radius: 20px;
cursor: pointer;
transition: background-color 0.3s ease;
}
.code-counter button:hover {
background: #2980b9;
}
#codeLines {
font-size: 2rem;
font-weight: bold;
color: #27ae60;
}
footer {
text-align: center;
padding: 2rem;
color: white;
opacity: 0.8;
}
/* Адаптивность */
@media (max-width: 768px) {
nav ul {
flex-direction: column;
}
nav li {
margin: 0.5rem 0;
}
h1 {
font-size: 2rem;
}
main {
padding: 1rem;
}
}
script.js:
// Мотивационные цитаты
const мотивационныеЦитаты = [
"Код - это поэзия логики! ✨",
"Каждая ошибка делает тебя сильнее! 💪",
"Программирование - это суперсила! 🦸♂️",
"Твой код может изменить мир! 🌍",
"Отладка - это как детективная работа! 🔍",
"Хороший код - это чистый код! ✨",
"Практика - путь к мастерству! 🎯",
"Каждый эксперт когда-то был новичком! 🚀"
];
// Счетчик строк кода
let строкиКода = parseInt(localStorage.getItem('codeLines') || '0');
document.getElementById('codeLines').textContent = строкиКода;
function показатьМотивацию() {
const motivationDiv = document.getElementById('motivation');
const случайнаяЦитата = мотивационныеЦитаты[Math.floor(Math.random() * мотивационныеЦитаты.length)];
motivationDiv.textContent = случайнаяЦитата;
motivationDiv.classList.remove('hidden');
// Автоматически скрыть через 5 секунд
setTimeout(() => {
motivationDiv.classList.add('hidden');
}, 5000);
}
function добавитьСтроки() {
строкиКода += 10;
document.getElementById('codeLines').textContent = строкиКода;
localStorage.setItem('codeLines', строкиКода.toString());
// Анимация
const element = document.getElementById('codeLines');
element.style.transform = 'scale(1.2)';
element.style.color = '#e74c3c';
setTimeout(() => {
element.style.transform = 'scale(1)';
element.style.color = '#27ae60';
}, 200);
}
function сброситьСчетчик() {
if (confirm('Точно сбросить счетчик?')) {
строкиКода = 0;
document.getElementById('codeLines').textContent = '0';
localStorage.setItem('codeLines', '0');
}
}
// Приветствие при загрузке страницы
window.addEventListener('load', function() {
const hour = new Date().getHours();
let приветствие = '';
if (hour < 12) {
приветствие = 'Доброе утро! Готов к программированию? ☀️';
} else if (hour < 17) {
приветствие = 'Добрый день! Время кодить! 💻';
} else {
приветствие = 'Добрый вечер! Давай создавать что-то крутое! 🌙';
}
setTimeout(() => {
alert(приветствие);
}, 1000);
});
// Эффект печатной машинки для заголовка
function эффектПечати(element, text, speed = 100) {
let i = 0;
element.textContent = '';
function печататьСимвол() {
if (i < text.length) {
element.textContent += text.charAt(i);
i++;
setTimeout(печататьСимвол, speed);
}
}
печататьСимвол();
}
// Применить эффект к заголовку
document.addEventListener('DOMContentLoaded', function() {
const заголовок = document.querySelector('h1');
const оригинальныйТекст = заголовок.textContent;
эффектПечати(заголовок, оригинальныйТекст, 150);
});
CodePen - песочница для HTML, CSS, JS
JSFiddle - быстрое тестирование кода
Repl.it - полноценная среда разработки в браузере
VS Code Online - профессиональный редактор онлайн
FreeCodeCamp - бесплатные курсы веб-разработки
MDN Web Docs - лучшая документация по веб-технологиям
W3Schools - простые туториалы и примеры
JavaScript.info - подробный курс по JavaScript
Chrome DevTools - встроенные инструменты браузера
Visual Studio Code - лучший редактор для веб-разработки
Git и GitHub - система контроля версий
Figma - дизайн и прототипирование
После освоения основ HTML, CSS и JavaScript можно изучать:
React - популярная библиотека от Facebook
Vue.js - простой и мощный фреймворк
Angular - полноценная платформа от Google
Node.js - JavaScript на сервере
Python Django/Flask - веб-фреймворки на Python
PHP - классический язык веб-разработки
MySQL - реляционная база данных
MongoDB - документо-ориентированная БД
Firebase - облачная платформа от Google
Веб-разработка - это увлекательное путешествие в мир создания интерактивных веб-сайтов и приложений. HTML создает структуру, CSS добавляет красоту, а JavaScript оживляет страницы, делая их интерактивными.
Ключевые принципы успешного изучения веб-разработки:
Практика каждый день - даже 30 минут в день дадут отличный результат
Создавайте реальные проекты - портфолио, блоги, игры
Изучайте код других разработчиков - GitHub полон примеров
Не бойтесь экспериментировать - веб-технологии прощают ошибки
Присоединяйтесь к сообществам - общение с другими разработчиками бесценно
Помните: каждый крутой сайт, который вы видите в интернете, создан с помощью этих же технологий. Начните с простого, будьте терпеливы и постоянно практикуйтесь. Вскоре вы сможете создавать удивительные веб-проекты!
Веб-разработка - это творчество, помноженное на логику. Добро пожаловать в мир безграничных возможностей! 🌐✨