Рубрики
PHP

ubuntu / 20.04 / install / php / 7.4 / 7.3 / 7.2 / 5.6

Установка php

php -v - показать версию php

Добавим репозиторий:
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Установка PHP 7.4
sudo apt install -y php7.4

Установка PHP 7.3
sudo apt install -y php7.3

Установка PHP 7.2
sudo apt install -y php7.2

Установка PHP 5.6
sudo apt install -y php5.6

Установка модулей для php 7.4
sudo apt-cache search php7*
sudo apt install php7.4-mysql php7.4-curl php7.4-json php7.4-cgi php7.4-xsl

выбрать версию PHP
sudo update-alternatives --config php

Ссылки:

How to Install PHP (8.3 to 5.6) on Ubuntu 20.04
Рубрики
cms

plex \ kodi \ video \ jellyfin

code.getnoc.com

plex

apt update && sudo apt upgrade
apt install apt-transport-https curl gnupg sudo 
curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add -
echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list
apt update
apt install plexmediaserver


systemctl status plexmediaserver
systemctl start plexmediaserver
systemctl stop plexmediaserver
systemctl enable plexmediaserver

http://127.0.0.1:32400/web or http://localhost:32400/web
Рубрики
PHP

Centos 7 / update / php 7.x / php 7.4 / php 8

Ссылки:

https://stackoverflow.com/questions/62870093/how-to-update-to-php-7-4-from-php-7-x-on-centos-7
https://blog.programs74.ru/how-to-install-php-74-nginx-on-centos7/
https://www.1c-bitrix.ru/download/vmbitrix.php#tab-section-1

PHP 7.2 до 7.4 обновляем без удаления (bitrix24)

!!! Сделай backup
!!! репозиторий remi в системе уже присутствует
0. Проверяем версию php
php -v
1. Пытаемся обновить пакеты 
yum --disablerepo=remi-php72 --enablerepo=remi-php74 install php php-pdo php-fpm php-gd php-mbstring php-mysql php-curl php-mcrypt php-json -y
2. Если все ок перезапускаем nginx и apache2
systemctl restart nginx httpd

PHP update с удаление старой версии php

!!! Сделай backup
!!! Внимание чревато тем что все пакеты зависящие от текущей установки php будут удалены
0. Обновляем пакеты
yum update -y

1. Проверяем текущую версию php
php -v

2. Проверяем доступные пакеты
rpm -qa | grep php
rpm -qa | grep php > php_rpm.txt

3. Удаляем установленные пакеты php
yum remove "php*" -y

4. Добавляем репозиторий remi
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum update -y 

5. Выключаем установленную версию 7.x и включаем 7.4 
yum --disablerepo=remi-php7x --enablerepo=remi-php74 install php php-pdo php-fpm php-gd php-mbstring php-mysql php-curl php-mcrypt php-json -y

6. Проверяем версию php
php -v

7. перезапускаем apache
systemctl restart httpd
Рубрики
sql sql - mysql - postgres Конспект

Конспект: MySQL / mysql / mariadb / tool

Ссылки:

http://www.mysql.ru/faq/

https://htmlweb.ru/php/mysql.php
https://htmlweb.ru/php/mysql_example.php
https://htmlweb.ru/php/mysql_faq.php

http://www.spravkaweb.ru/

Бэкап:

 
mysqldump --all --add-drop-table [--all-databases] --force [--no-data] [-c] --password=password --user=user [база] [таблицы] > backup_file
-c - формировать в виде полных INSERT. 
--all-databases - бэкап всех баз
--no-data - бэкап только структуры таблиц в базах
[таблицы] - бэкапить только указанные таблицы

mysqldump -u -p dbname > /path/to/file.sql - резервная копия
mysqldump -u root -p -f mydatabase > /home/myname/mydatabasedump.sql - бэкап

Восстановление:

mysql -u username -p dbname < /path/to/file.sql - восстановление
mysql -u root -p -f mydatabase < /home/myname/mydatabasedump.sql - восстановление

Краткое введение в MySQL:

СУБД MySQL - одна из множества баз данных, поддерживаемых в PHP. 
Система MySQL распространяется бесплатно и обладает достаточной мощностью для решения реальных задач.
SQL - это аббревиатура от слов Structured Query Language, что означает структурированный язык запросов. 
Этот язык является стандартным средством для доступа к различным базам данных.
Система MySQL представляет собой сервер, к которому могут подключаться пользователи удаленных компьютеров.
Для работы с базами данных удобно пользоваться средством, входящее в комплект Web-разработчика: Denwer phpMyAdmin. 
Здесь можно создать новую базу данных, создать новую таблицу в выбранной базе данных, 
заполнить таблицу данными, а также добавлять, удалять и редактировать данные.

Основные типы данных:

INT -  Целое число
TINYINT - Маленькое целое число (-127 до 128 или от 0 до 255)
FLOAT - Вещественное число с плавающей точкой
DATE - Дата. Отображается в виде ГГГГ-ММ-ДД
TIME - Время. Отображается в виде ЧЧ:ММ:СС
DATETIME - Дата и время. Отображается в виде ГГГГ-ММ-ДДЧЧ:ММ:СС
YEAR[(2|4)] - Год. Можно определить двух- или четырех цифирный формат
CHAR(M) - Строка фиксированной длины М (M<=255)
VARCHAR(M) - Строка произвольной длины до М (M<=255)
TEXT - Длинные текстовые фрагменты (<=65535)
BLOB - Большие двоичные объекты (изображения, звуки)

Каждый столбец после своего типа данных содержит и другие спецификаторы:

NOT NULL - Все строки таблицы должны иметь значение в этом атрибуте. Если не указано, поле может быть пустым (NULL)

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

PRIMARY KEY - Столбец является первичным ключом для таблицы. 
              Данные в этом столбце должны быть уникальными. 
              MySQL автоматически индексирует этот столбец

UNSIGNED - После целочисленного типа означает, что его значение может быть либо положительным, либо нулевым

COMMENT - Название столбца таблицы

Для изменения ранее записанных в таблицу значений нужно воспользоваться командой UPDATE:

Например, цену всех книг повысили на 10%:
UPDATE books SET price = price * 1.1;

Конструкция WHERE ограничит работу UPDATE определенным строками:

Например:
UPDATE books SET price = price * 1.05 WHERE price <= 250;

Для удаления строк из базы данных используется оператор DELETE:

Ненужные строки указываются при помощи конструкции WHERE. 
Например, какие-то книги проданы:
DELETE FROM books WHERE quantity = 0;

Если нужно удалить все записи:

TRUNCATE TABLE table_name

Очистка базы данных

 
mysqldump -uuser -ppassword --add-drop-table --no-data databasename | grep ^DROP | mysql -uuser -ppassword databasename - очистка базы данных без удаления базы данных.

Бэкап:

 
mysqldump --all --add-drop-table [--all-databases] --force [--no-data] [-c] --password=password --user=user [база] [таблицы] > backup_file
-c - формировать в виде полных INSERT. 
--all-databases - бэкап всех баз
--no-data - бэкап только структуры таблиц в базах
[таблицы] - бэкапить только указанные таблицы

mysqldump -u -p dbname > /path/to/file.sql - резервная копия
mysqldump -u root -p -f mydatabase > /home/myname/mydatabasedump.sql - бэкап

Восстановление:

mysql -u username -p dbname < /path/to/file.sql - восстановление
mysql -u root -p -f mydatabase < /home/myname/mydatabasedump.sql - восстановление

Как подготовить к работе mysql после установки? (debian, centos)

Можно воспользоваться скриптом:  
mysql_secure_installation

Подключение к бд:

mysql -uUSERNAME -pPASSWORD DBNAME - подключение к базе DBNAME используя логин:USERNAME и пароль:PASSWORD

mysql -uroot -p - подключаемся для управления mysql

Выбор базы данных:

USE db_name; - выбрать базу для работы

Перемещение по выбранной базе:

SHOW databases; - вывести список баз данных, к которым пользователь имеет доступ

SHOW tables; - вывести список таблиц, для текущей выбранной базы

DESCRIBE name_table; - посмотреть поля таблицы

!!! Для извлечения данных из таблицы служит оператор SELECT
Он извлекает данные из базы, выбирая строки, которые отвечают заданному критерию поиска. 
Оператор SELECT сопровождает немалое количество опций и вариантов использования.
Символ * означает, что необходимы все поля.

SELECT * FROM books;
SELECT * FROM tables_name; - показать содержимое таблицы tables_name;

Для получения доступа только к некоторому полю следует указать его имя в инструкции SELECT.
SELECT name_colum FROM tables_name; - вывести конкретный столбец из таблицы

Сортировать можно и по нескольким столбцам. 
SELECT author, title, price FROM books;
SELECT name_colum,name_colum2 FROM tables_name; - вывести конкретные столбцы из таблицы

Также можно ограничить вывод с помощью LIMIT
SELECT * FROM tables_name limit 5; - показать содержимое таблицы tables_name и ограничить пятью стоками;
SELECT * FROM users LIMIT 5 OFFSET 5; - посмотреть данные в таблице


Чтобы получить доступ к подмножеству строк в таблице, следует указать критерий выбора, который устанавливает конструкция WHERE:
% Соответствует любому количеству символов, даже нулевых
_ Соответствует ровно одному символу
Например, чтобы выбрать имеющиеся в наличии недорогие книги о PHP, надо составить запрос:
SELECT * FROM books WHERE
	price < 200 AND title LIKE '%PHP%' AND quantity != 0;

Для того, чтобы строки, извлеченные по запросу, перечислялись в определенном порядке, используется конструкция ORDER BY: 
По умолчанию порядок сортировки идет по возрастанию. 
Например:
SELECT * FROM books ORDER BY price;

Изменить порядок сортировки на обратный можно с помощью ключевого слова DESC:
SELECT * FROM books ORDER BY price DESC;

Вместо названий столбцов можно использовать их порядковые номера:
SELECT * FROM books ORDER BY 4, 2, 3;

Примеры создания базы данных:

Создание новой базы данных MySQL осуществляется при помощи SQL-команды CREATE DATABASE:
CREATE DATABASE IF NOT EXISTS `base` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_bin


CREATE DATABASE db_name; - создать базу

CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci; - создать базу + установить кодировку и т.д.

Пример создания таблицы:

Создание новой таблицы осуществляется при помощи SQL-команды CREATE TABLE

CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),species VARCHAR(20), sex CHAR(1), birth DATE, death DATE); - Создать таблицу


Например, таблица books для книжного магазина будет содержать пять полей: 
ISBN, автор, название, цена и количество экземпляров:
CREATE TABLE books (ISBN CHAR(13) NOT NULL,
                    PRIMARY KEY (ISBN),
                    author VARCHAR(30),
                    title VARCHAR(60),
                    price FLOAT(4,2),
                    quantity TINYINT UNSIGNED);

Чтобы избежать сообщения об ошибке, если таблица уже есть необходимо изменить первую строчку, добавив фразу "IF NOT EXISTS":
CREATE TABLE IF NOT EXISTS books ...

Для создания авто обновляемого поля с текущей датой типа TIMESTAMP или DATETIME используйте следующую конструкцию:
CREATE TABLE t1 (
ts TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
dt DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

Добавление данных в эту таблицу осуществляется при помощи SQL-команды INSERT:

Например:
INSERT INTO books ( ISBN, author, title, price, quantity )
           VALUES ('5-8459-0184-7', 'Зандстра Мэт',
                   'Освой самостоятельно PHP4 за 24 часа', '129', '5');

Копирование таблиц:

INSERT INTO comercial_tests (id, place_id, keywords) SELECT id, place_id, keywords FROM commercials; - Скопировать данные из одной таблицы в другую

Права доступа и привилегии пользователя:

!!! после изменения \ добавления пользователя не забываем выполнить FLUSH PRIVILEGES;

ALL PRIVILEGES – предоставляет полный доступ к выбранной БД
CREATE – разрешает пользователям создавать новые БД
SELECT – разрешает делать выборку данных
INSERT – позволяет вносить новые записи в таблицы
UPDATE – разрешает менять ранее созданные записи в таблицах
DELETE – разрешает удалять записи из таблиц
DROP – дает возможность удалять записи в БД
GRANT OPTION – позволяет пользователю предоставлять или отзывать права других пользователей

Вот пример синтаксиса, в котором только три типа привилегий предоставляются пользователю:
GRANT SELECT, INSERT, DELETE ON database.* TO 'user'@'localhost';

Если нужно указать несколько прав, то их необходимо прописать через запятую:
GRANT [права], [права] ON *.* TO ‘user’@'localhost’;

Если нужно удалить права у выбранного пользователя:
REVOKE [права] ON [наименование БД].[ наименование таблицы] FROM ‘username’@'localhost’;

Забрать все права:
REVOKE ALL PRIVILEGES ON *.* FROM ‘user @'localhost’;

Полностью удалить пользователя можно командой:
DROP USER ‘user @'localhost’;

Изменить IP для пользователя:
rename user user_name@'10.0.0.100' to user_name@'10.0.0.200';

Создание пользователя:


CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'password123'; - создать нового пользователя 
GRANT ALL PRIVILEGES ON db_name.* TO 'user_name'@'localhost'; - дать права\доступ пользователю  к соответствующей базе
flush privileges; -  перезагрузить таблицы назначения привилегий

Создание пользователя, не полные права:

CREATE USER 'USER_NAME'@'localhost' IDENTIFIED BY 'SUPER_MEGA_PASSWORD';
GRANT SELECT ON DBNAME.TABLE_NAME_1 TO 'USER_NAME'@'localhost';
GRANT SELECT ON DBNAME.TABLE_NAME_2 TO 'USER_NAME'@'localhost';
flush privileges;

Смена пароля пользователя в MySQL

Версия mysql 5.7.6 и более современная:
ALTER USER 'имя пользователя'@'localhost' IDENTIFIED BY 'New_Password';
FLUSH PRIVILEGES;

Версия 5.7.5 и древнее:
SET PASSWORD FOR 'имя пользователя'@'localhost' = PASSWORD('New_Password');
FLUSH PRIVILEGES;

Посмотреть \ Показать права доступа пользователя в MySQL:

Для того чтобы посмотреть, какие права доступа выданы пользователю MySQL, достаточно в консоли прописать команду:

SHOW GRANTS FOR 'user'@'localhost';

Посмотреть пользователей mysql можно вот так;

use mysql;
select user,password,host from user;

select * from user order by host desc;

Как запретить пользователю все операции с базой данных?

Revoke ALL PRIVILEGES on *.* from usernameS@hostname;

Как изменить забытый MySQL административный пароль?

1. перезапустить mysqld с опцией --skip-grant-tables
2. mysqladmin -h хост -u пользователь password 'новый пароль'

Очистка базы данных без удаления базы:

 
mysqldump -uuser -ppassword --add-drop-table --no-data databasename | grep ^DROP | mysql -uuser -ppassword databasename - очистка базы данных без удаления базы данных, будут удалены все таблицы.

Удалить базу:

DROP DATABASE dbname; - Удалить базу данных

Как выполнить поиск по регулярному выражению?

Вот например так
mysql> select rec_id from rec where rec_id regexp "^1[0]+$" limit 10;
+--------+
| rec_id |
+--------+
| 10     |
| 100    |
| 1000   |
+--------+
Данный запрос выведет все записи в которых ключевое поле это степень десяти. 
Обратите внимание на то что регулярное выражение не имеет ограничителей !

Запуск произвольной команды из сеанса MySQL под Linux:

 
Заливаем дамп базы из файла в базу, не выходя из сеанса MySQL:
mysql> \! mysql –uUSERNAME –pPASSWORD DATABASE < DATABSE.sql

Выводим список процессов Linux:
mysql> \! top

Оценим объем логических разделов жесткого диска:
mysql> \! df -h

Tools:

Подключение:
mysql -uUSERNAME -pPASSWORD DBNAME - подключение к базе DBNAME используя логин:USERNAME и пароль:PASSWORD
mysql -uroot -p - логинемся для управления mysql

USE db_name; - Выбрать базу для работы

SHOW databases; - Вывести список баз данных, к которым пользователь имеет доступ:

DROP DATABASE dbname; - Удалить базу данных

SHOW tables; - Вывести список таблиц, для текущей выбранной базы:

CREATE DATABASE db_name; - создать базу

CREATE DATABASE db_name CHARACTER SET utf8 COLLATE utf8_general_ci; - создать базу + установить кодировку и тд

CREATE USER 'user_name'@'localhost' IDENTIFIED BY 'password123'; - создать нового пользователя 
GRANT ALL PRIVILEGES ON db_name.* TO 'user_name'@'localhost'; - дать права\доступ пользователю  к соответствующей базе
flush privileges; -  перезагрузить таблицы назначения привилегий

rename user user_name@'10.0.0.100' to user_name@'10.0.0.200'; - Изменить IP для пользователя user_name@'10.0.0.100'

 
ALTER USER 'имя пользователя'@'localhost' IDENTIFIED BY 'New_Password'; - Смена пароля пользователя 
FLUSH PRIVILEGES; - Применить привилегии


INSERT INTO comercial_tests (id, place_id, keywords) SELECT id, place_id, keywords FROM commercials; - Скопировать данные из одной таблицы в другую

DESCRIBE pet; - Посмотреть поля таблицы

SELECT * FROM users LIMIT 5 OFFSET 5; - Посмотреть данные в таблице

CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),species VARCHAR(20), sex CHAR(1), birth DATE, death DATE); - Создать таблицу

Пользователи и привилегии:
use mysql;
select * form user; - показать все из таблицы user
select user,host from user; - показать всех пользователей из таблицы user
select user,host from user where user like 'admin'; - показать всех пользователей с именем admin
show grants;  - показать привилегии текущего пользователя
show grants for 'user'@'localhost' - показать все привилегии пользователя



show open tables; - показать открытые таблицы
show plugins; - показать используемые плагины 

SHOW MASTER STATUS

show master status; - показать состояние мастера и репликации
Рубрики
cms

wordpress / https to http / nginx to apache / error This request has been blocked the content must be served over HTTPS

Костыль для wordpress

1.nano корень_где_лежит_файл/wp-config.php
В начало файла после 

		
Рубрики
css

Конспект: основы CSS

ссылка

https://htmlacademy.ru/
https://htmlacademy.ru/courses/307/run/16

Конспект: основы CSS

CSS-правила
CSS — это язык для оформления структурированных документов, например, HTML- документов. 
Синтаксис — это плоский список CSS-правил. 
CSS-правило состоит из селектора и перечня свойств и их значений:

селектор {
  свойство: значение;
  свойство: значение;
}


Для комментариев в CSS используются символы /* и */.



Селекторы
Селектор находится в начале CSS-правила, до фигурных скобок, и определяет, к каким HTML-элементам применятся свойства и значения из правила.

.feature-kitten {
  padding-top: 60px;
}

Простейшие (и самые популярные) селекторы — это селекторы по тегам и по классам. 
Селекторы по тегам содержат имя тега без символов < и > и применяются ко всем подходящим тегам. 
Селекторы по классам начинаются с точки, за которой идёт имя класса, и применяются ко всем тегам с подходящим атрибутом class.

h1 { color: red; }
.info { color: blue; }

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

Если у CSS-правил отличаются только селекторы, а свойства и значения одинаковые, то их можно сгруппировать через запятую.

Также можно комбинировать любые типы селекторов через пробел. 
Такие селекторы называются вложенными или контекстными и читаются справа налево. 

Например:
nav a {…}
  .menu ul {…}
  .post .title {…}



Свойства и значения
Список свойств и значений находится внутри фигурных скобок CSS-правила. 
Свойство определяет, какую характеристику внешнего вида мы хотим изменить, а значение — как именно.

.feature-kitten {
  padding-top: 60px;
}

Каждый раз, когда мы добавляем новое свойство или изменяем его значение, мы меняем что-то на странице.



Наследование
Наследование в CSS — это механизм, с помощью которого значения свойств элемента-родителя передаются его элементам-потомкам. 
Стили, присвоенные одному элементу, наследуются всеми потомками (вложенными элементами), но только в том случае, если они где-то явно не переопределены.



Составные свойства
В CSS есть обычные свойства, управляющие одним параметром отображения, и есть составные свойства, управляющие одновременно несколькими параметрами. 
Например, свойство font.
 Оно задаёт сразу шесть параметров: размер и название шрифта, высоту строки и некоторые другие.


font: 16px/26px "Arial", sans-serif;
Если значение обычного свойства не было задано в составном, то браузер при «расшифровке» использует исходное значение этого свойства.



Типы значений: абсолютные и относительные
Абсолютные единицы измерения привязаны к настоящим физическим размерам и связаны между собой жёсткими пропорциями. 
Пиксели, px, используют чаще всего, остальные абсолютные единицы почти не применяют. 

Примеры абсолютных единиц измерения:
font-size: 1cm;
font-size: 10mm;
font-size: 38px;


Относительные единицы измерения описывают значения, которые зависят от других значений. 
Например, ширина элемента в процентах зависит от ширины родительского элемента, а ширина элемента в em зависит от размера шрифта самого элемента. 
К относительным единицам относятся em, rem, vh, vw и некоторые другие, ну и, конечно же, проценты.



Стили по умолчанию
Некоторым элементам можно не задавать никаких стилей, но у них всё равно будет какое-то оформление. 
Например, у списка 
    есть отступы и маркеры. Такие стили называются стилями по умолчанию и задаются внутри браузерных стилей изначально. Их можно переопределить или сбросить, задав другие значения свойств элементу. Каскадирование Когда браузер отрисовывает страницу, он должен определить итоговый вид каждого HTML-элемента. Для этого он собирает все CSS-правила, которые относятся к каждому элементу, ведь на элемент могут влиять сразу несколько CSS-правил. Механизм комбинирования стилей из разных источников в итоговый набор свойств и значений для каждого тега называется каскадностью. Например, есть такой элемент в разметке:

    Зелёный - мой любимый цвет

    Заданные стили: .beloved-color { color: green; } Браузерные стили: margin: 1em 0; Итоговые стили: color: green; margin: 1em 0; Конфликт свойств На один элемент могут действовать несколько CSS-правил. Если в этих правилах есть одинаковые свойства с разными значениями, то возникает конфликт. Например: ul { list-style: disc; } .blog-navigation ul { list-style: none; } Браузеру нужно как-то решать, какими будут итоговые значения конфликтующих свойств. Конфликт разрешается максимум за три шага. Если на текущем шаге определиться не удалось, то выполняется следующий шаг. Вот эти шаги: Сравниваются приоритеты стилевых файлов, в которых находятся конфликтующие свойства. Например, авторские (то есть наши) стили приоритетнее браузерных. Сравнивается специфичность селекторов у CSS-правил с конфликтующими свойствами. Например, селектор по классу более специфичен, чем селектор по тегу. Побеждает то свойство, которое находится ниже в коде. Каскад работает и внутри CSS-правил. Встраивание и подключение внешних стилей Внешние стили подключаются через тег Встраивание стилей в тег Такой способ используется для оптимизации загрузки страницы, ведь в таком случае браузер не будет отправлять дополнительных запросов на сервер. Встраивание в атрибут style:
    Свойства и значения, прописанные таким образом, применятся точечно к одному элементу. Обычно использование этого способа считается плохой практикой. Но иногда в виде исключения бывает удобнее воспользоваться встраиванием стилей в атрибут style, чем писать отдельные CSS-правила. Например, когда нужно управлять стилями именно из разметки, и создавать отдельные классы при этом будет излишне. Так бывает, когда какие-то стилевые параметры устанавливаются с помощью сторонних программ или другими людьми, например, через CMS.
Рубрики
css

Конспект: Наследование и каскадирование

Ссылки

https://htmlacademy.ru/

Иерархическое дерево


HTML-документ представляет собой иерархическое дерево. 
Это означает, что у каждого элемента (кроме корневого) есть только один родитель, то есть элемент, 
внутри которого он располагается. 
У корневого раздела родитель отсутствует. 

Рассмотрим простейшую страницу:


   
   
      

Текст документа

Выделенная строка

В данном примере видно, что у элемента span родителем является p.text, а у p.text родитель — body. Иерархическая структура документа определяет основы концепции наследования.

Наследование

Наследование в CSS — механизм, с помощью которого значения свойств элемента-родителя передаются его элементам-потомкам.
Стили, присвоенные некоторому элементу, наследуются всеми потомками (вложенными элементами), если они не переопределены явно. 
Например, размер шрифта и его цвет достаточно применить к body, чтобы все элементы внутри имели те же свойства.
Наследование позволяет сократить размер таблицы стилей, но если стилей много, 
то отследить какой родительский элемент установил некоторое свойство, становится сложнее.



  
    Наследование
    
    
    
  
  
    

Заголовок

  • Пункт списка
  • Пункт списка
  • Пункт списка

Текст первого параграфа.

Текст второго параграфа.

body { font-family: "PT Sans", sans-serif; color: #2980b9; font-size: 12px; } li { color: #1abc9c; }

Наследование «на пальцах»

Рассмотрим пример:

Строка c выделенным словом

Представим, что нам нужно установить красный цвет текста для всего текста. Зададим CSS-свойства следующим образом: .text { color: red; } Благодаря наследованию цвет текста в теге span автоматически станет красным: Нам пришлось бы отдельно прописывать цвет текста для тега span. И тогда установка таких простых свойств как стиль шрифта стала бы большой проблемой: нужно было бы задавать свойства для всех возможных вложенных тегов.

Ещё немного про наследование

Наверняка вы обращали внимание, что не все свойства наследуются тегами-потомками от их родителей.
Действительно, было бы странно, если бы свойство border автоматически устанавливалось для всех вложенных элементов.

Например, для этого куска кода:

Cтрока c выделенным словом

Установим CSS-свойство: .bordered { border: 1px solid green; } На самом деле граница будет нарисована только у тега p.

Наследуемые свойства

К наследуемым свойствам относятся в первую очередь свойства, определяющие параметры отображения текста:
font-size, font-family, font-style, font-weight, color, text-align, text-transform, text-indent, line-height, letter-spacing, word-spacing, white-space, direction и т. д.
Также к наследуемым свойствам относятся list-style, cursor, visibility, border-collapse и некоторые другие. Но они используются значительно реже.

Весь список наследуемых свойств смотрите в стандарте CSS.
https://www.w3.org/TR/CSS21/propidx.html 
Значение yes в колонке Inherited?.
Эти свойства можно и нужно задавать через предков, следуя семантике документа.

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

Не наследуемые свойства

В предыдущем задании мы перечислили основные наследуемые свойства. 
Все остальные относятся к не наследуемым. 
Это параметры позиционирования, размеров, отступов, фона, рамок и т. д.

А именно: 
background, border, padding, margin, width, height, position и др.

Весь список не наследуемых свойств смотрите в стандарте CSS. 
https://www.w3.org/TR/CSS21/propidx.html
Значение no в колонке Inherited?.

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

Принудительное наследование

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

Запись выглядит следующим образом:
p {
  background: inherit;
}

В данном случае у тегов p свойство background будет таким же, как и у их родительских тегов.




  
    Принудительное наследование
    
    
    
  
  
    

Первый список

  • Первый элемент списка
  • Второй элемент списка
  • Третий элемент списка

Второй список

  • Первый элемент списка
  • Второй элемент списка
  • Третий элемент списка
body { font-family: "PT Sans", sans-serif; } ul { margin: 5px; padding: 5px; border: 1px solid #666666; list-style: none; } .second-list li { border: inherit; margin: inherit; padding: inherit; }

Каскадирование

CSS расшифровывается как «Cascading Style Sheets» или «каскадные таблицы стилей».
Каскадность обозначает, что к одному и тому же элементу может применяться несколько CSS-правил (наборов CSS-свойств). 
Среди этих свойств могут быть и конфликтующие между собой.
Поэтому существуют инструкции, которые определяют, каким будет финальный набор свойств элемента.

Например, для элемента:

CSS-правила существуют как минимум в трёх разных местах: в подключаемом файле style.css для селекторов p или .text; в атрибуте style; в стандартных стилях отображения, встроенных в браузер. Каскадирование как раз и определяет, какие именно свойства из этих источников применятся к данному абзацу. Имеется три основные концепции, управляющие порядком, в котором применяются CSS-свойства: важность; специфичность; порядок исходного кода. Самыми важными для нас являются последние две и подробнее о них мы поговорим отдельно.

Битва за курочку


Вот HTML-код, в котором есть абзац с двумя классами:

Синий или красный?

А вот CSS-код c двумя правилами для этих классов: .blue { color: blue; } .red { color: red; } Вопрос: какого цвета будет текст абзаца? Какое из CSS-правил приоритетнее? Ответ: красного цвета, второе правило приоритетнее. Это происходит потому, что селекторы у правил одинакового типа, и соответственно обладают одинаковой специфичностью. В таком случае более высоким приоритетом обладает то правило, которое расположено в CSS-коде ниже. В нашем случае это правило для класса red.

Битва за курочку. Раунд второй

Чуть более сложный пример. 
Тот же HTML:

Синий или красный?

Немного другой CSS: p.blue { color: blue; } .red { color: red; } В этом случае текст абзаца будет синим. Происходит это потому, что селектор p.blue более специфичный, чем селектор .red. Простое объяснение специфичности звучит так: Чем меньшее количество элементов потенциально может выбрать селектор, тем он специфичнее. В нашем примере селектор .red выберет все теги с нужным классом, а селектор p.blue выберет только абзацы с нужным классом.

Битва за курочку. Борьба накаляется

Как вы уже знаете, существуют селекторы не только по классам, но и по id. 
Они начинаются с решётки #.

HTML:

Синий или красный?

CSS: #experiment-1 .blue { color: blue; } .experiment .red { color: red; } Особенность атрибута id заключается в том, что его значение должно быть уникальным в пределах страницы. То есть, может существовать только один тег с определённым значением id. Получается, что селектор по id может выбрать только один элемент. И поэтому он на порядок специфичнее селекторов по тегам, классам, а также комбинаций этих селекторов. Синий победит.

Битва за курочку. Запрещённый приём

CSS-правила, которые прописаны в style обладают наивысшим приоритетом. 
Такой способ задания стилей не приветствуется в профессиональной вёрстке сайтов и годится только для создания быстрых прототипов. 
Поэтому мы и назвали этот приём запрещённым.

Однако существует способ переопределить из подключаемых CSS-файлов даже стили, заданные в атрибуте style. 
Для этого нужно использовать ключевое слово !important. 
Оно задаёт CSS-свойству усиленный приоритет. 

Вот пример:
HTML:

Синий или красный?

CSS: .blue { color: blue !important; } Цвет текста в этом примере будет синим.
Рубрики
html

Конспект: селекторы

Ссылки

https://htmlacademy.ru/

Нелёгкая жизнь без селекторов

Селекторы позволяют очень точно указывать к каким элементам применять CSS-свойства. 
Селекторы — это наш снайперский прицел.

Но для начала представим, что механизма селекторов не существует. 
Как в этом случае задавать CSS-свойства элементам? 
С помощью атрибута style. 


Например:

...

  • 1
  • 2
  • 3
  • 4
  • 5

Селекторы по тегам

Задавать атрибут style для каждого тега неудобно и долго. 
Особенно, если тот же результат можно получить с помощью единственного CSS-правила, в котором используется селектор для тега li.
С помощью селекторов по именам тегов можно задать стили для всех элементов списка, изображений, абзацев и так далее. 
Эти селекторы содержат имя тега без символов < и >. 

Например:
li {
  /* стили для элементов списка */
}

Одно правило может относиться сразу к нескольким селекторам, в таком случае селекторы перечисляются через запятую:

a, img {
  /* стили для ссылок и изображений */
}

li { 
  
  background-color: white; 
  
  }

Селекторы по классам

Класс — это один из атрибутов тегов. 

Выглядит он вот так:

  • Этот атрибут особенный, так как в CSS существует возможность выбирать элементы по классу. Делается это с помощью такого селектора: .имя_класса. Например: .first { /* стили для класса first */ } Имена классов могут состоять из латинских символов, цифр и знаков - и _. Имя класса должно начинаться с латинской буквы.

    Отрабатываем селекторы по классам

    Синтаксис CSS позволяет выбирать элементы не только по одному классу или тегу. 
    Можно, например, выбрать элемент одновременно по тегу и по классу или же элемент с двумя классами сразу. 
    Для этого селектор составляется просто одной строкой из всех желаемых «частей» без пробелов. 
    Давайте рассмотрим примеры.
    
    
    В селекторе по тегу и классу первым пишется название тега, а потом идёт класс:
    /* выбор всех тегов ul с классом target */
    ul.target {...}
    
    
      Если у элемента задано несколько классов, в HTML и в CSS-селекторе они могут идти в разном порядке — это не будет влиять на выборку элементов: /* выбор элементов с двумя классами: text и green */ .text.green {...}

      Количество классов в селекторе может быть любым: /* выбор тегов span с четырьмя классами: underlined, red, big и text */ span.underlined.red.big.text {...}

      Контекстные селекторы

      Селектор может состоять из нескольких частей, разделённых пробелом, например:
      
      p strong { ... }
      ul .hit { ... }
      .footer .menu a { ... }
      
      Такие селекторы называют контекстными или вложенными. 
      Их используют для того, чтобы применить стили к элементу, только если он вложен в нужный элемент.
      Например, селектор .menu a сработает для ссылки a только в том случае, если она расположена внутри элемента с классом .menu.
      
      Читать их проще всего справа налево:
      /* выбрать все теги strong внутри тегов p */
      p strong { ... }
      
      /* выбрать все элементы с классом .hit внутри тегов ul */
      ul .hit { ... }
      
      /* выбрать все ссылки внутри элементов с классом .menu,
         которые лежат внутри элементов с классом .footer */
      .footer .menu a { ... }
      
      Таким образом, можно задавать элементам различные стили в зависимости от их контекста. 
      Если ссылка расположена внутри меню, сделать её крупнее, а если внутри основного текста, то задать ей нужный цвет.
      
      

      Соседние селекторы

      Контекстные селекторы используются для вложенных друг в друга элементов, а соседние — для расположенных рядом.
      Например, теги 
    • в списке являются соседними по отношению друг к другу и вложенными в тег
        . Соседние селекторы записываются с помощью знака +, например, селектор1 + селектор2. Стили применятся к элементу, подходящему под селектор2, только если сразу перед ним расположен элемент, подходящий под селектор1. Пример. Есть два элемента списка:
        Селектор .hit + .miss применит стили к элементу с классом miss, так как перед ним есть элемент с классом hit. Селектор .hit + li, а также селектор li + .miss, или даже li + li тоже применит стили к элементу с классом miss, то есть ко второму элементу списка. А вот селектор .miss + .hit не сработает, так как элемент с классом miss находится после элемента с классом hit в разметке. .first + li + li { background-color: white; }
    • Контекстные и соседние селекторы

      Селекторы в CSS можно очень гибко комбинировать. 
      В частности, можно комбинировать контекстные и соседние селекторы.
      Например, селектор .player-1 .hit + .miss сработает для тега с классом miss, если сразу перед ним расположен тег с классом hit и оба тега расположены внутри тега с классом player-1.
      
      
      li {
        background-color: white;
        }
        
        .third + li {
          background-color: red;
          }
          
      .first + li  {
        background-color: red;
        }   
        
      .shooter-2 .third + li  {
        background-color: yellow;
        }   
      

      Дочерние селекторы

      Потомком называются любые элементы, расположенные внутри родительского элемента. 
      А дочерними элементами называются ближайшие потомки. 
      
      Взгляните на пример:
      
      
      • ...
      • ...
      По отношению к списку
        элементы
      • являются дочерними элементами и потомками, а — потомки, но не дочерние элементы. Контекстные селекторы влияют на всех потомков, что не всегда удобно. Иногда необходимо задать стили только для дочерних элементов. Особенно это полезно при работе с многоуровневыми списками. Для этого существует дочерний селектор, в котором используется символ >. Например: ul > li или ul > li > span. .places li { border-bottom: 2px solid #cccccc; } .places span { font-weight: bold; } .places ul > li { border-bottom: none; } .places ul > li > span { border-bottom: none; font-weight: normal; }

      Псевдоклассы

      Псевдоклассы — это дополнения к обычным селекторам, которые делают их ещё точнее и мощнее. 
      Обычный селектор — это снайперский прицел, а с псевдоклассом он становится прибором ночного видения.
      
      Псевдокласс добавляется к селектору c помощью символа :  , вот так селектор:псевдокласс. 
      
      
      Например:
      
      a:visited { ... }
      li:last-child { ... }
      .alert:hover { ... }
      
      Знакомство с псевдоклассами мы начнём с first-child и last-child.
      
      Псевдокласс first-child позволяет выбрать первый дочерний элемент родителя, а last-child — последний дочерний элемент. 
      
      
      Например:
      li:last-child { ... }
      Этот селектор выберет последний элемент списка.
      
      li {
        background-color: white;
          }
          
      li:first-child {
        background-color: red;
        }    
        
      li:last-child {
        background-color: yellow;
        }  
        
      
      
      

      Псевдокласс :nth-child

      Псевдоклассы из предыдущего примера относятся к семейству псевдоклассов, помогающих выбирать элементы по их расположению.
      С помощью псевдокласса nth-child можно выбирать теги по порядковому номеру, не используя классы. 
      Синтаксис псевдокласса: селектор:nth-child(выражение). 
      Выражением может быть число или формула. 
      
      Например:
      
      1. li:nth-child(2) { ... }
      2. li:nth-child(4) { ... }
      3. li:nth-child(2n) { ... }
      
      Первый селектор выберет второй элемент списка, второй селектор — четвёртый элемент списка, третий селектор — все чётные элементы. 
      
      li {
        background-color: white;
        }
        
      li:nth-child(3) {
        background-color: red;
        
        }  
        
        li:nth-child(4) {
        background-color: red;
        
        }  
      

      :nth-child и контекстные селекторы

      Селекторы с псевдоклассами хорошо сочетаются с контекстными селекторами.
      Например, следующий селектор выберет третий тег 
    • внутри блока с классом shooter-2. .shooter-2 li:nth-child(3) { ... } Селектор не обязательно должен заканчивается псевдоклассом. Например, следующий селектор выберет элемент с классом .text в четвёртом элементе списка
    • . li:nth-child(4) .text { ... } li { background-color: white; } .shooter-1 li:nth-child(2) { background-color: red; } .shooter-1 li:nth-child(5) { background-color: red; } .shooter-2 li:nth-child(1) { background-color: red; }
    • Псевдокласс :hover

      Некоторые псевдоклассы позволяют выбирать элементы, с которыми взаимодействует пользователь. 
      Сначала познакомимся с псевдоклассом :hover.
      
      Этот псевдокласс позволяет выбрать элемент, когда на него наведён курсор мыши и кнопка мыши не нажата. 
      
      Примеры:
      1. a:hover { ... }
      2. tr:hover { ... }
      3 .menu-item:hover { ... }
      
      Первый селектор выбирает ссылку, второй строку таблицы, третий элемент с классом menu-item, но только в том случае, если на них наведён курсор мыши.
      Благодаря этому псевдоклассу можно добавлять в интерфейс динамику и интерактивность, так как элементы начинают реагировать на действия пользователя, изменяя свой внешний вид.
      
      table {
        background: rgba(255, 255, 255, 0.95);
      }
      
      tr:hover {
        background-color: #fcf8e3;
      }
      
      strong:hover {
        color: #0088cc;
      }
      

      Динамические эффекты с помощью :hover

      Интересовались ли вы, как с помощью CSS создаются выпадающие меню?
      Львиная доля динамических эффектов, создаваемых с помощью CSS, опираются на несколько псевдоклассов, главный из которых, конечно же, :hover. 
      Весь секрет заключается в сочетании контекстных селекторов и псевдоклассов. 
      
      Посмотрите на пример:
      
      li.top ul.submenu {
        display: none;
      }
      
      li.top:hover ul.submenu {
        display: block;
      }
      
      
      Первое правило прячет список-подменю. 
      Второе правило гласит: «если на верхний пункт меню, в котором находится подменю, наведут курсор, то надо показать подменю». 
      Вот так всё просто.
      
      Общий принцип такой: родительский элемент реагирует на наведение мыши и изменяет свойства элементов-потомков. 
      То есть всё работает на контекстных селекторах вида селектор1:hover селектор2.
      
      
      em {
        display: none;
      }
      
      :hover > em {
        display: inline;
        color:red;
        }
        
      strong:hover {
        color: #0088cc;
        }  
      

      Псевдоклассы :link, :visited и :active

      Отвлечёмся от биатлона и познакомимся с псевдоклассами для ссылок.
      
      :link выбирает ещё не посещённые ссылки.
      :visited выбирает посещённые ссылки.
      :active выбирает активные ссылки (кнопка мыши зажата на ссылке).
      
      Пример задания CSS-правил для ссылок:
      a:link { ... }
      a:visited { ... }
      a:hover { ... }
      a:active { ... }
      
      Обратите внимание на порядок правил. 
      Если их расположить по-другому, то некоторые могут не сработать.
      
      a:link {
        color: black;
        }
        
      a:visited {
        color: #cccccc;
        } 
        
      a:active {
        color: green;
        }  
      

      Псевдокласс :focus

      Псевдокласс :focus позволяет выбрать элемент, который в данный момент в фокусе. 
      Например, текстовое поле, в которое установлен курсор, находится в фокусе.
      В фокусе могут быть не только текстовые поля. 
      Если вы переключаетесь между элементами веб-страницы с помощью клавиши tab, то в фокус будут попадать ссылки.
      
      Пример использования псевдокласса:
      
      input:focus {
        /* стили для поля в фокусе */
      }
      
      
      
      
        
          
          Псевдокласс :focus
          
          
        
        
          
        
      
      
      form input:focus {
        border-color: #0088cc;
      }
      
      
      
      

      Селекторы атрибутов

      Существуют селекторы, которые позволяют выбирать элементы по любым атрибутам.
      Чаще всего такие селекторы используются при работе с формами, так как поля форм имеют атрибут type с разными значениями.
      Селекторы атрибутов записываются с использованием квадратных скобок: элемент[атрибут]. 
      
      Примеры селекторов:
      
      1. input[checked] { ... }
      2. input[type="text"] { ... }
      
      Первый селектор выберет поля формы, у которых есть атрибут checked, 
      второй селектор выберет поля формы, у которых атрибут type имеет значение text.
      
      input[required] {
        background-color: #fcf8e3;
        }
      
      input[name="password"] {
        background-color: #f2dede;
        }
        
      input[type="submit"] {
        border-color: green;
        }  
      
      
      

      Селектор по id

      Существует ещё один HTML-атрибут, для которого существует специальный селектор. 
      Этот атрибут id (идентификатор), а селектор записывается с помощью символа #, например, #some-id.
      На значение id распространяются те же ограничения, что и на имя класса. 
      Также id должен быть уникальным на странице.
      
      Пример:
      
      HTML

      Приветствие!

      CSS#greeting { ... } Использование селекторов по id при оформлении считается плохой практикой. Существуют редкие исключения из этого правила, например, при оживлении слайдера на чистом CSS.

      итог

      
      
        
          
          Испытание: интерактивное расследование
          
          
        
        
          

      Результаты соревнования

      Игрок Раунд 1 Раунд 2 Раунд 3 Итог
      Иван Васильев 10 -20 30 20
      Анна Иванова 50 10 -30 30
      Василий Ольгин 50 50 50 150
      Ольга Аннова -10 -20 40 10
      h1 { font-size: 20px; } h1 + .results { margin-top: 20px; } th { font-weight: normal; background-color: #dad7f4; text-align: left; } td:nth-child(5) > span { font-weight: bold; } .disqualified { text-decoration: line-through; } .player-1 .total { background-color: silver; } .player-2 .total { background-color: gold; } .player-3 .total { background-color: red; } .player-4 .total { background-color: chocolate; }
      Рубрики
      html

      Конспект: Формы

      Ссылки

      https://htmlacademy.ru/
      

      Первая форма

      Формы нужны для того, чтобы отправлять данные с веб-страницы на веб-сервер, который сможет эти данные обработать: 
      зарегистрировать пользователя, 
      создать сообщение на форуме, 
      отправить письмо 
      и так далее. 
      В общем, формы в вебе просто необходимы.
      
      Чтобы создать форму, нужно использовать парный тег 
      , внутри которого размещаются поля формы. У тега есть два важных атрибута: action задаёт адрес, URL, отправки формы; method задаёт метод отправки формы. Пример: поля формы
      Для отправки формы обычно используют методы get или post. Если не указать атрибут method, то будет использован get. Метод get посылает данные формы в строке запроса, то есть они видны в адресной строке браузера и следуют после знака вопроса. Например: https://www.google.com/search?q=htmlacademy Метод get лучше использовать в поисковых формах, потому что он позволяет получить ссылку на результаты поиска и передать её кому-то. Метод post посылает данные в теле HTTP-запроса и используется, когда нужно отправить много данных и ссылка на результат обработки этих данных не нужна. Например, при редактировании личного профиля.

      Текстовое поле ввода

      Большинство полей форм создаётся с помощью одиночного тега . 
      
      У этого тега два обязательных атрибута:
      type задаёт тип поля;
      name задаёт имя поля.
      
      Тип поля влияет на то, как оно будет отображаться и вести себя. 
      Самый распространённый тип — это text, который обозначает текстовое поле. 
      Он же используется по умолчанию. 
      
      Пример:
      
      Имя поля нужно, чтобы правильно обработать данные на сервере. Обычно, имя поля должно быть уникальным в пределах формы, хотя есть исключения. Для задания имени поля используют латинские буквы и цифры.

      Идентификатор и значение по умолчанию

      Атрибут id поля ввода обозначает идентификатор. 
      Он должен быть уникальным не только в пределах формы, но и на всей странице.
      Обычно идентификаторы используют для повышения удобства работы с формой, например, создают подписи, связанные с мелкими полями. 
      При нажатии на такие подписи активируется связанное поле. 
      И это удобно, так как по большой подписи попасть легче, чем по маленькому полю. 
      Также идентификаторы используют в JavaScript для работы с полями.
      
      Идентификатор в отличие от имени поля не передаётся на сервер. 
      Лучше использовать идентификаторы, отличающиеся от имени поля, 
      особенно актуально это для полей множественного выбора.
      
      Атрибут value задаёт значение поля ввода по умолчанию. 
      Это тоже повышает удобство.
      
      Согласитесь, приятно зайти в огромную анкету на каких-нибудь госуслугах, 
      а там ваши паспортные данные уже подставлены в нужные поля и заполнять их не надо. 
      И всё благодаря тому, что программист добавил к полям атрибут value с нужными данными.
      
      

      Подпись для поля ввода

      Можно подумать, что сделать подпись к полю очень просто. 
      
      Пишем текст рядом с полем и всё готово:
      Подпись 
      
      На самом деле этого недостаточно — мы получили просто кусок текста и поле, 
      которые расположены рядом друг с другом, но логически никак не связаны.
      Есть специальный тег, который позволяет смело сказать: 
      «Этот кусок текста действительно подпись к этому полю!». 
      Это парный тег 

      Связываем подпись и поле по id

      Иногда обернуть поле и текст подписи в тег 

      Поле для ввода пароля

      Мы создаём простую форму входа. 
      Уже есть два поля и связанные с ними подписи. Одно из полей предназначено для ввода пароля, но сейчас оно является простым текстовым полем.
      Чтобы сделать его настоящим полем для ввода пароля, в котором текст будет отображаться «звёздочками», нужно просто изменить значение атрибута type на password.
      
      
      
        
          
          Поле для ввода пароля
          
        
        
          

      Форма входа



      Кнопка отправки формы

      Такая кнопка создаётся с помощью тега  c типом submit.
      Надпись на кнопке можно задать с помощью атрибута value. 
      Для кнопки отправки формы задавать имя необязательно. 
      Но если имя задано, то на сервер будут отправляться имя и значение кнопки.
      Обычно имя для кнопки отправки задают, когда в форме несколько кнопок, отвечающих за разные действия. 
      Браузер отправляет на сервер имя и значение только той из них, на которую нажал пользователь. 
      Таким образом, сервер может понять, какую кнопку нажали и что нужно сделать.
      
      
      
      
      
        
          
          Кнопка отправки формы
          
        
        
          

      Форма входа





      Многострочное поле ввода

      Мы научились создавать простейшие формы с текстовыми полями и кнопками. 
      А теперь познакомимся с более сложными элементами формы.
      Многострочное текстовое поле создаётся с помощью парного тега 
      
      

      Чекбокс или «галочка»

      Поле-галочка — это тег  с типом checkbox.
      Галочка работает по принципу «либо да, либо нет». 
      Если галочка стоит, то браузер посылает переменную с именем поля на сервер, если галочки нет, то не посылается ничего. 
      Таким образом, атрибут value не является обязательным.
      Чтобы галочка стояла по умолчанию, нужно добавить к тегу атрибут checked. 
      
      Вот так:
      
      
      Чекбокс не подразумевает выбор одного элемента из нескольких. 
      Поэтому если в одной форме есть несколько чекбоксов, то имена у них должны быть разными.
      
      

      Переключатель или «радиобаттон»

      Поле-переключатель — это тег  с типом radio.
      Обычно переключатели размещают группами по несколько штук. 
      Причём у переключателей из одной группы должно быть одинаковое имя и разные значения, которые задаются c помощью value.
      Таким образом, атрибут value является для переключателей обязательным. 
      Браузер отправляет на сервер значение value выбранного переключателя.
      В этом задании мы начнём создавать переключатель.
      
      
      

      Группа переключателей

      Теперь добавим ещё один вариант ответа в наш переключатель. 
      Для этого нужно добавить ещё один  с таким же именем, но другим значением value.
      Подобным образом можно создавать группы переключателей с любым количеством вариантов.
      Чтобы сделать какой-либо вариант в переключателе выбранным по умолчанию, нужно добавить к соответствующему тегу  атрибут checked, как у поля-галочки.
      Кстати, имя поля у переключателей одной группы должно быть одинаковым, но идентификаторы всегда должны быть уникальными.
      
      
      

      Раскрывающийся список или «селект»

      Раскрывающийся список так же, как и переключатель, позволяет выбрать один вариант ответа из нескольких.
      Раскрывающийся список создаётся с помощью парного тега . 
      
      Например:
      
      
      В атрибуте value тега 

      «Мультиселект»

      Раскрывающийся список можно превратить в так называемый «мультиселект», то есть список, в котором можно выбрать не один, а несколько вариантов.
      Чтобы сделать это, нужно добавить к тегу .
      Чтобы отметить как выбранные по умолчанию одно или несколько значений, нужно к соответствующим тегам 
              
              
              
              
              
              
            
      
            
          
        
      
      
      

      Поле для загрузки файлов

      Поле для загрузки файлов — это тег  с типом file. 
      Для этого поля обязательным атрибутом является имя.
      Чтобы поле заработало и браузер смог передать выбранный файл на сервер, 
      необходимо добавить форме атрибут enctype со значением multipart/form-data. 
      Не полю, а форме.
      
      Этот атрибут указывает браузеру, в каком виде пересылать данные. 
      Если вы хотите отправить на сервер файл, данные из формы эффективнее всего передавать по частям. 
      За это и отвечает значение multipart/form-data.
      
      Кстати, внешний вид полей с типом file очень сильно отличается в зависимости от операционной системы и очень плохо изменяется с помощью стилей.
      
      
      
      
        
          
          Поле для загрузки файлов
          
        
        
          

      Профиль

      Выберите изображение для своего аватара:

      Скрытое поле

      И ещё одно невидимое и очень полезное поле. 
      Это скрытое поле. 
      Его используют, когда в форме нужно отправить какие-то дополнительные служебные данные, которые не вводятся пользователем.
      Например, это могут быть реквизиты заказа или номер пользователя в форме оплаты.
      
      Скрытое поле — это тег  с типом hidden.
      
      
      
      Рубрики
      html

      Конспект: Таблици

      ссылки

      https://htmlacademy.ru/
      

      Простейшая таблица

      Простейшая таблица описывается с помощью трёх тегов:
       обозначает таблицу.
       расшифровывается как «table row», обозначает строку таблицы.
      , а те, в свою очередь, внутри 
      расшифровывается как «table data», обозначает ячейку внутри строки таблицы. Теги располагаются внутри тегов
      . Почти всё текстовое содержимое таблицы размещается внутри тегов должно быть одинаковое количество добавить по ячейке
      . В простейшей таблице в каждой строке должно быть одинаковое количество ячеек, то есть внутри всех
      . Для того чтобы добавить столбец в таблицу, надо в каждую строку

      Пример

      
      
        
          
          Простейшая таблица
        
        
        

      Распределение браузеров

      Браузер Посещения
      Mozilla Firefox 163
      Google Chrome 78
      Safari 35

      Задаём рамки с помощью CSS

      Таблицы в предыдущих заданиях отображались с рамками по умолчанию. 
      Такие рамки отображаются, если у тега  задан атрибут border с ненулевым значением.
      Но с помощью атрибута border гибко управлять рамками не получается. 
      С его помощью можно только изменять их толщину.
      

      Улучшаем отображение рамок

      По умолчанию браузер рисует рамки таблицы и рамки отдельных ячеек раздельно, это отлично видно на примере.
      Чтобы избавиться от таких двойных рамок, используется CSS-свойство таблицы border-collapse. 
      Вот так:
      
      table {
        border-collapse: collapse;
      }
      
      Значение collapse убирает двойные рамки: 
      схлопываются рамки соседних ячеек, а также рамки ячеек и внешняя рамка таблицы. 
      При этом внешняя рамка таблицы может исчезнуть, и чтобы её вернуть, можно увеличить её ширину.
      
      

      Горизонтальные и вертикальные рамки

      Иногда требуется, чтобы рамки ячеек в таблице отображались не полностью. 
      Например, чтобы отображалась только нижняя рамка ячеек, тогда таблица получается расчерченной по горизонтали. 
      Аналогично, если отображать только боковые рамки ячеек, то таблица получается разбитой на столбцы.
      Такие эффекты легко достигаются с помощью CSS. 
      
      Для этого необходимо использовать не свойство border, которое задаёт рамки для всех сторон ячейки, а одно из свойств:
      border-top,
      border-right,
      border-bottom,
      border-left.
      
      Эти свойства задают отображение только одной рамки ячейки: 
      верхней, правой, нижней или левой соответственно.
      
      table {
        border-collapse: collapse;
        border: 3px solid black;
      }
      
      td {
        border: 2px solid lightgray;
      }
      
      .td_black {
      border-top: 1px solid black;
      }
       
      

      Отступы между ячейками

      Большинство задач по оформлению таблиц решаются с помощью работы с рамками, отступами внутри ячеек, изменения цвета фона ячеек.
      Помимо внутренних отступов можно задавать отступы между ячейками таблицы.
      Отступы между ячейками не работают с border-collapse: 
      collapse, что достаточно логично, ведь рамки ячеек в этом режиме «склеены» и их не разорвать.
      
      Отступы между ячейками можно задать:
      с помощью атрибута cellspacing тега 
      или c помощью CSS-свойства border-spacing. Отметим, что свойство border-spacing задаётся для таблицы, в отличие от padding, которое задаётся для ячеек.

      Ячейки-заголовки

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

      Конспект «Оформление текста»

      ссылка

      https://htmlacademy.ru/courses/309/run/19
      

      Свойство font-size

      Управляет размером шрифта. 
      Значение свойства задаёт желаемую высоту символа шрифта. 
      Причём единицы измерения могут быть абсолютными или относительными.
      
      Самая часто используемая единица измерения размера шрифта — пиксели px:
      p {
        font-size: 20px;
      }
      
      Но, чтобы при изменении основного размера шрифта родителя его дочерние элементы пропорционально меняли свои размеры шрифта, есть специальная единица измерения — em.
      Величина 1em — это такой же размер шрифта, что и у родителя. 
      Соответственно, если нужно, чтобы шрифт дочернего элемента был всегда в 2 раза больше родительского, то надо задать значение 2em:
      h1 {
        font-size: 2em;
      }
      

      Свойство line-height

      Свойство управляет высотой строки или межстрочным интервалом.
      По умолчанию это свойство имеет значение normal. 
      Оно указывает браузеру, что межстрочный интервал нужно подобрать автоматически, исходя из размера шрифта. 
      Спецификация рекомендует устанавливать его в пределах 100-120% от размера шрифта. 
      
      То есть:
      p {
        font-size: 10px;
        line-height: normal; /* значение будет примерно 12px */
      }
      
      Значение normal позволяет всем нестилизованным текстам выглядеть удобочитаемо. 
      Однако, если есть необходимость отойти от стилизации по умолчанию, line-height можно задать фиксированное абсолютное значение в px.
      
      p {
        font-size: 16px;
        line-height: 26px;
      }
      
      Если нужно задать line-height относительное значение, но не такое, как normal, то значение задаётся в процентах или в виде множителя.
      В таком случае браузер вычисляет значение динамически в зависимости от font-size:
      
      p {
        font-size: 10px;
        line-height: 150%; /* вычисленное значение: 10px * 150% = 15px */
        line-height: 2;    /* вычисленное значение: 10px * 2 = 20px */
      }
      
      Относительные значения более гибкие, чем абсолютные. 
      Но для простых сайтов фиксированных font-size и line-height будет вполне достаточно.
      

      Свойство font-family

      В значении этого свойства указывается список названий шрифтов, перечисленных через запятую. 
      В начале списка располагают самый желаемый шрифт, затем менее желаемый, а в самом конце списка — общий тип шрифта. 
      Браузер проходит по списку слева направо и использует первый найденный в системе или на сайте шрифт. 
      Если название шрифта состоит из нескольких слов, то его нужно заключать в кавычки.
      
      body {
        font-family: "PT Sans", "Arial", sans-serif;
      }
      

      Свойство font-weight

      Свойство задаёт насыщенность или толщину шрифта. 
      Шрифт может быть жирнее или тоньше обычного начертания. 
      В качестве значения можно использовать ключевое слово или число. 
      
      Самые часто встречающиеся значения:
      400 или normal — обычный шрифт, значение по умолчанию;
      700 или bold — жирный шрифт.
      
      
      Например:
      h1 {
        font-weight: 400; /* то же самое что и normal */
      }
      
      p {
        font-weight: bold; /* то же самое что и 700 */
      }
      
      

      Свойство text-align

      Описывает, как выравнивается текст и другие инлайновые элементы (изображения, инлайн-блоки, инлайн-таблицы и другие) внутри блока по горизонтали.
      
      Свойство может принимать следующие значения:
      
      left — выравнивание по левому краю блока, это значение по умолчанию;
      right — по правому краю блока;
      center — по центру блока;
      justify — по ширине блока, при этом слова в строке будут размещаться так, чтобы занять равномерно всё пространство строки (пробелы между словами в таком случае становятся неравномерными, 
                так как браузер «растягивает» слова в строке).
      
      
      Важно помнить, что свойство text-align применяется именно к самому блоку-контейнеру, внутри которого находится текстовый контент:
      HTML:
      

      Я текст внутри абзаца

      CSS: p { text-align: center; }

      Свойство vertical-align

      Свойством можно выравнивать инлайновые элементы относительно содержащей его строки. 
      Самый простой пример — выровнять картинку  по вертикали в текстовой строке.
      
      У свойства vertical-align много значений, но самые часто используемые:
      top — выравнивание по верхнему краю строки;
      middle — по середине строки;
      bottom — по нижнему краю строки;
      baseline — по базовой линии строки (значение по умолчанию).
      В отличие от text-align свойство vertical-align задаётся самому элементу, а не содержащему его контейнеру:
      
      HTML:
      

      Я картинка Я текст внутри абзаца

      CSS: img { vertical-align: middle; }

      Свойство color

      Цветом текста можно управлять свойством color.
      Цвет может быть задан в виде ключевого слова (полный список ключевых слов приводится в спецификации). 
      
      Например:
      color: black; /* чёрный цвет */
      color: red;   /* красный цвет */
      color: white; /* белый цвет */
      
      Ещё один вариант указания цвета — в виде шестнадцатеричного значения. 
      В этом случае цвет формируется из красной, зелёной и синей составляющих, заданных в виде шестнадцатеричного числа от 00 до ff. 
      Помимо шести, цветовой код может содержать три знака, в этом случае второй символ в цветовых составляющих дублируется первым:
      color: #000000; /* чёрный цвет */
      color: #f00;    /* красный цвет, то же что #ff0000 */
      color: #fff;    /* белый цвет, то же что #ffffff */
      
      Если не хочется иметь дело с шестнадцатеричными значениями, можно воспользоваться специальной функцией rgb, 
      в которой указывается цвет в более привычном десятичном виде в диапазоне от 0 до 255 также в виде трёх цветовых составляющих, перечисленных через запятую:
      color: rgb(0, 0, 0)       /* чёрный, то же что #000000 */
      color: rgb(255, 0, 0)     /* красный, то же что #ff0000 */
      color: rgb(255, 255, 255) /* белый, то же что #ffffff */
      
      У функции rgb есть расширенная версия — rgba. 
      В этом случае помимо указания цвета последним значением указывается степень непрозрачности цвета — alpha. 
      Значение может быть от 0 (полностью прозрачный) до 1 (полностью непрозрачный):
      color: rgba(0, 0, 0, 0.5)      /* чёрный, непрозрачный на 50% */
      color: rgba(255, 0, 0, 0.3)     /* красный, непрозрачный на 30% */
      color: rgba(255, 255, 255, 0.9) /* белый, непрозрачный на 90% */
      

      Контраст цвета текста и фона

      Фоновое изображение и фоновый цвет блока всегда должен достаточно сильно контрастировать с цветом текста в этом блоке. 
      Чем больше контраст, тем удобнее этот текст читать в разных условиях освещённости и на разных устройствах. 
      Поэтому если вы задаёте блоку фоновое изображение, нужно обязательно дополнительно задавать подходящий фоновый цвет. 
      В этом случае, пока изображение загружается, или в случае, если оно совсем не загрузится, текст всё равно можно будет прочитать:
      p {
        /* идеальный контраст: цвет текста белый, цвет фона — чёрный */
        background-color: #000000;
        color: #ffffff;
      }
      
      span {
        /* плохой контраст: цвет текста и фона — серые */
        background-color: #cccccc;
        color: #dddddd;
      }
      

      Свойство white-space, управление пробелами

      Браузер игнорирует множественные пробелы и переносы строк в HTML-коде. 
      С помощью свойства white-space можно управлять пробелами и переносами строк. 
      Свойство принимает значения:
      nowrap — схлопывает лишние пробелы и отображает весь текст одной строкой без переносов;
      pre — сохраняет пробелы и переносы как в исходном коде аналогично тегу pre
      pre-wrap — работает как значение pre, но добавляет автоматические переносы, если текст не помещается в контейнер;
      normal — режим по умолчанию: лишние пробелы и переносы строк схлопываются, текст переносится, пробелы в конце строк удаляются.
      

      Свойство text-decoration

      Задаёт дополнительное оформление текста. 
      Значения свойства:
      underline — подчёркивание;
      line-through — зачёркивание;
      overline — надчёркивание;
      none — убирает вышеперечисленные эффекты.
      
      К тексту можно одновременно применить несколько эффектов, если перечислить значения через пробел:
      p {
        text-decoration: underline; /* подчёркнутый текст */
      }
      
      span {
        /* подчёркнутый и зачёркнутый текст */
        text-decoration: underline line-through;
      }
      
      Свойство text-decoration — составное. 
      Оно раскладывается на отдельные свойства:
      text-decoration-line — вид линии: зачёркивание, подчёркивание или надчёркивание;
      text-decoration-style — стиль линии, может принимать значения:
      solid — сплошная линия;
      double — двойная линия;
      dotted — точечная линия;
      dashed — пунктирная линия;
      wavy — волнистая линия.
      text-decoration-color — цвет линии.
      
      
      

      Свойство font-style

      Свойством можно задать начертание текста. 
      Его основные значения:
      normal — обычное начертание;
      italic — курсивное начертание.
      oblique — наклонное начертание.
      Если задано значение italic, браузер будет пытаться найти в заданном шрифте отдельное курсивное начертание символов. 
      В некоторых шрифтах отдельный курсив предусмотрен.
      Если отдельного курсивного начертания в шрифте не предусмотрено, то браузер сделает текст наклонным, то есть сымитирует курсив. 
      Что равноценно заданию тексту значения font-style: oblique.
      

      Свойство text-transform

      С его помощью можно управлять регистром символов: делать буквы строчными (маленькими) или заглавными (большими). 
      Значения свойства:
      lowercase — все строчные;
      uppercase — все заглавные;
      capitalize — каждое слово начинается с большой буквы;
      none — отменяет изменение регистра.
      

      Отступы

      Важный фактор того, что текст в блоке будет удобочитаемым, это наличие свободного пространства в блоке для этого текста. 
      Вокруг текста должно быть достаточно «воздуха», он не должен «прилипать» к краям, ему не должно быть «тесно».
      
      За отступы в CSS отвечают два свойства: padding задаёт внутренние отступы в блоке, а margin задаёт внешние отступы.
      
      
      Рубрики
      html

      Конспект «Ссылки и изображения»

      ссылка

      https://htmlacademy.ru/
      

      Конспект «Ссылки и изображения»

      
      Ссылки
      Что такое ссылка
      Типичная ссылка представляет собой участок текста, щёлкая на который, вы переходите на другую страницу, 
      открываете изображение, начинаете скачивать файл или перемещаетесь к какому-то месту на текущей странице.
      Ссылки создаются с помощью тега . 
      
      Например:
      HTML Academy
      
      Тег  можно использовать вообще без адреса, то есть без атрибута href. 
      Такой тег обозначает «ссылку-заглушку», которая в других условиях может стать обычной ссылкой. 
      
      Часто ссылки-заглушки используют, чтобы показать, что мы находимся на текущей странице:
      
      
      Когда мы удаляем атрибут href у ссылки, то лучше оставить подсказку о том, почему мы это сделали. 
      Подсказку можно добавить с помощью атрибута title. 
      Подсказка появится, когда курсор задержится над ссылкой некоторое время.
      
      
      Абсолютные ссылки
      Если нужно сделать ссылку на другой сайт в интернете, то необходимо использовать «обычный» адрес. 
      Этот «обычный» или полный адрес называется абсолютным. 
      
      Выглядит он, например, так:
      https://site.ru/blog/index.html
      
      Абсолютные адреса содержат минимум три части: 
      протокол, имя сервера и путь.
      
      
      
      Относительные ссылки
      Когда файл по ссылке должен открываться локально на компьютере, используются относительные адреса. 
      В отличие от «обычных» адресов, в нём нет адреса сайта.
      
       Например:
      day-2.html
      Относительные адреса работают не только для файлов на компьютере, но и для страниц в сети. 
      Если выложить два каких-то файла в интернет (не меняя их взаимное расположение), то их ссылка друг на друга всё равно будет работать.
      Если в адресе нет имени сервера или протокола, то это относительный адрес.
      
      
      Ссылки на файл
      По ссылкам можно не только переходить, но и скачивать файлы. 
      Для этого необходимо просто в атрибуте href прописать ссылку на этот файл. 
      А для того чтобы предотвратить открытие файлов прямо в браузере, у тега  существует атрибут download.
      Браузер скачает меня, а не будет читать
      
      
      
      Ссылки-якоря
      Ссылка-якорь — это обычная ссылка, в адресе которой используется символ #, после которого следует идентификатор элемента.
      Идентификатор создаётся с помощью атрибута id у того тега, к которому надо перейти при щелчке по ссылке.
      Глава 1
      Ссылка-якорь используется для прокрутки к заданной части страницы, в том числе используется и в абсолютных адресах.
      
      
      
      Изображения
      Подключение изображений
      Для подключения изображений существует тег , для него не требуется закрывающего тега, а путь к картинке задаётся в атрибуте src. 
      Например:
      
      
      
      Форматы изображений
      Существует несколько основных форматов изображений: JPEG, PNG, SVG и GIF.
      
      Формат SVG переводится как масштабируемая векторная графика.
      Качество таких изображений не меняется при изменении размеров, да и вес у них небольшой. 
      Отлично подходит для малоцветных схем, логотипов и иконок. 
      Чаще всего используется в случаях, когда необходимо масштабировать изображение без потерь, 
      изменять цвет элементов изображения, анимировать части изображения.
      
      
      Формат JPEG подходит для фотографий, рисунков с большим количеством разноцветных деталей, изображений с плавным переходом яркости и контраста. 
      При сжатии изображения ухудшается его качество.
      
      
      Формат PNG позволяет сохранять изображения, в которых требуется особенная чёткость. 
      Главная особенность этого формата — поддержка прозрачности. 
      Подходит для изображений с прозрачностью и полупрозрачностью, когда необходима повышенная точность полноцветных изображений 
      и для изображений с резкими переходами цветов.
      
      
      Формат GIF используется для простейших анимаций. 
      В последнее время GIF-изображения становятся всё менее используемыми и заменяются на другие, более оптимальные форматы.
      
      
      Размеры изображения
      Для управления шириной или высотой изображения, используются атрибуты width и height. 
      Размеры в этих атрибутах задаются без единиц измерения.
      
      Если задать только один из размеров, ширину или высоту, то вторую размерность браузер вычислит самостоятельно исходя из пропорций изображения. 
      Если задать картинке одновременно и высоту, и ширину, то браузер может нарушить пропорции исходного изображения.
      
      
      Атрибут alt
      В случаях, когда картинка не может отобразиться, для того, чтобы было понятно, что на ней изображено, существует альтернативный текст. 
      Также альтернативный текст помогает сайтам оставаться доступными, например, для категории пользователей, которая не имеет возможности видеть картинки.
      Альтернативный текст изображения задаётся с помощью атрибута alt. 
      Например:
      Кот, который гуляет сам по себе
      
      
      Figure и figcaption
      Тег 
      подходит для любого иллюстративного или демонстрационного материала, которым можно дополнить содержание документа: схемы, графики, примеры кода, таблицы и так далее. При удалении такого материала основное содержание не должно пострадать, иначе это не дополнительный материал и тег
      не подходит для его разметки. Для разъясняющего комментария к такому иллюстративному материалу существует тег
      , который размещается первым или последним элементом внутри
      . Например:
      Схема, график, диаграмма или код
      Подпись к содержимому
      Изображение-ссылка Ссылки можно делать не только с помощью текста, но и с помощью изображений. Для этого нужно обернуть тег в тег . Например: Кекс
      Рубрики
      html

      Конспект: Разметка текста \ html

      Cсылки

       
      https://htmlacademy.ru/
      

      Неупорядоченный список:

      Тег 
        (сокращение от «unordered list»). Используется, когда порядок элементов не важен. Например, для разметки перечня ссылок в меню, преимуществ товара, ингредиентов в составе продукта. Непосредственно в теге
          могут находиться только теги
        • (сокращение от «list item»), которые обозначают элементы или пункты списка:
          • Я пункт списка, могу быть на любом месте
          • И я пункт списка, и мне тоже не важен порядок
          По умолчанию элементы
            отмечаются маркерами такого же цвета, как цвет текста.

      Упорядоченный список:

      Тег 
        (сокращение от «ordered list»). В этом списке действительно важно, в каком порядке идут элементы. Упорядоченные списки подходят для разметки алгоритмов, инструкций, рецептов, результатов соревнований и так далее. Пункты упорядоченного списка тоже размечаются с помощью тега
      1. . Пример кода:
        1. Я первый и только первый пункт
        2. Я не я, если я не второй пункт
        3. Третий после стольких лет? Всегда!
        По умолчанию перед элементами
          ставится их порядковый номер. У
            может быть несколько атрибутов: start, reversed и type. Атрибут start меняет стартовое число нумерации пунктов. Может быть отрицательным. Атрибут reversed меняет направление нумерации на противоположный. Этот атрибут не требует значения. С помощью атрибута type можно задавать различные типы маркеров: строчные и заглавные латинские буквы или римские цифры.

      Список описаний:

      Тег 
      (сокращение от «description list»). Список описаний используется для разметки вопросов-ответов, наименований и определений, категорий и тем. Он создаётся с помощью трёх тегов:
      обозначает сам список описаний;
      (сокращение от «description term») обозначает термин;
      (сокращение от «description definition») обозначает описание или определение. Теги
      и
      пишутся внутри
      . Каждый список
      может содержать один или несколько терминов и одно или несколько описаний для каждого термина. Пример кода:
      HTML
      Язык гипертекстовой разметки
      CSS
      Каскадные таблицы стилей
      Язык для оформления HTML-документов
      По умолчанию браузер добавляет небольшой отступ слева от определений.

      Переформатированный текст и код:

      !!! спец символы больше и меньше пропущены
      Тег "pre" (сокращение от «preformatted text»). 
      Используется для отображения примеров кода, также применяется для отображения картинок ASCII Art. 
      
      Браузер сохраняет и отображает все пробелы и переносы, которые есть внутри тега "pre".
      
      Пример:
      pre
              переформатированного
              текста     с сохранёнными пробелами
                           и переносами строк
      /pre
      
      
      
      

      Обозначения фрагментов кода:

      Тег . 
      Используется для обозначения фрагментов кода.
      
      С его помощью размечается любой фрагмент текста, который распознается компьютером: 
      код программы, разметки, название файла и так далее.
       
      Обычно браузеры отображают текст в теге  моноширинным шрифтом.
      
      Тег ul — это неупорядоченный список.
      Тег  можно вкладывать внутрь тега "pre".
      
      

      Цитаты:

      Небольшие цитаты
      Тег  (сокращение от «quote»). 
      Предназначен для выделения цитат внутри предложения. 
      Текст внутри тега браузер автоматически обрамляет кавычками, поэтому добавлять кавычки вручную не нужно.
      
      Источник цитат
      Тег . 
      В нём можно указывать помимо адреса источника цитаты ещё и название произведения, откуда цитируется текст, 
      а также имя автора или организации, чей текст цитируется. 
      Содержимое  в браузере выделяется курсивом.
      
      

      По словам Чарльза БуковскиИнтеллектуал о простой вещи говорит сложно — художник сложную вещь описывает простыми словами.

      Тег может быть самостоятельным и не привязываться к цитате:

      Какой доктор ваш любимый (в сериале Доктор Кто)?

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

      Ум ценится дорого, когда дешевеет сила.

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

      Символы-мнемоники:

      
      Это особые строки, которые начинаются с амперсанда (&) и заканчиваются точкой с запятой (;). 
      Например, знак меньше на страницу можно вставить мнемоникой '<' (less than), а знак больше мнемоникой '>' (greater than):
      
      Некоторые символы в HTML зарезервированы, то есть браузер считает их HTML-кодом. 
      Например, любой текст после знака меньше (<) браузер будет пытаться интерпретировать как тег и на странице не отобразит. 
      Чтобы использовать специальные символы в тексте страницы как обычные символы их нужно заменить на символы-мнемоники.
      
      & lt ;  <
      & gt ;  > 
      

      Перенос строк:

      Тег 
      (сокращение от «line break»). Применяется, чтобы вставить в текст перенос строки, не создавая при этом абзац. Например, при разметке стихов или текстов песен.

      Верхний и нижний индексы:

      Теги  и . 
      Названия образованы от слов «superscript» и «subscript».
      
      Тег  отображает текст в виде верхнего индекса, а  отображает текст в виде нижнего индекса.
      
      Их используют для указания единиц измерения или для написания простых формул:
      20м2
      H2O
      X3+X2=1
      
      Для создания более сложных формул, эти теги можно использовать внутри друг друга.
      

      Дата и время:

      Тег 

      Акцентирование внимания:

      Теги  и . 
      Названия образованы от слов «emphasis» и «italic». 
      Предназначены для акцентирования внимания на слово или фразу. 
      Визуально оба тега одинаковы, они выделяют текст курсивом.
      
      Тег  определяет текст, на который сделан особый акцент, меняющий смысл предложения.
      
      Я просто обожаю холодные зимние дни!
      
      Тег  применяется для обозначения текста, который отличается от окружающего текста, но не является более важным. 
      Например, в  можно заключать названия, термины, иностранные слова. 
      Также в этот тег можно обернуть мысли героя. 
      
      В речи такой текст обычно выделяется интонационно:
      Он взглянул в окно и подумал — такого просто не может быть!
      
      

      Выделение и придание важности:

      Теги  и . 
      Название  образовано от слова «bold». 
      Отображаются оба тега одинаково, они выделяют текст жирным.
      
      Тег  указывает на важность отмеченного текста. 
      Он может использоваться для выделения предупреждений или части документа, которую пользователь должен увидеть раньше остального. 
      При этом обозначение части текста тегом  не должно изменять смысла предложения.
      
      Внимание! Это место опасно. 
      Вы можете упасть в пропасть, если подойдёте близко к краю.
      
      Тег  предназначен для выделения текста с целью привлечения к нему внимания, но без придания ему особой важности. 
      Использовать его нужно только в случае, когда остальные теги выделения не подходят. 
      Типичный пример — выделение вводного предложения статьи.
      
      Вы входите в небольшую комнату. 
      Ваш меч загорается ярче. 
      Крыса стремительно пробегает вдоль стены.
      
      

      Описание изменений:

      Теги  и . 
      Названия тегов образованы от слов «delete» и «insert». 
      Предназначены для описания изменений в документе.
      
      Тег  выделяет текст, который был удалён в новой версии документа. 
      В браузере этот текст перечёркивается.
      
      Тег  выделяет текст, который был добавлен в новой версии документа. 
      В браузере этот текст подчёркивается.
      
      
      • Почистить посудомоечную машину
      • Погулять
      • Поспать
      • Купить принтер

      Разделение контента:

      
      Теги 
      и . Это «чистые» элементы, и обычно они отлично подходят в качестве обёртки для стилизации или группировки других элементов. Использовать эти теги рекомендуется в тех случаях, если более подходящих семантических тегов не нашлось. Тег
      используется для группировки структурных элементов или в качестве вспомогательных контейнеров для создания нужной раскладки. Тег используется для группировки текстовых элементов, выделения отдельных слов или фраз внутри абзацев, пунктов списка и так далее.

      Текст, в котором выделена фраза

      Рубрики
      html

      Конспект «Структура HTML-документа»

      ссылки:

      https://htmlacademy.ru/
      

      Конспект «Структура HTML-документа»

      Каждый HTML-документ начинается с декларации типа документа или «доктайпа». 
      Тип документа необходим, чтобы браузер мог определить версию HTML и правильно отобразить страницу.
      
      
      
      Простейшая HTML-страница состоит как минимум из трёх тегов: ,  и . 
      
      Тег  обычно содержит заголовок, ключевые слова, описание страницы и другие служебные данные. 
      Также внутри него подключаются внешние ресурсы, например, стили. 
      Содержимое этого тега не отображается на странице напрямую. 
      
      А в теге  хранится содержание страницы, которое отображается в окне браузера.
      
      Для подключения стилей к странице существует тег . 
      Для этого у него есть атрибут href в котором задаётся адрес стилевого файла, 
      а значение stylesheet атрибута rel говорит браузеру, что мы подключаем именно стили, а не что-то другое.
      
      
        
      
      
      Ещё один элемент, который располагается в  — это тег . 
      В нём задаётся заголовок страницы, который отображается во вкладках браузера. 
      По заголовку должно быть понятно, о чём эта страница, даже когда она не открыта в браузере, а отображается в результатах поиска или в браузерных закладках.
      
      <head>
        <title>Курсы — HTML Academy
      
      
      Ещё один важный тег, располагающийся внутри  это тег . 
      Он одиночный, то есть не требует парный закрывающий тег в конце. 
      С помощью  можно сообщать браузеру, поисковому роботу или другому устройству различную служебную информацию (или метаинформацию) о вашем сайте: 
      кодировку текста, описание контента и так далее. 
      Для этого используются теги  с разными атрибутами и их значениями.
      
      Кодировка текста HTML-страницы указывается с помощью атрибута charset:
      
      Самая распространённая современная кодировка — utf-8.
      
      Перечень ключевых слов задаётся тегом , у которого атрибут name имеет значение keywords. 
      Ключевые слова (самые важные слова из содержания страницы) перечисляются в атрибуте content через запятую:
      
      
      Краткое описание (или аннотация) страницы задаётся похожим образом, только значение атрибута name меняется на description:
      
      
      Внутри  находятся те теги, которые отображаются на странице. 
      Например, тег 
      выделяет основное содержание страницы, которое не повторяется на других страницах. И обычно на странице используется один
      . Тег
      содержит вводную часть страницы, которую чаще называют «шапкой», а тег
      описывает заключительную часть страницы, или «подвал». Существует тег
      , который обозначает крупный смысловой (или «логический») раздел. Тег
      , обозначает цельный, законченный и самостоятельный фрагмент информации. Для создания логического раздела с основной навигацией предназначен тег

      пример index.html

      
      
        
          
          
          Портфолио Junior верстальщика
        
      
        
          
      
          

      Неопознанный Енот

      Junior верстальщик

      Давайте познакомимся

      Пара слов о себе

      Текст с парой слов о себе.

      Чем могу быть полезен

      Текст о том, чем могу быть полезен.

      Мои работы

      Сайт инструктора Кекса

      Небольшой лендинг о школе для начинающих.

      Блог начинающего верстальщика

      Статический блог про обучение HTML и CSS.

      Контакты в подвале

      пример index.css

      html,
      body {
        margin: 0;
        font-family: "Arial", sans-serif;
        font-size: 14px;
        line-height: 20px;
      }
      
      body {
        min-width: 430px;
        border: 2px dashed #c7e4ff;
      }
      
      html::before,
      body::before,
      header::before,
      footer::before,
      main::before {
        color: #7fc1ff;
      }
      
      main,
      header,
      footer {
        background-color: #f3faff;
        border: 2px solid #7fc1ff;
      }
      
      nav,
      section,
      article,
      aside {
        background-color: #f9f7ff;
        border: 2px solid #9779ec;
      }
      
      nav::before,
      section::before,
      article::before,
      aside::before {
        color: #9779ec;
      }
      
      h1,
      h2,
      h3 {
        font-size: 18px;
        background-color: #ffffff;
        border: 2px solid #ff994f;
      }
      
      h1::before {
        content: "h1";
        color: #ff994f;
      }
      
      h2::before {
        content: "h2";
        color: #ff994f;
      }
      
      h3::before {
        content: "h3";
        color: #ff994f;
      }
      
      p {
        background-color: #ffffff;
        border: 2px solid #f36dff;
      }
      
      p::before {
        color: #f36dff;
        content: "p";
      }
      
      * {
        position: relative;
        padding: 25px 25px 20px;
        margin: 0;
        border-radius: 4px;
      }
      
      *:not(:last-child) {
        margin-bottom: 20px;
      }
      
      *::before {
        position: absolute;
        top: 8px;
        left: 10px;
        font-weight: 700;
        font-size: 11px;
        line-height: 10px;
        letter-spacing: 0.04em;
      }
      
      html::before {
        content: "html";
      }
      
      body::before {
        content: "body";
      }
      
      main::before {
        content: "main";
      }
      
      header::before {
        content: "header";
      }
      
      footer::before {
        content: "footer";
      }
      
      section::before {
        content: "section";
      }
      
      article::before {
        content: "article";
      }
      
      aside::before {
        content: "aside";
      }
      
      nav::before {
        content: "nav";
      }
      
      
      Рубрики
      html

      html вводное

      P - Point of Peresence POP точка присутствия. называют провайдера. или места подключения к сети интернет
      N - точки доступа Network Access Point  места объединений нескольких провайдеров.
      DNS - сервер доменных системы имен
      F - файловый сервер
      w - веб сервер
      D - домен
      

      протоколы передачи данных:

      ip - internet protocol - маршрутизация
      tcp - Transmission Control Protocol  - передача данных (подтверждение доставки)
      udp - User Datagram Protocol - передача данных (без подтверждения доставки)
      ftp - File Transport Protocol - передача файлов
      pop - Post Office Protocol - передача почты
      smtp - Simple Mail Transfer Protocol - простой протокол передачи почты
      imap - Internet Message Access Protocol - передача почты
      

      виды подключений

      постоянные - по выделенной линии
      сеансовые - коммутированные подключение
      

      файл и расширение

      Имя html файла следует писать строчными латинскими буквами.
      Можно использовать цифры, знаки подчеркивания и тире.
      расширение: .html  .htm
      

      форматы графических файлов

      BMP GIF JPEG PCX  PNG
      

      пиксели и разрешения

      Растровая графика это графика представленная в пк множеством точек.и это файлы определенного формата.
      Разрешение это количество точек на единицу измерения
      dpi количество точек на дюйм
      ppi количество пикселей на дюйм 
      spi  сканер. количество проб на дюйм.
      пиксель -pixel - picture element -  минимальный адресуемый элемент двухмерного  растровая изображения - одна точка изображения
      

      примеры размещения графики на странице

      любое фото.  
      высота 11см ширина 13см 
      скан в  300 dpi цветного и черно белого изображения равен  1304 x 1479 . применяют  печатные издания.
      скан в 72 dpi цветного  313 x 355 пример для интернет страниц.
      

      баннер реклама

      Баннер небольшой рекламный модуль
      468x60 полный горизонтальное баннер
      465x60 полный горизонтальное Баннер
      234x60 половинной Баннер
      125x125 квадратный баннер
      120x90  Баннер кнопка
      120x60  Баннер кнопка
      88x31 микро кнопка баннер
      120x240 вертикальный баннер
      Существуют оговоренные ограничения на Баннер.  на баннер 465x60  10-15 Кбайт
      www.promo.ru энциклопедия рекламы
      

      публикация и поиск документов

      students.ru
      resume.ru
      hermitage.ru
      Kremlin. ru
      
      Рубрики
      html

      html гипертекстовые ссылки \ a href = url

      Гипертекстовые ссылки нужны для более удобного использования страниц и их связывания.
      такая ссылка задается тегами  тело ссылки 
      она имеет несколько атрибутов . HREF и NAME обязательны. 
      HREF - ссылка за пределы документа 
      URL - Uniform Resurce Locator - Унифицированный указатель ресурса
      <имя тега значение тега =значение атрибута > полезная нагрузка           
      
      		
      	
      Рубрики
      css

      css слои \ DIV

      теги  либо 
      Создание слоя с помощью парного тега
      атрибуты тега
      расположить текст с право/слева/по центру
      отображение текста курсивом
      отображение текста полужирным шрифтом
      ID позволяет использовать глобальные идентификатор. атрибут ID используется однократно.в противном случае используют классы

      Каскадные Листы Стилей Cascading Style Sheets CSS

      Вместо того чтобы кодировать каждую страницу можно создать один шаблон страницу и ссылается на него из всех документов.
      CSS позволяет более гибко контролировать шрифт , цвет фона и т. д.
      CSS позволяет быстро менять оформление страницы
      
      a.menu: link
      {
      color: #34522f;
      font-famaly: arial;
      font-size: 32px;
      font-waight: bold;
      text-decoration: none
      }
      
         это говорит о том что в документе применяются css
      
      
      Рубрики
      css

      css синтаксис

      Элемент.
      Все начинается с элемента или с селектора
      Элементами могут быть любые теги. 
      Например 

      , который расшифровывается как «table header» и обозначает ячейку-заголовок. Тег аналогичен , он так же должен располагаться внутри
      выделяется жирным и выравнивается по центру ячейки.

      Заголовок таблицы

      В предыдущем задании вы создали заголовочные ячейки с помощью подходящих тегов, в этом задании мы создадим подпись к таблице (или заголовок таблицы).
      Сейчас подпись Распределение браузеров сделана с помощью заголовка первого уровня. 
      В принципе, можно догадаться, что это название таблицы, но семантически правильнее будет сделать это название с помощью тега 
      . Тег должен размещаться внутри тега , причём непосредственно внутри него и первым, до остальных вложенных тегов. Вот так:
      ...
      Текст
      Тег заголовка идёт первым внутри таблицы, но с помощью CSS можно переместить заголовок таблицы в любое место: сверху или снизу таблицы, по центру, справа или слева. По вертикали заголовок таблицы перемещается CSS-свойством caption-side со значениями top и bottom, которые обозначают до и после таблицы соответственно. По горизонтали заголовок таблицы выравнивается CSS-свойством text-align со значениями left, right и center. caption { caption-side: bottom; text-align: right; }

      Объединяем ячейки в строках

      Чтобы объединить ячейки по горизонтали, необходимо использовать атрибут colspan у тегов 
      или . Когда вы задаёте ячейке атрибут colspan со значением 2, то ячейка как бы «растягивается» на ячейку справа, но та ячейка не исчезает, а отодвигается и в таблице появляется новый столбец. Чтобы удалить его, нужно удалить ячейку, которая находится справа от «растянутой».
      Распределение браузеров
      Браузер Посещения можно удалить
      Количество В процентах
      Mozilla Firefox 163 59%
      Google Chrome 78 28%
      Safari 35 13%

      Объединяем ячейки в столбцах

      Объединение ячеек по вертикали немного сложнее. 
      Оно осуществляется с помощью атрибута rowspan у тега 
      или . Когда вы задаёте ячейке атрибут rowspan со значением 2, то ячейка как бы «растягивается» на следующую строку. При этом ячейка, которая была под «растянутой» отодвигается в своей же строке вправо, что добавляет в таблицу лишний столбец. Удалив ячейку, которая была под «растянутой», мы избавимся от этого столбца. Объединяем ячейки в столбцах
      Распределение браузеров
      Браузер Посещения
      Количество В процентах
      Mozilla Firefox 163 59%
      Google Chrome 78 28%
      Safari 35 13%
      table { border-collapse: separate; border-spacing: 4px; border: 2px solid black; } td { padding: 5px; padding-right: 30px; border: 1px solid lightgray; } th { padding: 10px; border: 1px solid black; } caption { margin-bottom: 10px; font-size: 18px; } .pink { background-color: pink; }

      Комбо: colspan + rowspan

      Можно растягивать ячейку одновременно и по вертикали, и по горизонтали.
      Для этого нужно задать ячейке два атрибута: rowspan и colspan.
      
      Вытеснение соседних ячеек будет происходить так же, как и при обычном объединении ячеек. 
      Правда, вытесненных ячеек окажется больше. 
      Например, ячейка с rowspan="2" и colspan="2" вытеснит три соседних ячейки.
      
      
      
        
          
          Комбо: colspan + rowspan
          
        
        
          
      1.1 1.2 1.3
      2.1 2.2 2.3
      3.1 3.2 3.3
      table { border-collapse: separate; border-spacing: 4px; border: 2px solid black; } td { padding: 5px; padding-right: 30px; border: 1px solid lightgray; } .pink { background-color: pink; }

      Выравнивание содержимого в ячейках

      Выравнивание содержимого в ячейках
      Содержимое ячеек можно выравнивать по горизонтали и по вертикали с помощью CSS.
      За выравнивание по горизонтали отвечает CSS-свойство text-align. 
      Чаще всего используются значения left, center и right.
      
      За выравнивание по вертикали отвечает CSS-свойство vertical-align. 
      Чаще всего используются значения top, middle и bottom.
      
      На самом деле, значений у обоих свойств больше, но в случае с ячейками нас интересуют только перечисленные.
      Чтобы задать выравнивание содержимого ячеек, надо в стилях указать:
      
       {
        vertical-align: значение;
        text-align: значение;
      }
      
      Эти стили повлияют на все ячейки. Чтобы задать выравнивание только в определённых ячейках, нужно назначить им классы и определить стили для классов.
      
      

      Добавим цвета

       Таблицы можно раскрашивать, задавая цвет фона ячеек, цвет текста в ячейках, а также цвет рамок. 
      Можно задавать и фоновые изображения.
      
      Цветами можно управлять с помощью этих свойств:
      background-color — задаёт цвет фона,
      color — цвет текста,
      border-color — цвет рамок.
      
      До этого мы использовали компактную форму для описания рамок: 
      border: 1px solid lightgray;
      
      Таким образом, чтобы задать цвета для ячейки в CSS, нужен такой код:
      td {
        color: цвет;
        background-color: цвет;
        border: 1px solid цвет;
      }
      
      
      
        
          
          Добавим цвета
          
        
        
          
      Распределение браузеров
      Браузер Посещения
      Количество В процентах
      Mozilla Firefox 126 59%
      Google Chrome 78 30%
      Safari 34 11%
      table { border-collapse: collapse; border: 2px solid black; border-color: red; } td { padding: 5px; padding-right: 10px; border: 1px solid lightgray; color: brown; background-color: lightyellow; border-color: green; } th { padding: 10px; border: 1px solid black; color: darkblue; background-color: lightcyan; border-color: yellow; } caption { margin-bottom: 10px; font-size: 18px; } Как быть, если стили нужно задать для какой-то определённой ячейки, группы ячеек, или строки? Можно использовать классы и применять стили для этих классов. Например, вот так: .my-class { стили }

      Задаём размеры таблицы

      По умолчанию ширина и высота таблицы зависит от содержимого и отступов внутри ячеек. 
      Чем меньше содержимого, тем меньше размеры таблицы.
      С помощью CSS можно управлять размерами таблицы, задавать желаемую ширину и высоту. 
      Также размерами можно управлять с помощью атрибутов таблицы, но мы рассмотрим только CSS.
      Стоит отметить, что у таблицы есть минимальные размеры, которые зависят от содержания, меньше которых она не сожмётся, какое бы значение ширины или высоты ни задавалось.
      Ширина таблицы задаётся с помощью CSS-свойства width, а высота с помощью свойства height, например:
      
      table {
        width: 100px;
        height: 100px;
      }
      
      Размеры таблицы можно задавать как в абсолютных единицах, например, в пикселях — 20px, так и в относительных, в процентах — 20%.
      При использовании процентов размеры таблицы будут вычисляться с учётом размеров родительского элемента, в нашем случае окна мини-браузера.
      Особое значение auto включает расчёт размеров по умолчанию. 
      
      Например: 
      width: auto; 
      height: auto;
      
      !!!Важное замечание. 
      Проценты при задании высоты обычно не работают.
      
      
      Размеры ячеек и столбцов тоже можно задавать вручную, особенно если вам не нравится, как браузер распределил ширину колонок. 
      Размеры ячеек задаются точно так же, как и размеры таблицы: с помощью CSS-свойств width и height.
      
      Есть два варианта добавления стилей ячейкам:
      Назначать ячейкам уникальные имена классов, например, class="cell-11", и применять стили для этих классов.
      Использовать атрибут style, внутри которого можно писать CSS-код.
      
      Пример второго варианта:
      
      ... Свойства. Именно для элемента назначаются атрибуты. MARGIN WIDHT FONT-FAMALY BORDER-RIGHT HEIGHT Значение. Каждое свойство достигает определенного значения Объявление. значения которые оно должно принять образует объявления. Правило. Элемент и его объявления образуют правило h1 {color: red; size: 20pt} пример правила Группировки стилей и селектором класса:
      Группировка может производится по одинаковым тегам или по атрибутам одного семейства
      
      до группировки по тегам
      h1 {font-famely: arial;  font-size: 14pt }
      h2 {font-famely: arial;  font-size: 14pt }
      h3 {font-famely: arial;  font-size: 14pt }
      после группировки по тегам
      h1, h2, h3 {font-famaly: arial font-size 14pt}
      
      до группировки по атрибутам одного семейства
      body {margin-top: 12pt;margin-left: 10pt;margin-right: 14pt }
      после группировки по атрибутам
      body {margin: 12pt 10pt 14pt}
      
      Селекторы классов (class selectors) синтаксис 
      селектор.класс {свойства}
      .класс  {свойства}