12 subscribers
182 photos
3 videos
212 links
Programmer - Курсы программирования. Канал для тех, кто не хочет остаться на задворках цивилизации.
Download Telegram
Отлично, что вы продолжаете изучать HTML5! В этом уроке мы рассмотрим более продвинутые темы, такие как формы, таблицы, мультимедиа и семантические элементы. Давайте начнем!

### Формы в HTML5

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

#### Пример формы:

<!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>
<form action="/submit" method="post">
<label for="username">Имя пользователя:</label>
<input type="text" id="username" name="username" required><br><br>

<label for="email">Email:</label>
<input type="email" id="email" name="email" required><br><br>

<label for="password">Пароль:</label>
<input type="password" id="password" name="password" required><br><br>

<label for="gender">Пол:</label>
<select id="gender" name="gender">
<option value="male">Мужской</option>
<option value="female">Женский</option>
<option value="other">Другой</option>
</select><br><br>

<label for="newsletter">Подписаться на рассылку:</label>
<input type="checkbox" id="newsletter" name="newsletter"><br><br>

<input type="submit" value="Зарегистрироваться">
</form>
</body>
</html>


### Таблицы в HTML5

Таблицы используются для отображения данных в строках и столбцах. Основные элементы таблицы: <table>, <tr>, <th>, <td>.

#### Пример таблицы:

<!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>
<table border="1">
<tr>
<th>Имя</th>
<th>Фамилия</th>
<th>Возраст</th>
</tr>
<tr>
<td>Иван</td>
<td>Иванов</td>
<td>25</td>
</tr>
<tr>
<td>Мария</td>
<td>Петрова</td>
<td>30</td>
</tr>
</table>
</body>
</html>


### Мультимедиа в HTML5

HTML5 предоставляет встроенную поддержку мультимедиа, такую как аудио и видео.

#### Пример аудио:

<!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>
<audio controls>
<source src="audio.mp3" type="audio/mpeg">
Ваш браузер не поддерживает аудио элемент.
</audio>
</body>
</html>


#### Пример видео:

<!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>
<video controls width="320" height="240">
<source src="video.mp4" type="video/mp4">
Ваш браузер не поддерживает видео элемент.
</video>
</body>
</html>


### Семантические элементы HTML5

Семантические элементы помогают лучше структурировать содержимое страницы и улучшить её доступность для поисковых систем и вспомогательных технологий.

#### Пример использования семантических элементов:
<!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>
<header>
<h1>Заголовок сайта</h1>
<nav>
<ul>
<li><a href="#home">Главная</a></li>
<li><a href="#about">О нас</a></li>
<li><a href="#contact">Контакты</a></li>
</ul>
</nav>
</header>

<main>
<article>
<h2>Статья 1</h2>
<p>Содержание статьи 1.</p>
</article>

<article>
<h2>Статья 2</h2>
<p>Содержание статьи 2.</p>
</article>
</main>

<aside>
<h3>Дополнительная информация</h3>
<p>Здесь может быть дополнительная информация.</p>
</aside>

<footer>
<p>&copy; 2023 Мой сайт</p>
</footer>
</body>
</html>


### Заключение

В этом уроке мы рассмотрели формы, таблицы, мультимедиа и семантические элементы HTML5. Эти темы помогут вам создавать более сложные и функциональные веб-страницы. В следующем уроке мы можем углубиться в CSS для стилизации ваших HTML-документов.

Удачи в изучении HTML5!
Урок 1: Введение в CSS3 — Основы стилизации

Привет, друзья! 👋 Сегодня мы начинаем наш увлекательный путь в мир CSS3 — технологии, которая делает веб-страницы красивыми и современными. Давайте разберем основы!

---

### Что такое CSS3?
CSS (Cascading Style Sheets) — это язык стилей, который используется для описания внешнего вида HTML-документов. CSS3 — это последняя версия, которая добавляет множество новых возможностей, таких как анимации, градиенты, тени и многое другое.

---

### Как подключить CSS к HTML?
Есть три способа подключения стилей:
1. Внутри тега `<style>`

   <style>
body {
background-color: lightblue;
}
</style>


2. Через внешний файл
Создайте файл styles.css и подключите его в HTML:

   <link rel="stylesheet" href="styles.css">


3. Инлайн-стили (внутри тегов)

   <p style="color: red;">Этот текст красный.</p>


---

### Основы синтаксиса CSS
CSS состоит из селекторов и правил.
Пример:
селектор {
свойство: значение;
}



- Селектор — указывает, к какому элементу применяются стили (например, h1, .class, #id).
- Свойство — что именно мы меняем (например, color, font-size, background).
- Значение — как мы это меняем (например, red, 20px, #ffffff).

Пример:
h1 {
color: blue;
font-size: 24px;
}



---

### Популярные свойства CSS3
1. Цвет текста

   color: red;


2. Размер шрифта

   font-size: 16px;


3. Фон элемента

   background-color: yellow;


4. Границы

   border: 2px solid black;


5. Тени

   box-shadow: 5px 5px 10px gray;


---

### Практика
Попробуйте создать простой HTML-документ и добавить стили:
1. Задайте цвет фона страницы.
2. Измените цвет заголовка.
3. Добавьте тень к параграфу.

---

В следующем уроке мы разберем селекторы и каскадность в CSS. Оставайтесь с нами! 🚀

Если есть вопросы, пишите в комментариях! 😉

#CSS #ВебРазработка #УрокиCSS #Программирование
👉Сайт на Joomla за 7 часов
Если сайт нужен был ещё вчера?

Часто бывает так что сайт создаётся очень долго. Есть люди кто создаёт сайт по нескольку месяцев и всё никак его не закончат.

Одно подкорректировать, второе подправить и т.д. Но время идёт, а сайт ещё даже не перенесён на хостинг. За это время он мог бы уже получить посетителей, поисковые системы уже бы проиндексировали его страницы, уже можно было получить обратную связь от посетителей и узнать, что на сайте им нравится, а что не нравится.

Также за это время сайт мог бы получить позиции по определённым запросам и слегка продвинуться.

Но постоянное откладывание, доделывание, улучшение затягивают запуск сайта. Поэтому если вам срочно нужен сайт, то рекомендую пройти бесплатный видеокурс «Сайт на Joomla за 7 часов»: https://Hottab.programsite.ru/freejoomla.

При помощи этого видеокурса вы создадите хороший сайт, с адаптивным дизайном, который будет отвечать всем современным требованиям.


Курс предназначен для начинающих веб-строителей, а также для тех, кто хочет быстро освоить CMS Joomla 3 версии.


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

Из курса вы узнаете:
- что такое информационная и физическая структура сайта и как её создавать.
- как работать с визуальным редактором Joomla и вставлять медиа-объекты
- как установить форму обратной связи/форму заявки и блок с контактами
- как сменить дизайн и сделать сайт адаптивным, чтобы его можно было просматривать с мобильных устройств.
- как вставить карту проезда, веб-аналитку и добавить сайт в поисковые системы - и многое другое

И, в конце концов, запустите полностью рабочий проект в боевое плавание. Поэтому перейдите по ссылке и скачайте этот ускоренный курс по созданию сайта на Joomla 3: https://Hottab.programsite.ru/freejoomla
📘 Полное руководство по PHP – Глава 6: Работа с API (RESTful API) 🐘

В этой главе мы изучим, как создавать и использовать RESTful API на PHP. API (Application Programming Interface) позволяет приложениям взаимодействовать друг с другом. Мы рассмотрим создание API, обработку запросов и работу с JSON.

---

### 1. Что такое RESTful API?
REST (Representational State Transfer) — это архитектурный стиль для создания веб-сервисов. RESTful API использует HTTP-методы (GET, POST, PUT, DELETE) для выполнения операций с ресурсами.

---

### 2. Создание простого RESTful API
#### Шаг 1: Настройка маршрутов
Создайте файл index.php и настройте маршруты:
<?php
header("Content-Type: application/json");

$request_method = $_SERVER['REQUEST_METHOD'];
$request_uri = $_SERVER['REQUEST_URI'];

switch ($request_method) {
case 'GET':
if ($request_uri == '/users') {
getUsers();
} elseif (preg_match('/\/users\/(\d+)/', $request_uri, $matches)) {
getUser($matches[1]);
}
break;
case 'POST':
if ($request_uri == '/users') {
createUser();
}
break;
default:
http_response_code(405);
echo json_encode(["message" => "Метод не поддерживается"]);
}
?>


#### Шаг 2: Функции для обработки запросов
<?php
function getUsers() {
$users = [
["id" => 1, "name" => "Иван"],
["id" => 2, "name" => "Мария"]
];
echo json_encode($users);
}

function getUser($id) {
$users = [
1 => ["id" => 1, "name" => "Иван"],
2 => ["id" => 2, "name" => "Мария"]
];
if (isset($users[$id])) {
echo json_encode($users[$id]);
} else {
http_response_code(404);
echo json_encode(["message" => "Пользователь не найден"]);
}
}

function createUser() {
$data = json_decode(file_get_contents("php://input"), true);
if (isset($data['name'])) {
echo json_encode(["message" => "Пользователь создан", "name" => $data['name']]);
} else {
http_response_code(400);
echo json_encode(["message" => "Неверные данные"]);
}
}
?>


---

### 3. Использование API
#### GET-запрос (получение списка пользователей)
curl -X GET http://localhost/users

Ответ:
[
{"id": 1, "name": "Иван"},
{"id": 2, "name": "Мария"}
]


#### GET-запрос (получение одного пользователя)
curl -X GET http://localhost/users/1

Ответ:
{"id": 1, "name": "Иван"}


#### POST-запрос (создание пользователя)
curl -X POST -H "Content-Type: application/json" -d '{"name": "Алексей"}' http://localhost/users

Ответ:
{"message": "Пользователь создан", "name": "Алексей"}


---

### 4. Обработка ошибок
- 404 Not Found: Ресурс не найден.
- 400 Bad Request: Неверные данные.
- 405 Method Not Allowed: Метод не поддерживается.

Пример:
<?php
http_response_code(404);
echo json_encode(["message" => "Ресурс не найден"]);
?>


---

### 5. Работа с JSON
PHP предоставляет функции для работы с JSON:
- json_encode(): Преобразует массив в JSON.
- json_decode(): Преобразует JSON в массив.

Пример:
<?php
$data = ["name" => "Иван", "age" => 25];
$json = json_encode($data);
echo $json; // {"name":"Иван","age":25}

$array = json_decode($json, true);
print_r($array); // Array ( [name] => Иван [age] => 25 )
?>


---

### 6. Авторизация и токены
Для защиты API часто используются токены (например, JWT).

#### Пример с JWT
1. Установите библиотеку для работы с JWT:

   composer require firebase/php-jwt

2. Создайте токен:

   <?php
use Firebase\JWT\JWT;

$key = "your_secret_key";
$payload = [
"user_id" => 1,
"username" => "Иван"
];
$jwt = JWT::encode($payload, $key);
echo $jwt;
?>

3. Проверка токена:

   <?php
try {
$decoded = JWT::decode($jwt, $key, array('HS256'));
print_r($decoded);
} catch (Exception $e) {
http_response_code(401);
echo json_encode(["message" => "Ошибка авторизации"]);
}
?>




🎯 Что дальше?
В следующей главе мы изучим работу с файлами и загрузкой данных на сервер. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения!
🐍Изучаем Python урок 1

Изучаем Python: Урок 1 — это первый шаг в мир программирования на одном из самых популярных и мощных языков. Python известен своей простотой и читаемостью, что делает его идеальным выбором для начинающих. В этом уроке мы рассмотрим основы Python: установку, синтаксис, переменные и типы данных.

---

### ⚠️ Важно!
Python — это язык программирования, который используется для решения широкого круга задач, от веб-разработки до анализа данных. Убедитесь, что вы используете его в законных и этических целях.

---

### Шаг 1: Установка Python
1. Для Windows:
- Скачайте установщик с официального сайта: [python.org](https://www.python.org/downloads/).
- Убедитесь, что вы отметили галочку Add Python to PATH во время установки.

2. Для Linux:
- Установите Python с помощью пакетного менеджера:

     sudo apt update
sudo apt install python3


3. Для macOS:
- Установите Python с помощью Homebrew:

     brew install python3


4. Проверьте установку:

   python3 --version

Вы должны увидеть что-то вроде:

   Python 3.x.x


---

### Шаг 2: Первая программа на Python
1. Откройте текстовый редактор (например, Notepad++, VS Code или PyCharm).
2. Создайте файл с именем hello.py.
3. Добавьте следующий код:

   print("Привет, мир!")

4. Сохраните файл и запустите его:

   python3 hello.py

Вы увидите:

   Привет, мир!


---

### Шаг 3: Переменные и типы данных
1. Переменные — это контейнеры для хранения данных. В Python не нужно указывать тип переменной, он определяется автоматически.

   name = "Алексей"
age = 25
height = 1.75
is_student = True


2. Типы данных:
- Строки (str): "Привет, мир!"
- Целые числа (int): 42
- Дробные числа (float): 3.14
- Логические значения (bool): True, False

3. Пример:

   name = "Алексей"
age = 25
print("Меня зовут", name, "и мне", age, "лет.")


---

### Шаг 4: Ввод и вывод данных
1. Ввод данных:
Используйте функцию input() для получения данных от пользователя.

   name = input("Введите ваше имя: ")
print("Привет,", name)


2. Форматированный вывод:
Используйте f-строки для удобного форматирования.

   name = "Алексей"
age = 25
print(f"Меня зовут {name} и мне {age} лет.")


---

### Шаг 5: Основные операции
1. Арифметические операции:

   a = 10
b = 3
print(a + b) # Сложение
print(a - b) # Вычитание
print(a * b) # Умножение
print(a / b) # Деление
print(a // b) # Целочисленное деление
print(a % b) # Остаток от деления
print(a ** b) # Возведение в степень


2. Сравнение:

   print(a > b)  # Больше
print(a < b) # Меньше
print(a == b) # Равно
print(a != b) # Не равно


---

### Шаг 6: Условные операторы
1. if-else:

   age = 18
if age >= 18:
print("Вы совершеннолетний.")
else:
print("Вы несовершеннолетний.")


2. elif:

   score = 85
if score >= 90:
print("Отлично!")
elif score >= 70:
print("Хорошо!")
else:
print("Попробуйте еще раз.")


---

### Шаг 7: Циклы
1. Цикл for:

   for i in range(5):
print("Итерация:", i)


2. Цикл while:

   count = 0
while count < 5:
print("Счетчик:", count)
count += 1


---

### Заключение
Этот урок познакомил вас с основами Python: установкой, синтаксисом, переменными, типами данных, вводом/выводом, операциями, условными операторами и циклами. В следующих уроках мы углубимся в более сложные темы, такие как функции, списки, словари и модули.

---

Если у вас есть вопросы или вы хотите узнать больше, пишите в комментариях! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
Отлично! пост посвящен третьему уроку по изучению HTML5. В этом уроке мы сосредоточимся на более продвинутых темах, таких как работа с мультимедиа (аудио, видео), использование iframe для встраивания внешнего контента, а также познакомимся с элементами для создания интерактивных элементов, таких как <details> и <summary>.

---

🚀 Изучаем HTML5 | Урок 3: Продвинутые возможности HTML5

Привет, друзья! Продолжаем наше путешествие в мир HTML5. В этом уроке мы разберем, как работать с мультимедиа, встраивать внешний контент и создавать интерактивные элементы. Поехали! 🎉

---

### 🎧 Мультимедиа: аудио и видео
HTML5 позволяет легко добавлять аудио и видео на вашу страницу без использования сторонних плагинов.

#### Пример аудио:
<audio controls>
<source src="audio.mp3" type="audio/mpeg">
Ваш браузер не поддерживает аудио.
</audio>


#### Пример видео:
<video controls width="600">
<source src="video.mp4" type="video/mp4">
Ваш браузер не поддерживает видео.
</video>


- `controls`: Добавляет элементы управления (воспроизведение, пауза, громкость).
- `<source>`: Указывает источник файла и его тип.

---

### 🌐 Встраивание контента с помощью `<iframe>`
С помощью <iframe> можно встраивать на страницу внешний контент, например, карты, видео с YouTube или другие веб-страницы.

#### Пример встраивания YouTube-видео:
<iframe 
width="560"
height="315"
src="https://www.youtube.com/embed/dQw4w9WgXcQ"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen>
</iframe>


---

### 🛠 Интерактивные элементы: `<details>` и `<summary>`
Эти элементы позволяют создавать раскрывающиеся блоки, которые полезны для FAQ, спойлеров и других интерактивных элементов.

#### Пример:
<details>
<summary>Что такое HTML5?</summary>
<p>HTML5 — это последняя версия языка разметки HTML, которая добавляет новые элементы и возможности для создания современных веб-приложений.</p>
</details>


- `<details>`: Контейнер для скрытого контента.
- `<summary>`: Заголовок, который отображается всегда.

---

### 🎯 Практическое задание
1. Добавьте на свою страницу видео с YouTube с помощью <iframe>.
2. Создайте раскрывающийся блок с использованием <details> и <summary>.
3. Попробуйте добавить аудиоплеер на страницу.

---

💡 Совет: Используйте семантические теги (<header>, <main>, <footer>) для улучшения структуры вашей страницы. Это не только сделает код чище, но и поможет поисковым системам лучше понять ваш контент.

---

В следующем уроке мы начнем изучать CSS, чтобы ваши страницы стали стильными и красивыми! 🎨

Удачи в изучении HTML5! 🚀

#HTML5 #вебразработка #урокиHTML #программирование

---
Урок 2: Селекторы и каскадность в CSS3

Привет, друзья! 👋 Продолжаем изучать CSS3. Сегодня мы разберем селекторы и каскадность — ключевые понятия, которые помогут вам управлять стилями на вашей веб-странице. Поехали! 🚀

---

### Что такое селекторы?
Селекторы — это шаблоны, которые позволяют выбрать элементы HTML для применения стилей. Вот основные типы селекторов:

1. Селектор по тегу
Применяет стили ко всем элементам с указанным тегом.

   p {
color: green;
}


2. Селектор по классу
Используется для элементов с определенным классом (указывается через точку).

   .text-red {
color: red;
}



   <p class="text-red">Этот текст красный.</p>


3. Селектор по ID
Применяется к элементу с уникальным идентификатором (указывается через решетку).

   #header {
font-size: 30px;
}



   <h1 id="header">Заголовок</h1>


4. Универсальный селектор
Применяет стили ко всем элементам на странице.

   * {
margin: 0;
padding: 0;
}


5. Комбинированные селекторы
Можно комбинировать селекторы для более точного выбора:
- Вложенные элементы:

     div p {
color: blue;
}


- Несколько классов:

     .text-bold.text-large {
font-weight: bold;
font-size: 20px;
}


- Дочерние элементы:

     ul > li {
list-style: none;
}


---

### Каскадность в CSS
Каскадность — это механизм, который определяет, какие стили будут применены к элементу, если на него влияют несколько правил. Вот основные принципы:

1. Приоритеты:
- Стили, указанные через !important, имеют наивысший приоритет.
- Инлайн-стили (внутри тега) имеют приоритет над внешними стилями.
- Селекторы по ID имеют больший вес, чем классы, а классы — больше, чем теги.

Пример:

   p {
color: blue !important; /* Этот стиль применится */
}
p {
color: red;
}


2. Порядок объявления:
Если приоритеты равны, применяется последнее объявленное правило.

---

### Практика
1. Создайте HTML-документ с несколькими элементами: заголовками, параграфами и списками.
2. Используйте разные типы селекторов для стилизации:
- Измените цвет всех параграфов.
- Добавьте класс для изменения шрифта заголовка.
- Используйте ID для задания фона определенному блоку.

---

### Домашнее задание
Попробуйте создать страницу с использованием всех типов селекторов. Поделитесь результатами в комментариях! 😉

В следующем уроке мы разберем блочную модель CSS и научимся работать с отступами и границами. Оставайтесь с нами! 💪

#CSS #ВебРазработка #УрокиCSS #Программирование
👉Видеокурс по основам PHP 7
Не секрет, что PHP - это самый популярный язык Web-программирования. По этой причине его должен знать любой, кто планирует создавать мало-мальски серьёзные сайты. Так же те, кто планирует устроиться на работу Web-программистом, должны помнить, что самый основной и самый требуемый язык - это PHP.

Не секрет, что 21 век - это век IT, и очень хорошо, если Вы освоите Web-программирование, тогда в 21-м веке Вы уже без работы не останетесь.

Но как освоить PHP? В Интернете тонны информации, начиная с сотен тысяч статей и заканчивая тысячами книг. Как новичку разобраться?

Хочу порекомендовать Вам курс по PHP 7 от Михаила Русакова. Михаил Русаков - это многолетний практик, и он, в отличие от многих авторов книг, знает, что нужно знать, а что совсем не обязательно. Его курс содержит всё то, что нужно и ничего лишнего. И самое главное, что курс бесплатный!

Курс состоит из 28 видеоуроков по всем базовым вещам в PHP 7, и это будет уже отличной базой для дальнейшего развития. Я этот курс уже посмотрел, и остался очень доволен, поэтому рекомендую всем. Ссылка на курс: https://Hottab.programsite.ru/freephp7
📘 Полное руководство по PHP – Глава 7: Работа с файлами и загрузка данных на сервер 🐘

В этой главе мы рассмотрим, как работать с файлами в PHP, включая загрузку файлов на сервер, чтение и запись данных, а также управление файловой системой. Эти навыки необходимы для создания функциональных веб-приложений.

---

### 1. Загрузка файлов на сервер
PHP позволяет загружать файлы на сервер через HTML-форму.

#### HTML-форма
<form action="upload.php" method="post" enctype="multipart/form-data">
Выберите файл: <input type="file" name="file">
<input type="submit" value="Загрузить">
</form>


#### Обработка загрузки (upload.php)
<?php
if ($_FILES['file']['error'] === UPLOAD_ERR_OK) {
$upload_dir = 'uploads/';
$upload_file = $upload_dir . basename($_FILES['file']['name']);

if (move_uploaded_file($_FILES['file']['tmp_name'], $upload_file)) {
echo "Файл успешно загружен!";
} else {
echo "Ошибка при загрузке файла!";
}
} else {
echo "Ошибка: " . $_FILES['file']['error'];
}
?>


---

### 2. Чтение и запись файлов
PHP предоставляет функции для работы с файлами.

#### Чтение файла
<?php
$file = fopen("example.txt", "r") or die("Не удалось открыть файл!");
echo fread($file, filesize("example.txt"));
fclose($file);
?>


#### Запись в файл
<?php
$file = fopen("example.txt", "w") or die("Не удалось открыть файл!");
$text = "Привет, мир!";
fwrite($file, $text);
fclose($file);
?>


---

### 3. Работа с директориями
PHP позволяет создавать, удалять и переименовывать директории.

#### Создание директории
<?php
if (!file_exists("new_dir")) {
mkdir("new_dir");
echo "Директория создана!";
} else {
echo "Директория уже существует!";
}
?>


#### Удаление директории
<?php
if (file_exists("new_dir")) {
rmdir("new_dir");
echo "Директория удалена!";
} else {
echo "Директория не существует!";
}
?>


#### Переименование директории
<?php
if (file_exists("old_dir")) {
rename("old_dir", "new_dir");
echo "Директория переименована!";
} else {
echo "Директория не существует!";
}
?>


---

### 4. Работа с CSV
CSV (Comma-Separated Values) — это формат для хранения табличных данных.

#### Чтение CSV
<?php
$file = fopen("data.csv", "r");
while (($data = fgetcsv($file, 1000, ",")) !== FALSE) {
print_r($data);
}
fclose($file);
?>


#### Запись в CSV
<?php
$file = fopen("data.csv", "w");
$data = [
["Иван", 25],
["Мария", 30]
];
foreach ($data as $row) {
fputcsv($file, $row);
}
fclose($file);
?>


---

### 5. Работа с JSON
JSON (JavaScript Object Notation) — это популярный формат для обмена данными.

#### Чтение JSON
<?php
$json = '{"name": "Иван", "age": 25}';
$array = json_decode($json, true);
print_r($array);
?>


#### Запись JSON
<?php
$array = ["name" => "Иван", "age" => 25];
$json = json_encode($array);
echo $json;
?>


---

### 6. Управление файловой системой
PHP предоставляет функции для работы с файловой системой.

#### Проверка существования файла
<?php
if (file_exists("example.txt")) {
echo "Файл существует!";
} else {
echo "Файл не существует!";
}
?>


#### Получение размера файла
<?php
echo "Размер файла: " . filesize("example.txt") . " байт";
?>


#### Удаление файла
<?php
if (unlink("example.txt")) {
echo "Файл удалён!";
} else {
echo "Ошибка при удалении файла!";
}
?>


---

🎯 Что дальше?
В следующей главе мы изучим работу с сессиями и куками, а также управление состоянием пользователя. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #Файлы #Загрузка #Программирование #Телеграм
Изучаем Python: Урок 2 — это продолжение нашего путешествия в мир программирования на Python. В этом уроке мы рассмотрим более сложные темы, такие как функции, списки, словари и работа с файлами. Эти концепции являются ключевыми для написания более структурированных и мощных программ.

---

### ⚠️ Важно!
Python — это язык программирования, который используется для решения широкого круга задач. Убедитесь, что вы используете его в законных и этических целях.

---

### Шаг 1: Функции
Функции позволяют организовать код в блоки, которые можно повторно использовать.

1. Создание функции:
Используйте ключевое слово def для определения функции.

   def greet(name):
print(f"Привет, {name}!")


2. Вызов функции:

   greet("Алексей")

Вывод:

   Привет, Алексей!


3. Функции с возвращаемым значением:
Используйте return для возврата значения.

   def add(a, b):
return a + b

result = add(3, 5)
print(result) # Вывод: 8


---

### Шаг 2: Списки
Списки — это упорядоченные коллекции элементов, которые могут содержать данные разных типов.

1. Создание списка:

   fruits = ["яблоко", "банан", "вишня"]


2. Доступ к элементам:

   print(fruits[0])  # Вывод: яблоко
print(fruits[-1]) # Вывод: вишня


3. Изменение элементов:

   fruits[1] = "груша"
print(fruits) # Вывод: ["яблоко", "груша", "вишня"]


4. Методы списков:
- append(): Добавляет элемент в конец списка.

     fruits.append("апельсин")

- remove(): Удаляет элемент по значению.

     fruits.remove("груша")

- len(): Возвращает количество элементов.

     print(len(fruits))  # Вывод: 3


---

### Шаг 3: Словари
Словари — это неупорядоченные коллекции пар "ключ-значение".

1. Создание словаря:

   person = {
"имя": "Алексей",
"возраст": 25,
"город": "Москва"
}


2. Доступ к значениям:

   print(person["имя"])  # Вывод: Алексей


3. Изменение значений:

   person["возраст"] = 26


4. Добавление новых пар:

   person["профессия"] = "программист"


5. Методы словарей:
- keys(): Возвращает список ключей.

     print(person.keys())  # Вывод: dict_keys(['имя', 'возраст', 'город', 'профессия'])

- values(): Возвращает список значений.

     print(person.values())  # Вывод: dict_values(['Алексей', 26, 'Москва', 'программист'])


---

### Шаг 4: Работа с файлами
Python позволяет легко работать с файлами для чтения и записи данных.

1. Чтение из файла:

   with open("example.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)


2. Запись в файл:

   with open("example.txt", "w", encoding="utf-8") as file:
file.write("Привет, мир!")


3. Добавление в файл:

   with open("example.txt", "a", encoding="utf-8") as file:
file.write("\nНовая строка.")


---

### Шаг 5: Практические примеры
1. Функция для работы со списком:

   def print_list(items):
for item in items:
print(item)

fruits = ["яблоко", "банан", "вишня"]
print_list(fruits)


2. Функция для работы со словарем:

   def print_person_info(person):
for key, value in person.items():
print(f"{key}: {value}")

person = {"имя": "Алексей", "возраст": 25}
print_person_info(person)


3. Чтение и запись файла:

   def read_and_write_file(filename):
with open(filename, "r", encoding="utf-8") as file:
content = file.read()
with open("output.txt", "w", encoding="utf-8") as file:
file.write(content.upper())

read_and_write_file("example.txt")


---

### Заключение
Этот урок познакомил вас с функциями, списками, словарями и работой с файлами в Python. Эти концепции являются основой для написания более сложных и структурированных программ. В следующих уроках мы рассмотрим модули, классы и обработку исключений.

---
Отлично! пост посвященный четвертому уроку по изучению HTML5. В этом уроке мы сосредоточимся на работе с формами, их элементами и атрибутами, а также рассмотрим, как улучшить пользовательский опыт с помощью новых возможностей HTML5, таких как валидация и элементы ввода.

---

🚀 Изучаем HTML5 | Урок 4: Формы и элементы ввода

Привет, друзья! В этом уроке мы погрузимся в мир форм и элементов ввода, которые позволяют собирать данные от пользователей. HTML5 предлагает множество новых возможностей для создания удобных и функциональных форм. Давайте начнем! 🎉

---

### 📝 Основы форм
Формы создаются с помощью тега <form>. Они могут содержать различные элементы ввода, такие как текстовые поля, кнопки, флажки и многое другое.

#### Пример простой формы:
<form action="/submit" method="post">
<label for="name">Имя:</label>
<input type="text" id="name" name="name" required>

<label for="email">Email:</label>
<input type="email" id="email" name="email" required>

<button type="submit">Отправить</button>
</form>


- `action`: Указывает URL, на который отправляются данные формы.
- `method`: Определяет метод отправки данных (GET или POST).
- `required`: Обязательное поле для заполнения.

---

### 🛠 Элементы ввода
HTML5 предоставляет множество типов элементов ввода, которые упрощают сбор данных и улучшают пользовательский опыт.

#### Примеры:
<label for="color">Выберите цвет:</label>
<input type="color" id="color" name="color">

<label for="date">Дата:</label>
<input type="date" id="date" name="date">

<label for="range">Уровень удовлетворения:</label>
<input type="range" id="range" name="range" min="0" max="10">

<label for="file">Загрузите файл:</label>
<input type="file" id="file" name="file">


- `type="color"`: Поле для выбора цвета.
- `type="date"`: Поле для выбора даты.
- `type="range"`: Ползунок для выбора значения в диапазоне.
- `type="file"`: Поле для загрузки файлов.

---

### 🔍 Валидация форм
HTML5 упрощает валидацию данных с помощью встроенных атрибутов.

#### Пример:
<label for="phone">Телефон:</label>
<input type="tel" id="phone" name="phone" pattern="[0-9]{10}" required>


- `pattern`: Указывает регулярное выражение для проверки ввода.
- `type="tel"`: Поле для ввода номера телефона.

---

### 🎯 Практическое задание
1. Создайте форму регистрации с полями для имени, email, пароля и даты рождения.
2. Добавьте поле для выбора цвета и ползунок для оценки.
3. Используйте атрибуты валидации, чтобы сделать поля обязательными.

---

💡 Совет: Используйте семантические теги, такие как <fieldset> и <legend>, для группировки элементов формы. Это улучшит читаемость и доступность вашего кода.

---

Удачи в изучении HTML5! 🚀

#HTML5 #вебразработка #урокиHTML #программирование

---
Урок 3: Блочная модель CSS — Отступы, границы и размеры

Привет, друзья! 👋 Сегодня мы погрузимся в одну из самых важных тем в CSS — блочную модель. Это основа верстки, которая поможет вам контролировать размеры, отступы и границы элементов. Давайте разбираться! 🚀

---

### Что такое блочная модель?
Каждый элемент на веб-странице представляет собой прямоугольный блок. Блочная модель описывает, как вычисляются размеры этого блока, включая:
1. Содержимое (content) — область, где отображается текст или другие элементы.
2. Внутренние отступы (padding) — пространство между содержимым и границей.
3. Границы (border) — рамка вокруг элемента.
4. Внешние отступы (margin) — пространство между элементом и другими элементами.

---

### Свойства блочной модели

1. Ширина и высота (width, height)
Задают размеры содержимого элемента.

   div {
width: 300px;
height: 200px;
}


2. Внутренние отступы (padding)
Добавляют пространство внутри элемента, вокруг содержимого.

   div {
padding: 20px; /* Отступы со всех сторон */
padding-top: 10px; /* Индивидуально */
}


3. Границы (border)
Задают рамку вокруг элемента.

   div {
border: 2px solid black; /* Толщина, стиль, цвет */
border-radius: 10px; /* Закругленные углы */
}


4. Внешние отступы (margin)
Создают пространство между элементами.

   div {
margin: 15px; /* Отступы со всех сторон */
margin-bottom: 30px; /* Индивидуально */
}


---

### Как рассчитывается общий размер элемента?
По умолчанию общий размер элемента складывается из:
- Ширина = width + padding + border
- Высота = height + padding + border

Чтобы изменить это поведение, можно использовать свойство box-sizing:
- box-sizing: content-box; (по умолчанию) — размеры учитывают только содержимое.
- box-sizing: border-box; — размеры включают padding и border.

Пример:
div {
width: 300px;
padding: 20px;
border: 5px solid black;
box-sizing: border-box; /* Общая ширина останется 300px */
}


---

### Практика
1. Создайте блок с заданными размерами (width, height).
2. Добавьте внутренние отступы (padding) и границу (border).
3. Поэкспериментируйте с внешними отступами (margin), чтобы расположить блоки на странице.
4. Используйте box-sizing: border-box;, чтобы упростить расчеты.

---

### Домашнее задание
Создайте макет из нескольких блоков:
- Заголовок с отступами и границей.
- Текстовый блок с внутренними отступами.
- Изображение с внешними отступами.

Поделитесь результатами в комментариях! 😉

В следующем уроке мы разберем позиционирование элементов — как управлять расположением блоков на странице. Оставайтесь с нами! 💪

#CSS #ВебРазработка #УрокиCSS #Программирование
👉PHP и MySQL с Нуля до Гуру 2.0
Основой подавляющего большинства мало-мальски сложных сайтов является PHP. Именно с помощью PHP делается весь функционал сайта: формы обратной связи, регистрация, авторизация, поиск по сайту, добавление в корзину, оформление заказа, админка всех сайтов и многое-многое другое. Поэтому любой, кто планирует заниматься сайтостроением, а оно, кстати, весьма прибыльно, должен изучить PHP.

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

И вот недавно я узнал, что Михаил Русаков выпустил свой новый Видеокурс "PHP и MySQL с Нуля до Гуру 2.0". Это продолжение бестселлера "PHP и MySQL с Нуля до Гуру". В новом курсе он с нуля обучает языку PHP, причём разбирается именно свежая версия PHP 7: https://Hottab.programsite.ru/php7

В курсе он разбирает установку локального сервера, все базовые вещи языка PHP, стандартные функции и классы, ООП, компоненты, расширения, работа с базой данных, MySQL, PDO - в общем, целый ворох важнейших вещей.

Курсы Михаила Русакова я уже смотрю давно, и все они сделаны качественно, видно, что он является большим практиком в сайтостроении, и при этом у него, по моему мнению, дар преподавателя.

Подробности о курсе по ссылке: https://Hottab.programsite.ru/php7.
📘 Полное руководство по PHP – Глава 8: Работа с сессиями и куками 🐘

В этой главе мы рассмотрим, как управлять состоянием пользователя с помощью сессий и кук. Эти технологии позволяют сохранять данные между запросами, что особенно полезно для авторизации, корзин покупок и персонализации.

---

### 1. Сессии
Сессии позволяют хранить данные на сервере для каждого пользователя. Каждая сессия имеет уникальный идентификатор, который передаётся через куки.

#### Начало сессии
<?php
session_start();
?>


#### Сохранение данных в сессии
<?php
session_start();
$_SESSION['username'] = "Иван";
echo "Данные сохранены в сессии!";
?>


#### Получение данных из сессии
<?php
session_start();
if (isset($_SESSION['username'])) {
echo "Привет, " . $_SESSION['username'] . "!";
} else {
echo "Сессия не найдена!";
}
?>


#### Удаление данных из сессии
<?php
session_start();
unset($_SESSION['username']);
echo "Данные удалены из сессии!";
?>


#### Завершение сессии
<?php
session_start();
session_destroy();
echo "Сессия завершена!";
?>


---

### 2. Куки
Куки позволяют хранить данные на стороне клиента. Они могут быть использованы для персонализации или отслеживания пользователей.

#### Установка куки
<?php
setcookie("username", "Иван", time() + 3600, "/");
echo "Кука установлена!";
?>


#### Получение данных из куки
<?php
if (isset($_COOKIE['username'])) {
echo "Привет, " . $_COOKIE['username'] . "!";
} else {
echo "Кука не найдена!";
}
?>


#### Удаление куки
<?php
setcookie("username", "", time() - 3600, "/");
echo "Кука удалена!";
?>


---

### 3. Пример: Авторизация с использованием сессий
#### Форма входа
<form action="login.php" method="post">
Имя пользователя: <input type="text" name="username">
Пароль: <input type="password" name="password">
<input type="submit" value="Войти">
</form>


#### Обработка входа (login.php)
<?php
session_start();

$username = $_POST['username'];
$password = $_POST['password'];

// Проверка логина и пароля (пример)
if ($username === "Иван" && $password === "12345") {
$_SESSION['username'] = $username;
echo "Вход выполнен!";
} else {
echo "Неверные данные!";
}
?>


#### Проверка авторизации
<?php
session_start();

if (isset($_SESSION['username'])) {
echo "Привет, " . $_SESSION['username'] . "!";
} else {
echo "Пожалуйста, войдите в систему.";
}
?>


#### Выход из системы
<?php
session_start();
session_destroy();
echo "Вы вышли из системы!";
?>


---

### 4. Пример: Запоминание пользователя с использованием кук
#### Установка куки при входе
<?php
$username = $_POST['username'];
$password = $_POST['password'];

if ($username === "Иван" && $password === "12345") {
setcookie("username", $username, time() + 3600, "/");
echo "Вход выполнен!";
} else {
echo "Неверные данные!";
}
?>


#### Проверка куки
<?php
if (isset($_COOKIE['username'])) {
echo "Привет, " . $_COOKIE['username'] . "!";
} else {
echo "Пожалуйста, войдите в систему.";
}
?>


---

### 5. Безопасность
- Сессии: Используйте session_regenerate_id() для предотвращения фиксации сессии.
- Куки: Устанавливайте флаг HttpOnly и Secure для защиты от XSS и перехвата.

  setcookie("username", "Иван", time() + 3600, "/", "", true, true);


---

🎯 Что дальше?
В следующей главе мы изучим работу с базами данных, включая PDO и ORM. Продолжайте изучать PHP, и вы сможете создавать мощные веб-приложения! 🚀

#PHP #Сессии #Куки #Программирование #Телеграм
Изучаем Python: Урок 3 — это продолжение нашего изучения Python. В этом уроке мы рассмотрим такие важные темы, как модули, классы и объектно-ориентированное программирование (ООП), а также обработку исключений. Эти концепции помогут вам писать более структурированный, модульный и устойчивый код.

---

### ⚠️ Важно!
Python — это мощный язык программирования, который используется для решения широкого круга задач. Убедитесь, что вы используете его в законных и этических целях.

---

### Шаг 1: Модули
Модули — это файлы с расширением .py, которые содержат код, например функции, классы и переменные. Они позволяют организовывать код в логические блоки и повторно использовать его.

1. Импорт модуля:
Используйте ключевое слово import для подключения модуля.

   import math
print(math.sqrt(16)) # Вывод: 4.0


2. Импорт конкретных функций:

   from math import sqrt, pi
print(sqrt(25)) # Вывод: 5.0
print(pi) # Вывод: 3.141592653589793


3. Создание собственного модуля:
- Создайте файл my_module.py:

     def greet(name):
return f"Привет, {name}!"

- Импортируйте его в другом файле:

     import my_module
print(my_module.greet("Алексей")) # Вывод: Привет, Алексей!


---

### Шаг 2: Классы и ООП
Объектно-ориентированное программирование (ООП) — это парадигма программирования, которая использует объекты и классы для организации кода.

1. Создание класса:
Используйте ключевое слово class.

   class Dog:
def __init__(self, name, age):
self.name = name
self.age = age

def bark(self):
return f"{self.name} говорит: Гав!"


2. Создание объекта:

   my_dog = Dog("Бобик", 3)
print(my_dog.bark()) # Вывод: Бобик говорит: Гав!


3. Наследование:
Классы могут наследовать свойства и методы других классов.

   class Puppy(Dog):
def __init__(self, name, age, color):
super().__init__(name, age)
self.color = color

def play(self):
return f"{self.name} играет!"


4. Использование наследования:

   my_puppy = Puppy("Шарик", 1, "белый")
print(my_puppy.bark()) # Вывод: Шарик говорит: Гав!
print(my_puppy.play()) # Вывод: Шарик играет!


---

### Шаг 3: Обработка исключений
Исключения — это ошибки, которые возникают во время выполнения программы. Их можно обрабатывать, чтобы программа не завершалась аварийно.

1. Блок try-except:

   try:
result = 10 / 0
except ZeroDivisionError:
print("Ошибка: деление на ноль!")


2. Блок finally:
Код в блоке finally выполняется всегда, независимо от того, произошла ошибка или нет.

   try:
file = open("example.txt", "r")
content = file.read()
except FileNotFoundError:
print("Файл не найден!")
finally:
file.close()
print("Файл закрыт.")


3. Создание собственных исключений:

   class MyCustomError(Exception):
pass

try:
raise MyCustomError("Это моя ошибка!")
except MyCustomError as e:
print(e) # Вывод: Это моя ошибка!


---

### Шаг 4: Практические примеры
1. Использование модуля `datetime`:

   from datetime import datetime
now = datetime.now()
print(f"Текущее время: {now}")


2. Класс для работы с банковским счетом:

   class BankAccount:
def __init__(self, owner, balance=0):
self.owner = owner
self.balance = balance

def deposit(self, amount):
self.balance += amount
return f"Баланс пополнен на {amount}. Текущий баланс: {self.balance}"

def withdraw(self, amount):
if amount > self.balance:
return "Недостаточно средств на счете."
self.balance -= amount
return f"Снято {amount}. Текущий баланс: {self.balance}"


3. Обработка исключений при работе с файлами:

   try:
with open("example.txt", "r") as file:
print(file.read())
except FileNotFoundError:
print("Файл не найден!")


---
### Заключение
Этот урок познакомил вас с модулями, классами, объектно-ориентированным программированием и обработкой исключений. Эти концепции помогут вам писать более структурированный, модульный и устойчивый код. В следующих уроках мы рассмотрим работу с библиотеками, регулярными выражениями и асинхронным программированием.

---
Отлично! пост посвященный пятому уроку по изучению HTML5. В этом уроке мы сосредоточимся на работе с мультимедиа, включая аудио, видео и графику, а также рассмотрим, как использовать элементы <canvas> и <svg> для создания графики на веб-страницах.

---

🚀 Изучаем HTML5 | Урок 5: Мультимедиа и графика

Привет, друзья! В этом уроке мы продолжим изучать возможности HTML5, сосредоточившись на мультимедиа и графике. Мы узнаем, как добавлять аудио и видео на страницы, а также как создавать графику с помощью <canvas> и <svg>. Поехали! 🎉

---

### 🎧 Аудио и видео в HTML5
HTML5 предоставляет встроенную поддержку для добавления аудио и видео на веб-страницы без необходимости использования сторонних плагинов.

#### Пример аудио:
<audio controls>
<source src="audio.mp3" type="audio/mpeg">
Ваш браузер не поддерживает аудио элемент.
</audio>


#### Пример видео:
<video controls width="600">
<source src="video.mp4" type="video/mp4">
Ваш браузер не поддерживает видео элемент.
</video>


- `controls`: Добавляет элементы управления (воспроизведение, пауза, громкость).
- `<source>`: Указывает источник файла и его тип.

---

### 🎨 Графика с помощью `<canvas>`
Элемент <canvas> используется для создания графики на лету с помощью JavaScript. Это мощный инструмент для рисования графиков, анимаций и даже игр.

#### Пример:
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">
</canvas>
<script>
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.fillStyle = '#FF0000';
ctx.fillRect(10, 10, 50, 50);
</script>


- `getContext('2d')`: Получает контекст для рисования 2D графики.
- `fillRect(x, y, width, height)`: Рисует прямоугольник.

---

### 🖼 Графика с помощью `<svg>`
SVG (Scalable Vector Graphics) — это формат векторной графики, который позволяет создавать масштабируемые изображения. SVG можно использовать для создания сложных графических элементов, таких как иконки, диаграммы и анимации.

#### Пример:
<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />
</svg>


- `<circle>`: Создает круг с заданными параметрами.
- `cx`, `cy`: Координаты центра круга.
- `r`: Радиус круга.

---

### 🎯 Практическое задание
1. Добавьте на свою страницу аудиоплеер и видеоплеер.
2. Создайте простой рисунок на элементе <canvas> с использованием JavaScript.
3. Используйте SVG для создания графического элемента, например, иконки или диаграммы.

---

💡 Совет: Используйте семантические теги (<header>, <main>, <footer>) для улучшения структуры вашей страницы. Это не только сделает код чище, но и поможет поисковым системам лучше понять ваш контент.

--

Не забывайте задавать вопросы в комментариях, если что-то непонятно. Удачи в изучении HTML5! 🚀

#HTML5 #вебразработка #урокиHTML #программирование

---
Урок 4: Позиционирование элементов в CSS

Привет, друзья! 👋 Сегодня мы изучим, как управлять расположением элементов на веб-странице с помощью позиционирования в CSS. Это мощный инструмент, который позволяет точно размещать элементы и создавать сложные макеты. Поехали! 🚀

---

### Типы позиционирования

В CSS есть несколько способов позиционирования элементов:

1. Статическое позиционирование (`static`)
Это значение по умолчанию. Элементы отображаются в обычном потоке документа.

   div {
position: static;
}


2. Относительное позиционирование (`relative`)
Элемент смещается относительно своего обычного положения. Остальные элементы остаются на своих местах.

   div {
position: relative;
top: 20px; /* Смещение вниз */
left: 30px; /* Смещение вправо */
}


3. Абсолютное позиционирование (`absolute`)
Элемент удаляется из обычного потока документа и позиционируется относительно ближайшего родительского элемента с position: relative, absolute, fixed или sticky. Если такого родителя нет, элемент позиционируется относительно <html>.

   div {
position: absolute;
top: 0;
right: 0;
}


4. Фиксированное позиционирование (`fixed`)
Элемент фиксируется относительно окна браузера и не двигается при прокрутке страницы.

   div {
position: fixed;
bottom: 10px;
right: 10px;
}


5. Липкое позиционирование (`sticky`)
Элемент ведет себя как relative, пока не достигнет определенной точки при прокрутке, после чего становится fixed.

   div {
position: sticky;
top: 0;
}


---

### Свойства для позиционирования
Для управления позицией элемента используются свойства:
- top, bottom, left, right — задают смещение относительно краев.
- z-index — управляет порядком наложения элементов (работает только с position: relative, absolute, fixed, sticky).

Пример:
div {
position: absolute;
top: 50px;
left: 100px;
z-index: 10; /* Элемент будет поверх других */
}


---

### Примеры использования

1. Кнопка "Наверх"

   .to-top {
position: fixed;
bottom: 20px;
right: 20px;
padding: 10px;
background-color: blue;
color: white;
}


2. Липкий заголовок

   header {
position: sticky;
top: 0;
background-color: white;
z-index: 100;
}


3. Наложение элементов

   .image-container {
position: relative;
}
.overlay {
position: absolute;
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.5);
}


---

### Практика
1. Создайте блок с относительным позиционированием и сместите его.
2. Добавьте фиксированную кнопку в нижний правый угол страницы.
3. Сделайте липкий заголовок, который остается наверху при прокрутке.

---

### Домашнее задание
Создайте макет с использованием всех типов позиционирования:
- Относительное позиционирование для смещения элемента.
- Абсолютное позиционирование для наложения текста на изображение.
- Фиксированное позиционирование для кнопки "Наверх".
- Липкое позиционирование для заголовка.

Поделитесь результатами в комментариях! 😉

В следующем уроке мы разберем Flexbox — мощный инструмент для создания гибких макетов. Оставайтесь с нами! 💪

#CSS #ВебРазработка #УрокиCSS #Программирование
👉Создание движка на PHP для начинающих
Я достаточно давно занимаюсь созданием сайтов. И у меня иногда мои знакомые спрашивают, где я всему этому научился. Я решил, что эта информация может быть кому-нибудь полезна и среди моих читателей.

Где-то 90% своих знаний я почерпнул из курсов Михаила Русакова. И вот не так давно у него вышел очень интересный бесплатный курс по теме создания собственных движков для сайтов. Эта тема очень актуальна, если Вы хотите создавать по-настоящему профессиональные сайты.

У готовых движков есть огромное количество минусов. Не буду сейчас подробно останавливаться на них - просто перечислю основные из них: низкая безопасность (стандартные движки взламываются стандартно и никакие расширения не помогут, сразу говорю), медленная работа (любой движок - универсальность, отсюда и появляются тормоза), плохая оптимизация (сайтов на той же Joomla миллионы, и большинство из них принадлежит школьникам, отсюда и нелюбовь поисковых систем к подобным сайтам), зависимость от сторонних расширений.

Так вот Михаил выпустил бесплатный курс "Создание двжика на PHP для начинающих": https://Hottab.programsite.ru/freephp2.

Я уже этот курс прошёл. Мне он очень понравился, но отмечу, что курс рассчитан, в первую очередь, на тех, кто уже знаком с HTML+CSS+PHP. Хотя, в целом, курс очень простой (если знать базу). Всё разбирается на примере создания готового движка с чистого листа.

Поэтому если Вы хотите создавать качественные сайты и выделиться на фоне сайтов на Joomla всяких школьников, то могу посоветовать курс Михаила Русакова: https://Hottab.programsite.ru/freephp2 - по крайней мере в Рунете лучше курса по этой теме я ещё точно не видел, и это при том, что сам курс абсолютно бесплатный.