
{
    "version": "https://jsonfeed.org/version/1.1",
    "title": "Главная  antivan. Дом проектов",
    "description": "  Главная  antivan. Дом проектов",
    "home_page_url": "https://antivan.ru/",
    "feed_url": "https://antivan.ru/index.json",
    "language": "ru-RU",
    "icon": "https://antivan.ru/apple-touch-icon.png",
    "favicon": "https://antivan.ru/apple-touch-icon.png",
    "authors": [
        {
            "name": "Ivan Antipin",
            "url": "https://antivan.ru",
            "avatar": "https://antivan.ru/avatar.png"
        }
    ],
    "items": [
        {
            "title": "Converdoc и маркировка. Для объемно-сортового учета",
            "date_published": "2026-06-11T01:05:00+05:00",
            "date_modified": "2026-06-11T01:05:00+05:00",
            "id": "https://antivan.ru/converdoc/gtin-plus/",
            "url": "https://antivan.ru/converdoc/gtin-plus/",
            "content_html": "\u003cp\u003eЕсли вы работаете с объемно-сортовым учетом (ОСУ), упрощенным способом передачи маркированного товара, когда государству сообщают только штрихкод и общее количество, а не паспорт каждой отдельной бутылки или коробки (а это вода, молочка, соки, некоторые виды косметической продукции).\u003c/p\u003e\n\u003cp\u003eДля организаций, производящих и/или продающих оптом маркированный товар и работающих с объемно-сортовым учетом (ОСУ) Converdoc теперь тоже подходит.\u003c/p\u003e\n\u003cp\u003eДаже не нужно будет включать в 1С поддержку работы с маркировкой, достаточно добавить для товара штрихкод и \u003ca href=\"/converdoc/\"\u003eвоспользоваться нашим сервисом\u003c/a\u003e. Ваши контрагенты получат УПД в машиночитаемом формате XML со всеми необходимыми дополнительными данными о товаре.\u003c/p\u003e\n\u003cdiv class=\"message success\"\u003eЕсли я сэкономил вам много времени и нервов, можете сказать \u003ca href=\"/thanks/\"\u003eспасибо\u003c/a\u003e.\u003cbr\u003e\nОно мне очень пригодится.\u003c/div\u003e"
        },
        {
            "title": "Converdoc - инструкция, часть 1. Выгрузка документа из 1с в Диадок",
            "date_published": "2025-06-20T23:04:00+05:00",
            "date_modified": "2025-06-20T23:04:00+05:00",
            "id": "https://antivan.ru/converdoc/instruction/",
            "url": "https://antivan.ru/converdoc/instruction/",
            "content_html": "\u003cp\u003eДля того, чтобы начать пользоваться нашим сервисом нужно выполнить несколько простых шагов. От пользователя не требуются знания в области устройства ПК, ОС, программирования и системного администрирования.\u003c/p\u003e\n\u003cp\u003eВ случае, если у вас MacOS или Linux, вы или ваш системный администратор, скорее всего, знаете, что нужно делать. Или обратитесь в нашу техподдержку.\u003c/p\u003e\n\u003cp\u003eНачиная с Windows 7 инструкция должна работать.\u003c/p\u003e\n\u003ch3 id=\"подготовка\"\u003eПодготовка\u003c/h3\u003e\n\u003cp\u003eПосле запроса демо-доступа или после оплаты счета вы получите от нас три текстовых строчки:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eссылку\u003c/li\u003e\n\u003cli\u003eлогин\u003c/li\u003e\n\u003cli\u003eпароль\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eКликните правой кнопкой мыши на значке \u003cem\u003eМой компьютер/Компьютер/Этот компьютер\u003c/em\u003e на рабочем столе, в меню кнопки пуск или в окне проводника. В открывшемся контекстном меню выберите пункт \u0026ldquo;Подключить сетевой диск\u0026rdquo;.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/instruction/2025-06-24_15-53-26.png\" alt=\"Подключить сетевой диск\"\u003e\u003c/p\u003e\n\u003cp\u003eВ открывшемся окне выберите любую букву диска, которая не используется в других ваших задачах (красная стрелочка). В строку, отмеченную синей стрелочкой введите, а лучше вставьте через буфер обмена, ссылку. Установите обе галочки, отмеченные зелеными стрелками.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/instruction/2025-06-24_15-54-26.png\" alt=\"Выбираем букву диска, вводим ссылку\"\u003e\u003c/p\u003e\n\u003cp\u003eНажмите кнопку \u0026ldquo;Готово\u0026rdquo;. Появится еще одно окно, в которое нужно будет ввести логин/пароль. Также можно будет поставить галочку \u0026ldquo;Запомнить учетные данные\u0026rdquo;.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/instruction/2025-06-24_16-14-33.png\" alt=\"Вводим учетные данные\"\u003e\u003c/p\u003e\n\u003cp\u003eПодключится сетевой диск, откроется окно проводника с его содержимым (пустое). Можно закрывать.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eПодготовка закончена\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eЕсли все необходимые галочки были установлены, ссылка/логин/пароль были введены верно, этот сетевой диск будет подключаться при каждом запуске операционной системы.\u003c/p\u003e\n\u003cp\u003eНе нужно пытаться хранить на этом сетевом диске ваши данные. Все данные, скопированные на него будут уничтожаться.\u003c/p\u003e\n\u003ch3 id=\"вариант-1---выгружаем-конкретный-документ\"\u003eВариант 1 - выгружаем конкретный документ\u003c/h3\u003e\n\u003cp\u003eОткрываем документ, который хотим отправить. Нажимаем кнопку \u0026ldquo;Еще\u0026rdquo;.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/instruction/2025-06-24_15-41-20.png\" alt=\"“Еще” в документе\"\u003e\u003c/p\u003e\n\u003cp\u003eВ открывшемся контекстном меню выбираем пункт \u0026ldquo;Выгрузить документ в файл\u0026rdquo;. Этот пункт может оказаться в подменю \u0026ldquo;ЭДО\u0026rdquo;.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/instruction/2025-06-24_15-44-38.png\" alt=\"Выгрузить документ в файл\"\u003e\u003c/p\u003e\n\u003cp\u003eДальше проверяем, чтоб точка выбора стояла напротив пункта \u0026ldquo;На диск\u0026rdquo; и нажимаем \u0026ldquo;Выполнить\u0026rdquo;.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/instruction/2025-06-24_15-45-51.png\" alt=\"Выполнить\"\u003e\u003c/p\u003e\n\u003cp\u003eВ стандартном окне сохранения файла, не изменяя предложенное имя файла, выбираем место для сохранения. Выбираем ранее подключенный диск.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/instruction/2025-06-24_15-46-51.png\" alt=\"Выбираем место для сохранения\"\u003e\u003c/p\u003e\n\u003cp\u003eЧерез несколько секунд файл обработается. Визуально это будет выглядеть, как смена иконки архива .zip, на другую и появление в имени файла первого символа \u0026ldquo;_\u0026rdquo;.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/instruction/2025-06-24_15-50-06.png\" alt=\"Результат\"\u003e\u003c/p\u003e\n\u003cp\u003eМожно переходить в Диадок? или другую ваши систему ЭДО, загружать туда полученный документ. Об этом ниже.\u003c/p\u003e\n\u003ch3 id=\"вариант-2---выгружаем-много-документов\"\u003eВариант 2 - выгружаем много документов\u003c/h3\u003e\n\u003cp\u003eОткрываем журнал документов \u0026ldquo;Реализация\u0026rdquo;. У нас есть несклько (в примере - 12) документов, которые мы хотим отправить одним махом сразу всем клиентам. Выделяем верхний из документов, зажимаем на клавиатуре клавишу \u0026ldquo;Shift\u0026rdquo;, выделяем нижний документ. Если список документов велик и не помещается на один экран, до зажатия клавиши \u0026ldquo;Shift\u0026rdquo; нужно прокрутить список до последнего документа.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eТакже можно выделять документы снизу вверх. Можно выделить не группу соседствующих документов, а любое можножество, просто зажав клавишу \u0026ldquo;Ctrl\u0026rdquo; и щелкая по каждому документу. Таким образом можно выгрузить один документ, не открывая его.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eНажимаем \u0026ldquo;Еще\u0026rdquo;, отмеченную зеленой стрелкой.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/instruction/2025-06-24_16-32-47.png\" alt=\"Выделяем группу документов\"\u003e\u003c/p\u003e\n\u003cp\u003eДальше должно быть знакомо по \u0026ldquo;Варианту 1\u0026rdquo;. Выбираем пункт \u0026ldquo;Выгрузить документ в файл\u0026rdquo; (этот пункт может оказаться спрятан в подменю \u0026ldquo;ЭДО\u0026rdquo;).\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/instruction/2025-06-24_16-45-14.png\" alt=\"Выгрузить документ в файл\"\u003e\u003c/p\u003e\n\u003cp\u003eВ зависимости от количества выбранных документов система может задуматься на несколько секунд или даже минут. В открывшемся окне нужно проверить, что точка установлена напротив пункта \u0026ldquo;На диск\u0026rdquo;. Нажимаем \u0026ldquo;Выполнить\u0026rdquo;. Система предложить выбрать папку для сохранения - выбираем ранее подключенный диск.\u003c/p\u003e\n\u003cp\u003eЧерез несколько секунд файлы обработаются. Визуально это будет выглядеть, как смена иконок архивов .zip, на другую и появление в имени файлов первого символа \u0026ldquo;_\u0026rdquo;.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/instruction/2025-06-24_16-51-44.png\" alt=\"Результат по варианту 2\"\u003e\u003c/p\u003e\n\u003ch3 id=\"загружаем-в-диадок\"\u003eЗагружаем в Диадок\u003c/h3\u003e\n\u003cp\u003e\u003cem\u003eДля того, чтоб иметь возможность отправлять документы вашим контрегентам, вы должны заранее отправить им приглашение, а они его принять. Это выходит за рамки данной инструкции.\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/instruction/2025-06-24_16-54-15.png\" alt=\"Загрузка в Диадок\"\u003e\u003c/p\u003e\n\u003cp\u003e1 - документы, 2 - новый, 3 - выбрать файл. В меню открытия файла можно открыть один файл, а можно выбрать сразу все ранее выгруженные документы. Также можно \u0026ldquo;перетащить\u0026rdquo; все ранее полученные файлы из проводника в поле, отмеченное пунктирной линией. После этого система предложит все проверить, поменять тип документа (Акт, Накладная, УПД), отредактировать формы, если это требуется, отправить сразу всем конктрагентам, нажатием одной кнопки.\u003c/p\u003e\n\u003cdiv class=\"message success\"\u003eЕсли я сэкономил вам много времени и нервов, можете сказать \u003ca href=\"/thanks/\"\u003eспасибо\u003c/a\u003e.\u003cbr\u003e\nОно мне очень пригодится.\u003c/div\u003e"
        },
        {
            "title": "Converdoc - инструкция, часть 2. Как загрузить документ из Диадок в 1С без использования модуля интеграции",
            "date_published": "2025-07-03T17:17:26+05:00",
            "date_modified": "2025-07-03T17:17:26+05:00",
            "id": "https://antivan.ru/converdoc/from_diadoc_to_1c/",
            "url": "https://antivan.ru/converdoc/from_diadoc_to_1c/",
            "content_html": "\u003cp\u003eЭта инструкция пригодится любому пользователю, а не только пользователям \u003ca href=\"/converdoc/\"\u003eConverdoc\u003c/a\u003e (который, кстати, позволяет выгружать документы из 1С в Диадок без покупки модуля интеграции).\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eИтак.\u003c/strong\u003e Вы не хотите вручную вводить документ от поставщика товара или услуги. Поставщик прислал вам документ в машиночитаемом виде (это мы проверим позднее). Приступим.\u003c/p\u003e\n\u003ch3 id=\"подготовка-проверка\"\u003eПодготовка, проверка\u003c/h3\u003e\n\u003cp\u003eОткрываем входящий документ в Диадоке, нажимаем \u003cem\u003eСкачать\u003c/em\u003e, в подменю выбираем \u003cem\u003eДокумент в исходном формате\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/from_diadoc_to_1c/2025-07-03_16-54-34.png\" alt=\"Скачиваем документ\"\u003e\u003c/p\u003e\n\u003cp\u003eВ стандартном диалоге сохранения файла проверяем, что у файла тип \u003cem\u003eXML\u003c/em\u003e, сохраняем его в любую папку на вашем диске и можем двигаться дальше.\u003cbr\u003e\nФайлы другого типа - это не машиночитаемая форма, в 1С такие не загрузятся, нужно запросить у поставщика отправить файл в правильном виде, подготовив файл, например, в сервисе \u003ca href=\"/converdoc/\"\u003eConverdoc\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/from_diadoc_to_1c/2025-07-03_16-55-03.png\" alt=\"Сохраняем его на диск\"\u003e\u003c/p\u003e\n\u003ch3 id=\"загрузка-в-1с\"\u003eЗагрузка в 1С\u003c/h3\u003e\n\u003cp\u003eВ 1С заходим в документы поступления, заходим в меню кнопки \u003cem\u003eЕще\u003c/em\u003e, там выбираем пункт \u003cem\u003eЗагрузить документ из файла\u003c/em\u003e (этот пункт может быть спрятан в пункте \u003cem\u003eЭДО\u003c/em\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/from_diadoc_to_1c/2025-07-03_17-07-57.png\" alt=\"Загрузить документ из файла\"\u003e\u003c/p\u003e\n\u003cp\u003e1С пытается автоматически определить тип входящего документа и контрагента, но нам дает возможность поправить себя. Правим, если требуется. Нажимаем \u003cem\u003eВыполнить\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/from_diadoc_to_1c/2025-07-03_17-10-19.png\" alt=\"Первый взгляд на загружаемый документ\"\u003e\u003c/p\u003e\n\u003cp\u003eСледующим пунктом обрабатывается номенклатура. Если автоопределение не сработало (мой случай, на скриншотах), можно создать новую или выбрать вручную из уже имеющейся. После обработки всей табличной части нажимаем \u003cem\u003eСохранить и закрыть\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/from_diadoc_to_1c/2025-07-03_17-11-21.png\" alt=\"Обрабатываем номенклатуру\"\u003e\n\u003cimg src=\"/converdoc/from_diadoc_to_1c/2025-07-03_17-12-08.png\" alt=\"Обрабатываем номенклатуру\"\u003e\n\u003cimg src=\"/converdoc/from_diadoc_to_1c/2025-07-03_17-13-15.png\" alt=\"Обрабатываем номенклатуру\"\u003e\u003c/p\u003e\n\u003cp\u003eМы создали документ. Проводим окончательную проверку правильности заполнения и нажимаем \u003cem\u003eПровести и закрыть\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/converdoc/from_diadoc_to_1c/2025-07-03_17-15-19.png\" alt=\"Проверить, провести и закрыть\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eГотово!\u003c/strong\u003e Мы молодцы!\u003c/p\u003e"
        },
        {
            "title": "Книга продаж в 1С 7.7 Комплексная: как выгрузить данные в 2026 году",
            "date_published": "2026-04-18T00:47:31+05:00",
            "date_modified": "2026-04-18T00:47:31+05:00",
            "id": "https://antivan.ru/blog/sales-ledger-2026/",
            "url": "https://antivan.ru/blog/sales-ledger-2026/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003eЕсли вы обновили свою «Комплексную» 1С 7.7 (она же «Бухгалтерия + Торговля + Склад + Зарплата + Кадры») на рубеже 2025/2026 годов для перехода на ставку НДС 22%, то при формировании книги продаж вас может ждать неприятный сюрприз: отчет пуст.\u003c/p\u003e\n\u003ch3 id=\"в-чем-причина\"\u003eВ чем причина?\u003c/h3\u003e\n\u003cp\u003eНовую форму отчета утвердили только в конце января 2026 года. В «новогоднее» обновление она физически не могла попасть.\u003c/p\u003e\n\u003cp\u003eКонечно, можно поставить официальный апдейт от апреля 2026-го. Но для многих это означает мучительный перенос доработок конфигурации и солидный счет от программиста. А отчетность нужно сдавать уже сейчас.\u003c/p\u003e\n\u003cp\u003eНа самом деле, полноценная печатная форма книги продаж в самой 1С вам сейчас, скорее всего, и не нужна. Вам нужен реестр выданных счетов-фактур (номера, даты, суммы) для загрузки в СБИС, Экстерн или «1С-Отчетность».\u003c/p\u003e\n\u003cp\u003eСпециально для этого случая я собрал «на коленке» простую внешнюю обработку. В ней всё примитивно, но она работает.\u003c/p\u003e\n\u003ch3 id=\"как-пользоваться\"\u003eКак пользоваться:\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eСкачайте файл \u003ca href=\"/blog/sales-ledger-2026/sales-ledger-2026.ert\"\u003esales-ledger-2026.ert\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eОткройте его в 1С (Файл -\u0026gt; Открыть).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eВыберите период (нужный квартал) и ваше юридическое лицо.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eНажмите «Сформировать».\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cdiv class=\"message success\"\u003eЕсли я сэкономил вам много времени и нервов, можете сказать \u003ca href=\"/thanks/\"\u003eспасибо\u003c/a\u003e.\u003cbr\u003e\nОно мне очень пригодится.\u003c/div\u003e\r\n\n\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003eЕсли что-то не заработало \u0026ndash; пишите. \u003ca href=\"/details-n-contacts/\"\u003eКонтакты\u003c/a\u003e в соответствующем разделе. Если у вас не «Комплексная», а обычная «Бухгалтерия» или «ТиС» с аналогичной проблемой \u0026ndash; тоже обращайтесь, адаптируем инструмент под ваши задачи.\u003c/p\u003e\n"
        },
        {
            "title": "Замена SIM-карты МТС с приключениями",
            "date_published": "2026-01-01T22:45:12+05:00",
            "date_modified": "2026-01-01T22:45:12+05:00",
            "id": "https://antivan.ru/blog/mts-sim-replacement/",
            "url": "https://antivan.ru/blog/mts-sim-replacement/",
            "content_html": "\u003cp\u003eНе будьте лохами, пользуйтесь лайфхакАми :-)\u003c/p\u003e\n\u003cp\u003eПосле потери телефона заменил SIM-карту. Стандартная процедура. Но заплатил за неё \u003cstrong\u003e100 рублей\u003c/strong\u003e. Раньше было бесплатно.\u003c/p\u003e\n\u003cp\u003eУже после пришло SMS: меняйте SIM через личный кабинет всего за \u003cstrong\u003e1 рубль\u003c/strong\u003e. Стало немного обидно: \u0026ldquo;\u003cem\u003eа чего бы менеджеру в салоне не предупредить о такой возможности?\u003c/em\u003e\u0026rdquo;. Тем более, что у меня доступ в ЛК организован независимо от того, есть SIM или нет.\u003c/p\u003e\n\u003cp\u003eТакже стало ясно, насколько МТС лжет, утверждая, что \u003cstrong\u003e100 рублей\u003c/strong\u003e за замену - это потому, что \u0026ldquo;\u003cem\u003eкарточки сейчас дорогие\u003c/em\u003e\u0026rdquo;. В 100 раз дешевле меняют же.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/blog/mts-sim-replacement/IMG_5189.JPEG\" alt=\"Замена SIM, шаг 1\"\u003e\u003c/p\u003e\n\u003cp\u003eПрошло полтора месяца. SIM-карта отказала. Вспомнив о возможности заменить карточку экономнее, зашел в ЛК, сделал заказ, забрал в ближайшем офисе. Снова станность - код авторизации, который нужно назвать для выдачи заказа отправлен в SMS. Куда? На тот номер, который так удачно не работает. Хорошо, что у меня еще и электронная почта привязана к ЛК, так что дубль кода пришел и туда. Менеджер: \u0026ldquo;\u003cem\u003eЗаработает через 15 минут\u003c/em\u003e\u0026rdquo;.\u003c/p\u003e\n\u003cp\u003eИ телефон и SIM совершенно не основные и не критичные. Через 3-4 дня выяснилось, что связь на этом номере так и не заработала. Общение в офисе и с техподдержкой привели только к тому, что на балансе добавилось \u003cstrong\u003e150 рублей\u003c/strong\u003e. Но узнать об этом я могу только из ЛК, а не с использованием самой SIM.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/blog/mts-sim-replacement/IMG_5190.JPEG\" alt=\"Замена SIM, шаг 2\"\u003e\u003c/p\u003e\n\u003cp\u003eЕще один цикл заказа карточки через ЛК, визит в офис, \u0026ldquo;\u003cem\u003eждите 15 минут\u003c/em\u003e\u0026rdquo;, ожидание. И через сутки номер все ещё не работает.\u003c/p\u003e\n\u003cp\u003eНа всякий случай снова зашел в ЛК и только в этот раз заметил, что ранее не обращал внимания на раздел рядом с разделом оформления заказа SIM - активация SIM!\u003c/p\u003e\n\u003cp\u003eЧерез 1 минуту активация была завершена. Еще через 10-15 номер заработал.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/blog/mts-sim-replacement/IMG_5191.JPEG\" alt=\"Замена SIM, шаг 3\"\u003e\u003c/p\u003e\n\u003cp\u003eПри этом стало очевидно, что сотрудники МТС в салоне связи и на линии техподдержки или профнепригодны, или знают о ситуации, но предпочитают мариновать невнимательных абонентов, вынуждая нас перевыпускать SIM-карты по сверхвысокой цене.\u003c/p\u003e\n\u003cdiv class=\"message success\"\u003eЕсли я сэкономил вам много времени и нервов, можете сказать \u003ca href=\"/thanks/\"\u003eспасибо\u003c/a\u003e.\u003cbr\u003e\nОно мне очень пригодится.\u003c/div\u003e\r\n\n"
        },
        {
            "title": "Apache для самых маленьких. Настоящий сайт. Виртуальный хостинг. Шифрование",
            "date_published": "2025-11-10T00:53:43+05:00",
            "date_modified": "2025-11-10T00:53:43+05:00",
            "id": "https://antivan.ru/blog/2-apache-quick-start/",
            "url": "https://antivan.ru/blog/2-apache-quick-start/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003eВ \u003ca href=\"/blog/1-apache-quick-start/\"\u003eпредыдущей заметке\u003c/a\u003e цикла про \u003ca href=\"/tags/apache/\"\u003eApache\u003c/a\u003e мы запустили Apache на своем ПК.\nТеперь можем разместить статичный сайт/данные на собственном хосте, который будет отдавать его в локальной сети и даже в интернет при условии подключения услуги \u0026ldquo;белый IP\u0026rdquo; у провайдера и настройки \u0026ldquo;проброса порта\u0026rdquo; на сетевом оборудовании. \u003cbr\u003e\nВ локальной сети сайт будет отдаваться по IP-адресу вашего ПК, в сети интернет сайт будет доступен по вашему белому IP-адресу.\u003c/p\u003e\n\u003ch1 id=\"делаем-сайт-настоящим\"\u003eДелаем сайт \u003cem\u003eнастоящим\u003c/em\u003e\u003c/h1\u003e\n\u003cp\u003eА как отдавать сайт по имени, типа \u003cstrong\u003eмойсайт.рф\u003c/strong\u003e или \u003cstrong\u003emysite.ru\u003c/strong\u003e?\u003c/p\u003e\n\u003ch2 id=\"для-посетителей-извне\"\u003eДля посетителей извне\u003c/h2\u003e\n\u003cp\u003eНужно\n\u003ca href=\"https://www.webnames.ru/hosting?promocode=U146521T1-E333A32\" target=\"_blank\"\u003e\nзарегистрироваться у регистратора доменных имен\u003c/a\u003e\n(ссылка реферальная, в случае перехода и регистрации по ней вы будете получать скидки на покупки, а я бонус. Там можно купить хостинг и избавить себя от возни с собственным), купить доменное имя, прописать в \u003cem\u003eуправлении зоной\u003c/em\u003e A-запись со значением - вашим белым IP. \u003cbr\u003e\nПосле этого ваш сайт будет открываться в браузере по адресу-имени.\u003c/p\u003e\n\u003ch2 id=\"для-пользователей-вашей-локальной-сети\"\u003eДля пользователей вашей локальной сети\u003c/h2\u003e\n\u003cp\u003eВ вашем DNS-сервере/роутере с функцией DNS создайте A-запись: ваш домен -\u0026gt; локальнй IP адрес. Так пользователи вашей локальной сети, вводя в браузере обычное имя вашего сайта будут попадать на него, но не через интернет, а локально. Получаем удобство, т.к. не нужно использовать 2 разных адреса/имени для доступа к одному ресурсу, и снижение нагрузки на интернет канал, т.к. обращение к содержимому сайта будет проходить без использования внешнего подключения.\u003c/p\u003e\n\u003ch1 id=\"закончили\"\u003eЗакончили\u003c/h1\u003e\n\u003cp\u003eИтого. У нас есть запущенный Apache, который можно наполнять контентом. Этот Apache отвечает пользователям интернета и нашим локальным пользователям по адресу \u003cstrong\u003emysite.ru\u003c/strong\u003e. На этом можно было бы остановиться. НО!\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eЗапущенный сайт не имеет шифрования, что в современном мире недопустимо\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eДавайте сразу уж освоим функционал виртуального хостинга в Apache.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eДествуем в обратном порядке.\u003c/p\u003e\n\u003ch1 id=\"виртуальный-хостинг\"\u003eВиртуальный хостинг\u003c/h1\u003e\n\u003cp\u003eЕсли купить несколько доменных имен и прописать в их \u0026ldquo;Управлении зоной\u0026rdquo; запись A со значением - нашим белым IP, то наш сайт будет отдаваться при обращению по любому из этих доменных имен. Но это значит, что при обращении по любому из этих имен будет открываться один сайт.\u003c/p\u003e\n\u003cp\u003eApache позволяет одному серверу обрабатывать запросы к нескольким сайтам.\u003c/p\u003e\n\u003cp\u003eВ конфиге Apache полностью убираем этот блок:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Apache\" data-lang=\"Apache\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e#DocumentRoot \u0026#34;${SRVROOT}/htdocs\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e#\u0026lt;Directory \u0026#34;${SRVROOT}/htdocs\u0026#34;\u0026gt; # но у апача нет доступа ни к чему, этот раздел снимает ограничение с этой директории\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# если открываем директорию, а в ней нет файла по-умолчанию (будет задан позднее) - покажем список файлов (может быть угрозой безопасности, а может быть удобным доступом к скачиванию файлов), следовать за символическими ссылками\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e#    Options Indexes FollowSymLinks\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# все также не разрешаем переопределять параметры через .htaccess\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e#    AllowOverride None\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# читать разрешаем все\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e#    Require all granted\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# но только двумя методами, т.к никакого взаимодействия с пользователем в данный момент у нас нет\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e#    \u0026lt;LimitExcept GET HEAD\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e#        Require all denied\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e#    \u0026lt;/LimitExcept\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e#\u0026lt;/Directory\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eДобавляем:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Apache\" data-lang=\"Apache\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# этим блоком мы просим Apache на все запросы отдавать содержимое ${SRVROOT}/htdocs\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;VirtualHost\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e_default_:80\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    DocumentRoot \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;${SRVROOT}/htdocs\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;Directory\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;${SRVROOT}/htdocs\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Options Indexes FollowSymLinks\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        AllowOverride \u003cspan style=\"color:#66d9ef\"\u003eNone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Require \u003cspan style=\"color:#66d9ef\"\u003eall\u003c/span\u003e granted\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003e\u0026lt;LimitExcept\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003eGET HEAD\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            Require \u003cspan style=\"color:#66d9ef\"\u003eall\u003c/span\u003e denied\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/LimitExcept\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/Directory\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/VirtualHost\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# а этот блок указывает Apache обрабатывать запросы, адресованные конкретным сайтам, отдавать их содержимое из соответствующих каталогов\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# mysite1.ru\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;VirtualHost\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e*:80\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    DocumentRoot \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;${SRVROOT}/htdocs-virtual/mysite1.ru/\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ServerName mysite1.ru\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;Directory\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;${SRVROOT}/htdocs-virtual/mysite1.ru/\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      Require \u003cspan style=\"color:#66d9ef\"\u003eall\u003c/span\u003e granted\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      AllowOverride \u003cspan style=\"color:#66d9ef\"\u003eAll\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/Directory\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/VirtualHost\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# mysite2.ru\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;VirtualHost\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e*:80\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    DocumentRoot \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;${SRVROOT}/htdocs-virtual/mysite2.ru/\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ServerName mysite2.ru\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;Directory\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;${SRVROOT}/htdocs-virtual/mysite2.ru/\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      Require \u003cspan style=\"color:#66d9ef\"\u003eall\u003c/span\u003e granted\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      AllowOverride \u003cspan style=\"color:#66d9ef\"\u003eAll\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/Directory\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/VirtualHost\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eТеперь при размещении разной информации в каталогах \u003cem\u003e${SRVROOT}/htdocs-virtual/mysite1.ru/\u003c/em\u003e и \u003cem\u003e${SRVROOT}/htdocs-virtual/mysite2.ru/\u003c/em\u003e обращение к сайтам \u003cem\u003emysite1.ru\u003c/em\u003e и \u003cem\u003emysite2.ru\u003c/em\u003e будет давать разный результат. Подобных сайтов для себя можно сделать очень много, сколько есть ресурсов у вашего ПК.\u003c/p\u003e\n\u003ch1 id=\"шифрование\"\u003eШифрование\u003c/h1\u003e\n\u003ch2 id=\"получим-сертификат\"\u003eПолучим сертификат\u003c/h2\u003e\n\u003cp\u003eТут, как и всегда, есть несколько путей. Например, получить бесплатный при покупке хостинга (см. выше), купить у регистратора или у любого другого поставщика. В данной заметке мы пойдем третьим путем и научимся выпускать сертификат быстро и бесплатно для любого домена, принадлежащего нам.\u003c/p\u003e\n\u003cp\u003eВ Windows это делается с помощью утилиты \u003cstrong\u003ewin-acme\u003c/strong\u003e, скачиваем последнюю версию \u003ca href=\"https://www.win-acme.com/\"\u003eтут\u003c/a\u003e. У меня в примере утилита распакована в \u003cem\u003eE:\\win-acme\u003c/em\u003e, внутри еще создана папочка \u003cem\u003eE:\\win-acme\\certs\u003c/em\u003e, для хранения сертификатов наших сайтов.\u003c/p\u003e\n\u003cp\u003eС правами администратора выполняем команду:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-cmd\" data-lang=\"cmd\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ewacs.exe --target manual --host mysite1.ru \\\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  --validation filesystem --webroot \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;E:\\Apache24\\htdocs-virtual\\mysite1.ru\u0026#34;\u003c/span\u003e \\\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  --store pemfiles --pemfilespath \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;E:\\win-acme\\certs\u0026#34;\u003c/span\u003e \\\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  --installation none --script \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;E:\\Apache24\\bin\\httpd.exe -k restart\u0026#34;\u003c/span\u003e \\\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  --accepttos --emailaddress \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\u0026#34;\u003c/span\u003e --setuptaskscheduler --closeonfinish\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eЭта команда запрашивает сертификат, размещает подтверждающие владение доменом/хостинком файлы внутри сайта, удаляет их по завершении, выполняет все другие сопустствующие действия, в т.ч. создает задачу в планировщике, которая будет регулярно перевыпускать и этот сертификат, и все прочие, выпущенные на этом сервере.\u003c/p\u003e\n\u003cp\u003eВ \u003cem\u003eE:\\win-acme\\certs\u003c/em\u003e появятся несколько файлов:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-cmd\" data-lang=\"cmd\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emysite1.ru-chain.pem\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emysite1.ru-chain-only.pem\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emysite1.ru-crt.pem\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003emysite1.ru-key.pem\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"перенастроим-apache\"\u003eПеренастроим Apache\u003c/h2\u003e\n\u003cp\u003eСлушаем еще и \u003cem\u003e443\u003c/em\u003e порт, добавляем в конфиг:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-apache\" data-lang=\"apache\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Apache будет слушать и этот порт тоже\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eListen \u003cspan style=\"color:#ae81ff\"\u003e443\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eТакже нужно разрешить входящие соединения на 443 порт в локальном файрволе и добавить \u0026ldquo;проброс\u0026rdquo; этого порта в роутер.\u003c/p\u003e\n\u003cp\u003eПодключаем модули:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-apache\" data-lang=\"apache\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# для шифрования\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eLoadModule ssl_module modules/mod_ssl.so\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eLoadModule socache_shmcb_module modules/mod_socache_shmcb.so\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eВключаем кэш сессий\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Apache\" data-lang=\"Apache\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# --- Кэш для SSL-сессий ---\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eSSLSessionCache        shmcb:${SRVROOT}/logs/ssl_scache(512000)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eSSLSessionCacheTimeout \u003cspan style=\"color:#ae81ff\"\u003e3600\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eЭти строки указывают Apache помнить ssl сессию и не проводить \u0026ldquo;рукопожатие\u0026rdquo; повторно, т.к. оно затратно по ресурсам. Кэш в 512Кб позволит хранить пару сотен сессий. По умолчанию сессию предлагают хранить 300 секунд. Вы смотрите сами, какая модель поведения пользователей будет на вашем сайте.\u003c/p\u003e\n\u003cp\u003eПоследний штрих, по порядку, но не по значению. Добавляем:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Apache\" data-lang=\"Apache\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;VirtualHost\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e*:443\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    DocumentRoot \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;${SRVROOT}/htdocs-virtual/mysite1.ru/\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ServerName mysite1.ru\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;Directory\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;${SRVROOT}/htdocs-virtual/mysite1.ru/\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      Require \u003cspan style=\"color:#66d9ef\"\u003eall\u003c/span\u003e granted\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      AllowOverride \u003cspan style=\"color:#66d9ef\"\u003eAll\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/Directory\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    SSLEngine \u003cspan style=\"color:#66d9ef\"\u003eon\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    SSLCertificateFile \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;E:/win-acme/certs/mysite1.ru-crt.pem\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    SSLCertificateKeyFile \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;E:/win-acme/certs/mysite1.ru-key.pem\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/VirtualHost\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eЭтот блок - полная копия блока для 80го порта, но с включением \u0026ldquo;движка SSL\u0026rdquo; и ссылками на сертификаты.\u003c/p\u003e\n\u003ch2 id=\"отказ-от-сайта-без-шифрования\"\u003eОтказ от сайта без шифрования\u003c/h2\u003e\n\u003cp\u003eЕсли у нас есть сайт, который открывается и по незащищенному каналу, и по защищенному, возникает вопрос, а зачем нам, вообще-то, незащищенный канал?\u003c/p\u003e\n\u003cp\u003eПодключаем модуль переадрессации:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Apache\" data-lang=\"Apache\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eLoadModule rewrite_module modules/mod_rewrite.so\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eИзменяем блок обработки запросов на порт 80 для нашего сайте:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Apache\" data-lang=\"Apache\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;VirtualHost\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e*:80\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    ServerName mysite1.ru\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    RewriteEngine \u003cspan style=\"color:#66d9ef\"\u003eOn\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    RewriteCond %{HTTPS} !=on\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/VirtualHost\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eТеперь попытка открытия любой страницы сайта по незащищенному протоколу будет переадрессовываться на такую же страницу, только по защищенному протоколу.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eВот теперь всё! Вы готовы стать хостинг-провайдером статических сайтов :-)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eДругие статьи о конфигурировании Web-сервера Apache можно найти по тегу \u003ca href=\"/tags/apache/\"\u003eapache\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"message success\"\u003eЕсли я сэкономил вам много времени и нервов, можете сказать \u003ca href=\"/thanks/\"\u003eспасибо\u003c/a\u003e.\u003cbr\u003e\nОно мне очень пригодится.\u003c/div\u003e\r\n\n"
        },
        {
            "title": "Windows XP SP3 English version, x86",
            "date_published": "2025-10-08T18:24:35+05:00",
            "date_modified": "2025-10-08T18:24:35+05:00",
            "id": "https://antivan.ru/blog/windows-xp-sp3-enu/",
            "url": "https://antivan.ru/blog/windows-xp-sp3-enu/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003eЕсли вы вдруг ищите, но не можете найти, то вот вам \u003ca href=\"http://xpsp.dlservice.microsoft.com/download/d/3/0/d30e32d8-418a-469d-b600-f32ce3edf42d/WindowsXP-KB936929-SP3-x86-ENU.exe\"\u003eдва\u003c/a\u003e \u003ca href=\"http://download.windowsupdate.com/msdownload/update/software/svpk/2008/04/windowsxp-kb936929-sp3-x86-enu_c81472f7eeea2eca421e116cd4c03e2300ebfde4.exe\"\u003eварианта\u003c/a\u003e.\u003c/p\u003e\n"
        },
        {
            "title": "Проблема с \"КриптоПро ЭЦП Browser plug-in\"",
            "date_published": "2025-09-26T18:23:10+05:00",
            "date_modified": "2025-09-26T18:23:10+05:00",
            "id": "https://antivan.ru/blog/cryptopro-plug-in-trouble/",
            "url": "https://antivan.ru/blog/cryptopro-plug-in-trouble/",
            "content_html": "\u003cp\u003eДата заметки \u0026ndash; \u003cem\u003e26.09.2025\u003c/em\u003e, возможно описываемая проблема или способ решения уже не актуальны.\u003c/p\u003e\n\u003cp\u003eДля устранения возникших трудностей иногда действительно нужно скачать и установить \u003ca href=\"https://www.cryptopro.ru/products/cades/plugin/get_2_0\"\u003eплагин\u003c/a\u003e с этой \u003ca href=\"https://www.cryptopro.ru/products/cades/plugin\"\u003eстраницы\u003c/a\u003e. Обратите внимание, там указаны два браузера, \u003ca href=\"https://browser.yandex.ru/corp/builds?refid=14702876\"\u003eЯндекс.Браузер для организаций\u003c/a\u003e и \u003ca href=\"https://www.cryptopro.ru/products/chromium-gost\"\u003eChromium-Gost\u003c/a\u003e, с которыми, якобы, проблем быть не должно. Так вот, бывают, но если вы совсем непрофессиональный пользователь, установка одного из них - это ваш путь.\u003c/p\u003e\n\u003cp\u003eЧаще всего проблема не в плагине, а в браузерном расширении. \u003cbr\u003e\n\u003cstrong\u003eСуть\u003c/strong\u003e описана \u003ca href=\"https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/466/0/podderzhk-rboty-cryptopro-extension-for-cades-browser-plug-in-v-google-chrome-i-yandex-browser\"\u003eтут\u003c/a\u003e. \u003cbr\u003e\nЕсли коротко, то нужно установить обе версии, доступные в данный момент. Вот \u003ca href=\"https://chromewebstore.google.com/detail/extension-for-cades-brows/pfhgbfnnjiafkhfdkmpiflachepdcjod?hl=ru\u0026amp;utm_source=ext_sidebar\"\u003eактуальная версия\u003c/a\u003e для всех Chromium-основанных браузерах (это почти все, кроме Internet Explorer, который уже не используется, и Firefox) и \u003ca href=\"https://support.cryptopro.ru/index.php?/Knowledgebase/Article/View/467\"\u003eинструкция\u003c/a\u003e для ручной установки устаревшей версии, в том числе для браузера \u003cem\u003eFirefox\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003eПосле установки этих двух расширений все должно заработать. Еще одно \u0026ldquo;но\u0026rdquo;. Если у вас Яндекс.Браузер, то убедитесь, что расширения выглядят так, как на скриншотах ниже: \u003cbr\u003e\nДолжно быть включено расширение актуальной версии из каталога Opera\n\u003cimg src=\"/blog/cryptopro-plug-in-trouble/2025-09-25_15-23-01.png\" alt=\"Должно быть включено расширение актуальной версии из каталога Opera\"\u003e\nНовое расширение должно быть отключено, а старое должно быть включено \u003cbr\u003e\n\u003cimg src=\"/blog/cryptopro-plug-in-trouble/2025-09-25_15-23-14.png\" alt=\"Новое расширение должно быть отключено, а старое должно быть включено\"\u003e\u003c/p\u003e\n\u003cdiv class=\"message success\"\u003eЕсли я сэкономил вам много времени и нервов, можете сказать \u003ca href=\"/thanks/\"\u003eспасибо\u003c/a\u003e.\u003cbr\u003e\nОно мне очень пригодится.\u003c/div\u003e\r\n\n\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003eА если у вас все равно \u003cem\u003eничего не получается\u003c/em\u003e, \u003ca href=\"/details-n-contacts/\"\u003eобращайтесь\u003c/a\u003e.\u003c/p\u003e\n"
        },
        {
            "title": "Web-разработка. Бургер-меню",
            "date_published": "2025-08-12T15:45:59+05:00",
            "date_modified": "2025-08-12T15:45:59+05:00",
            "id": "https://antivan.ru/blog/burger-menu/",
            "url": "https://antivan.ru/blog/burger-menu/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003eЗадача - меню для сайта, которое будет превращаться в \u0026ldquo;бургер\u0026rdquo; при уменьшении размера экрана (на мобильных устройствах, например), а этот \u0026ldquo;бургер\u0026rdquo; будет превращаться в обратно в меню по необходимости.\u003c/p\u003e\n\u003cp\u003eНадо? Разбираемся!\u003c/p\u003e\n\u003ch1 id=\"вариант-1\"\u003eВариант 1\u003c/h1\u003e\n\u003cp\u003eЭто самое начало. Тут будет только \u0026ldquo;бургер\u0026rdquo;-меню на базе CSS.\u003c/p\u003e\n\u003cp\u003eМожно \u003ca href=\"/blog/burger-menu/01.zip\"\u003eскачать\u003c/a\u003e файлы и распаковать, а можно создать их, скопировав из текста ниже.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eindex.html\u003c/em\u003e:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-HTML\" data-lang=\"HTML\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ehtml\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003elang\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ru\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ehead\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003emeta\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003echarset\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;UTF-8\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003emeta\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ename\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;viewport\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003econtent\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;width=device-width, initial-scale=1.0\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e\u0026gt;Бургер-меню\u0026lt;/\u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003elink\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003erel\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;stylesheet\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;style.css\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ehead\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003enav\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;nav\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003einput\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etype\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;checkbox\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eid\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu-toggle\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu-toggle\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003elabel\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efor\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu-toggle\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu-icon\u0026#34;\u003c/span\u003e\u0026gt;\u0026amp;#9776;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003elabel\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003eul\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;Главная\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;О нас\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;Услуги\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;Контакты\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;/\u003cspan style=\"color:#f92672\"\u003eul\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;/\u003cspan style=\"color:#f92672\"\u003enav\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ehtml\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003cem\u003estyle.css\u003c/em\u003e:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-CSS\" data-lang=\"CSS\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e { \u003cspan style=\"color:#75715e\"\u003e/* для всего документа, для нашего примера эти параметры не принципиальны */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003emargin\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* отключаем отступы от краев (внешние отступы) */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003efont-family\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003esans-serif\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* определяем шрифт без засечек */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003enav\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ebackground-color\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#333\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epadding\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e10\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e20\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* в навигационном блоки задаем внутренние отступы сверху-снизу и слева-справа */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu-icon\u003c/span\u003e { \u003cspan style=\"color:#75715e\"\u003e/* это стиль для единственного значка, собственно, \u0026#34;бургера\u0026#34; */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003efont-size\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e26\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ecolor\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003ewhite\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ecursor\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003epointer\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* превращаем курсор в \u0026#34;пальчик\u0026#34; для нажатия на ссылку */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e/* display: inline-block;  указываем, что наш \u0026#34;бургер\u0026#34; просто символ, но оставляем за собой право поработать с ним, как с блоком. в нашем случае, кажется, значения не имеет */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu-toggle\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* скрываем чекбокс */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* указываем, что объект с этим стилем просто не отображается */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003elist-style\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* задаем стиль списка, в нашем случае, просто отключаем маркеры */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003emargin\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* внешние отступы */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epadding\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* внутренние отступы */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e/*  flex-direction: column; */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ebackground-color\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#444\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eposition\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eabsolute\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* указываем абсолютные координаты для блока меню */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003etop\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e50\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* сверху отступаем (подбираем экспериментально) */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eleft\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* слева не отступаем, т.к. меню на всю ширину - ни к чему */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ewidth\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e100\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003e%\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* если это свойство совсем убрать, ширина выпадающего меню будет равна самому широкому элементу. Если делаем так, то и отступ слева можно задать */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eblock\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* тут указываем, что ссылка в меню, она же - элемент меню, будет на всю ширину */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epadding\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e12\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e20\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* внутренние отступы */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ecolor\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003ewhite\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003etext-decoration\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eborder-top\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003esolid\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e#555\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e:\u003cspan style=\"color:#a6e22e\"\u003ehover\u003c/span\u003e { \u003cspan style=\"color:#75715e\"\u003e/* немного меняем фон под текстом в меню при наведении */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ebackground-color\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#555\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e/* Показываем меню, если чекбокс включён */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu-toggle\u003c/span\u003e:\u003cspan style=\"color:#a6e22e\"\u003echecked\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e .\u003cspan style=\"color:#a6e22e\"\u003emenu-icon\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e .\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003einline\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eЧто тут происходит?\u003c/p\u003e\n\u003cp\u003eОтображается блок \u003cem\u003enav\u003c/em\u003e, в нем блок ввода \u003cem\u003echeckbox\u003c/em\u003e, потом \u003cem\u003elabel\u003c/em\u003e, содержащий один символ - \u0026ldquo;бургер\u0026rdquo;. Следом идет собственно, меню.\u003c/p\u003e\n\u003cp\u003eСтиль \u003cem\u003e.nav\u003c/em\u003e определяет, как будет отображаться блок \u003cem\u003enav\u003c/em\u003e и содержимое. Стиль \u003cem\u003e.menu-toggle\u003c/em\u003e определяет, что чекбокс не будет отрисован браузером.\n\u003cem\u003elabel\u003c/em\u003e через \u003cem\u003eid=\u0026ldquo;menu-toggle\u0026rdquo;\u003c/em\u003e и \u003cem\u003efor=\u0026ldquo;menu-toggle\u0026rdquo;\u003c/em\u003e отрисовываем \u0026ldquo;бургер\u0026rdquo; или любой другой символ, и связываем этот символ с чекбоксом,\nподразумевая, что нажимая на этот символ, мы щелкаем по чекбоксу. Стиль \u003cem\u003e.menu\u003c/em\u003e определяет, что наше меню - невидимое. Это все.\u003c/p\u003e\n\u003cp\u003eЧасть, где происходит магия, это:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-CSS\" data-lang=\"CSS\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu-toggle\u003c/span\u003e:\u003cspan style=\"color:#a6e22e\"\u003echecked\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e .\u003cspan style=\"color:#a6e22e\"\u003emenu-icon\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e .\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003einline\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eКлик по трем черточкам \u0026ldquo;бургер\u0026rdquo;-иконки меняет статус чекбокса и CSS-селектора \u003cem\u003e.menu-toggle:checked\u003c/em\u003e, код выше обрабатывается так - если селектор взведен, следом\nидет блок \u003cem\u003e.menu-icon\u003c/em\u003e, а следом блок \u003cem\u003e.menu\u003c/em\u003e, то вносим изменения в стиль \u003cem\u003e.menu\u003c/em\u003e, а конкретно \u003cem\u003edisplay: none\u003c/em\u003e меняем на \u003cem\u003edisplay: inline\u003c/em\u003e и меню становится видимым.\u003c/p\u003e\n\u003cp\u003eТут нужно оговориться, что ID с названием \u003cem\u003emenu-toggle\u003c/em\u003e и CSS-стиль с названием \u003cem\u003e.menu-toggle\u003c/em\u003e - это разные сущности, и могут называться по разному, но вот повелось\nтак, что они называются одинаково.\u003c/p\u003e\n\u003cp\u003eОткрываем в браузере \u003cem\u003eindex.html\u003c/em\u003e и видим наше меню:\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/blog/burger-menu/2025-08-12_15-57-26.png\" alt=\"меню\"\u003e\u003c/p\u003e\n\u003cp\u003eПо клику на \u0026ldquo;бургер\u0026rdquo; получаем меню:\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/blog/burger-menu/2025-08-12_15-57-37.png\" alt=\"меню\"\u003e\u003c/p\u003e\n\u003cp\u003eКазалось бы, на этом можно остановиться, но тут есть недостаток: меню закрывается только при клике на \u0026ldquo;бургер\u0026rdquo;, что неудобно.\u003c/p\u003e\n\u003ch1 id=\"вариант-2\"\u003eВариант 2\u003c/h1\u003e\n\u003cp\u003eМожно \u003ca href=\"/blog/burger-menu/02.zip\"\u003eскачать\u003c/a\u003e оба файла с примером.\u003c/p\u003e\n\u003cp\u003eВ \u003cem\u003eindex.html\u003c/em\u003e меняем блок \u003cem\u003enav\u003c/em\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-HTML\" data-lang=\"HTML\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003enav\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;nav\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003einput\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003etype\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;checkbox\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eid\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu-toggle\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu-toggle\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003elabel\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003efor\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu-toggle\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu-icon\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026amp;#9776;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003eul\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;Главная\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;О нас\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;Услуги\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;Контакты\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;/\u003cspan style=\"color:#f92672\"\u003eul\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;/\u003cspan style=\"color:#f92672\"\u003elabel\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003enav\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eПолучается, что список, непосредственно меню, теперь находится \u0026ldquo;внутри\u0026rdquo; \u003cem\u003elabel\u003c/em\u003e, наследуя его свойства.\u003c/p\u003e\n\u003cp\u003eЭто совершенно не обязательно, но для понимания того, как оно еще может быть отрисовано, в \u003cem\u003estyle.css\u003c/em\u003e меняем блок \u003cem\u003e.menu\u003c/em\u003e:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-CSS\" data-lang=\"CSS\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003elist-style\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003emargin\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epadding\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ebackground-color\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#444\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eposition\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eabsolute\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003etop\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e50\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eleft\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e10\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u0026ldquo;Магию\u0026rdquo; тоже меняем:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-CSS\" data-lang=\"CSS\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu-toggle\u003c/span\u003e:\u003cspan style=\"color:#a6e22e\"\u003echecked\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e+\u003c/span\u003e .\u003cspan style=\"color:#a6e22e\"\u003emenu-icon\u003c/span\u003e .\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eblock\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e\u003cimg src=\"/blog/burger-menu/2025-08-12_16-58-56.png\" alt=\"меню\"\u003e\u003c/p\u003e\n\u003cp\u003eПроблему не решили. Просто попробовали еще вариант.\u003c/p\u003e\n\u003ch1 id=\"вариант-3\"\u003eВариант 3\u003c/h1\u003e\n\u003cp\u003eВсе также можно \u003ca href=\"/blog/burger-menu/03.zip\"\u003eскачать\u003c/a\u003e теперь уже три файла с примером.\u003c/p\u003e\n\u003cp\u003eУпрощаем HTML и CSS, но добавляем JavaScript.\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-HTML\" data-lang=\"HTML\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ehtml\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003elang\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ru\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ehead\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003emeta\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003echarset\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;UTF-8\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003emeta\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ename\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;viewport\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003econtent\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;width=device-width, initial-scale=1.0\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e\u0026gt;Бургер-меню\u0026lt;/\u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003elink\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003erel\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;stylesheet\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;style.css\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ehead\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003enav\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;nav\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003ediv\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu-icon\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eid\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;burger\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026amp;#9776;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;/\u003cspan style=\"color:#f92672\"\u003ediv\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;\u003cspan style=\"color:#f92672\"\u003eul\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eid\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;Главная\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;О нас\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;Услуги\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;Контакты\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u0026lt;/\u003cspan style=\"color:#f92672\"\u003eul\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003enav\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003escript\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esrc\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;myScript.JavaScript\u0026#34;\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003escript\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ehtml\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eТот же блок \u003cem\u003enav\u003c/em\u003e, в нем значек \u0026ldquo;бургер\u0026rdquo; и меню, с присвоенными этим блокам ID. Подключили файл с кодом JavaScript.\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-CSS\" data-lang=\"CSS\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003emargin\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003efont-family\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003esans-serif\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003enav\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ebackground-color\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#333\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epadding\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e10\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu-icon\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003efont-size\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e26\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ecolor\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003ewhite\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ecursor\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003epointer\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003elist-style\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003emargin\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epadding\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ebackground-color\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#444\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eposition\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eabsolute\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003etop\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e50\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eleft\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e10\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ewidth\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e150\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e; \u003cspan style=\"color:#75715e\"\u003e/* фиксирует шириру выпадающего меню, если убрать, ширина меню установится по размеру самого широкого элемента */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eblock\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003epadding\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e12\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e20\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ecolor\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003ewhite\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003etext-decoration\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eborder-top\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003esolid\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e#555\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e:\u003cspan style=\"color:#a6e22e\"\u003ehover\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ebackground-color\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#555\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eactive\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003einline\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eВ этом CSS задаются стили для всех наших блоков. Появился \u0026ldquo;вложенный\u0026rdquo; стиль \u003cem\u003e.menu.active\u003c/em\u003e, по содержимому очень похожий на \u0026ldquo;магию\u0026rdquo; из предыдущих примеров. Он будет использоваться в JS.\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-JS\" data-lang=\"JS\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eburger\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;burger\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;menu\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#a6e22e\"\u003eburger\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eaddEventListener\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;click\u0026#39;\u003c/span\u003e, () =\u0026gt; {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eclassList\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etoggle\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;active\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  });\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#75715e\"\u003e// Опционально: закрытие меню при клике вне\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e\u003c/span\u003edocument.\u003cspan style=\"color:#a6e22e\"\u003eaddEventListener\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;click\u0026#39;\u003c/span\u003e, (\u003cspan style=\"color:#a6e22e\"\u003ee\u003c/span\u003e) =\u0026gt; {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (\u003cspan style=\"color:#f92672\"\u003e!\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eburger\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econtains\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003ee\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etarget\u003c/span\u003e) \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e!\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econtains\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003ee\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etarget\u003c/span\u003e)) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eclassList\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eremove\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;active\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e});\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eЭтим скриптом мы навешивам не страницу 2 ждуна кликов на странице: 1. Если кликаем на \u0026ldquo;бургер\u0026rdquo;, то производим переключение стиля \u003cem\u003e.menu\u003c/em\u003e на \u003cem\u003e.menu.active\u003c/em\u003e или обратно, 2. если кликаем мимо \u0026ldquo;бургера\u0026rdquo; или меню, удаляем из стиля \u003cem\u003e.active\u003c/em\u003e.\u003c/p\u003e\n\u003ch1 id=\"вариант-4\"\u003eВариант 4\u003c/h1\u003e\n\u003cp\u003eСкачать демонстрационные \u003ca href=\"/blog/burger-menu/04.zip\"\u003eфайлы\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-HTML\" data-lang=\"HTML\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e\u0026lt;!DOCTYPE html\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ehtml\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003elang\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;ru\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ehead\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003emeta\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003echarset\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;UTF-8\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003emeta\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ename\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;viewport\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003econtent\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;width=device-width, initial-scale=1.0\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e\u0026gt;Бургер-меню\u0026lt;/\u003cspan style=\"color:#f92672\"\u003etitle\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003elink\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003erel\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;stylesheet\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;style.css\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ehead\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003enav\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u0026lt;\u003cspan style=\"color:#f92672\"\u003ediv\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;logo\u0026#34;\u003c/span\u003e\u0026gt;Мое меню\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ediv\u003c/span\u003e\u0026gt;\u003cspan style=\"color:#75715e\"\u003e\u0026lt;!-- это элемент необязателен, но если его убрать, верстка меню в десктоп-режиме расползется, нужно будет бургер прижать вправо --\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u0026lt;\u003cspan style=\"color:#f92672\"\u003ediv\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eid\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;burger\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;burger\u0026#34;\u003c/span\u003e\u0026gt;\u003cspan style=\"color:#75715e\"\u003e\u0026lt;!-- \u0026amp;#9776; --\u0026gt;\u0026lt;!-- можно не рисовать бургер через CSS, а оставить символ --\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u0026lt;\u003cspan style=\"color:#f92672\"\u003espan\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;burger-line\u0026#34;\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003espan\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u0026lt;\u003cspan style=\"color:#f92672\"\u003espan\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;burger-line\u0026#34;\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003espan\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u0026lt;\u003cspan style=\"color:#f92672\"\u003espan\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;burger-line\u0026#34;\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003espan\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u0026lt;/\u003cspan style=\"color:#f92672\"\u003ediv\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u0026lt;\u003cspan style=\"color:#f92672\"\u003eul\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eid\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu\u0026#34;\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eclass\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;menu\u0026#34;\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;Главная\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;О нас\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;Услуги\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e            \u0026lt;\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\u0026lt;\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003ehref\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;#\u0026#34;\u003c/span\u003e\u0026gt;Контакты\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u0026lt;/\u003cspan style=\"color:#f92672\"\u003eul\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;/\u003cspan style=\"color:#f92672\"\u003enav\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u0026lt;\u003cspan style=\"color:#f92672\"\u003escript\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003esrc\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e\u003cspan style=\"color:#e6db74\"\u003e\u0026#34;myScript.JavaScript\u0026#34;\u003c/span\u003e\u0026gt;\u0026lt;/\u003cspan style=\"color:#f92672\"\u003escript\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u0026lt;/\u003cspan style=\"color:#f92672\"\u003ehtml\u003c/span\u003e\u0026gt;\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-CSS\" data-lang=\"CSS\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003ebody\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003emargin\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003efont-family\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003esans-serif\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003enav\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ebackground-color\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#444\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003epadding\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e10\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e20\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e/* включаем flexbox для навигационной панели.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003eпо-умолчанию это будет означать, что все элементы,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003eкоторые мы разместим тут, будут\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003eрасполагаться слева направо друг за другом */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eflex\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e/* в строке меню у нас будет 2 элемента: заголовок и меню.\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003eследующие 2 строки прижимают эти блоки к краям по горизонтали\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003eи центрируют по вертикали*/\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ejustify-content\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003espace-between\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ealign-items\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003ecenter\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003elogo\u003c/span\u003e { \u003cspan style=\"color:#75715e\"\u003e/* если убираем лого из HTML (не озаглавливаем меню), то и этот класс можно убрать */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ecolor\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#fff\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003efont-size\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e24\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003elist-style\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e/* меню у нас тоже располагается горизонтально */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eflex\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e/* последовательные элементы в flexbox режиме\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003eприжимаются друг к другу. задаем отступы */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003emargin-left\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e20\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ecolor\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#fff\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003etext-decoration\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003efont-size\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e18\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e:\u003cspan style=\"color:#a6e22e\"\u003ehover\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003ecolor\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#555\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003eburger\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eflex-direction\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003ecolumn\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ejustify-content\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003espace-around\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ewidth\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e30\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eheight\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e25\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ecursor\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003epointer\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e.\u003cspan style=\"color:#a6e22e\"\u003eburger-line\u003c/span\u003e { \u003cspan style=\"color:#75715e\"\u003e/* для рисования \u0026#34;бургера\u0026#34; через CSS */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ewidth\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e30\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eheight\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e5\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003ebackground-color\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#fff\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#66d9ef\"\u003eborder-radius\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e5\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e@\u003cspan style=\"color:#66d9ef\"\u003emedia\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e(\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003emax-width\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e:\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e530px\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e)\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    .\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003epadding\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ebackground-color\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e#444\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eposition\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eabsolute\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003etop\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e20\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eleft\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e0\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003ewidth\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e100\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003e%\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e/*        border-radius: 5px; */\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    .\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003eli\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003ea\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eblock\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#66d9ef\"\u003epadding\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e12\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e20\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#66d9ef\"\u003ecolor\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003ewhite\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#66d9ef\"\u003etext-decoration\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      \u003cspan style=\"color:#66d9ef\"\u003eborder-top\u003c/span\u003e: \u003cspan style=\"color:#ae81ff\"\u003e1\u003c/span\u003e\u003cspan style=\"color:#66d9ef\"\u003epx\u003c/span\u003e \u003cspan style=\"color:#66d9ef\"\u003esolid\u003c/span\u003e \u003cspan style=\"color:#ae81ff\"\u003e#555\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    .\u003cspan style=\"color:#a6e22e\"\u003eburger\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eflex\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    .\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eactive\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003edisplay\u003c/span\u003e: \u003cspan style=\"color:#66d9ef\"\u003eblock\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-JS\" data-lang=\"JS\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003eburger\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;burger\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003econst\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e=\u003c/span\u003e document.\u003cspan style=\"color:#a6e22e\"\u003egetElementById\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;menu\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003eburger\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eaddEventListener\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;click\u0026#39;\u003c/span\u003e, () =\u0026gt; {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eclassList\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etoggle\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;active\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e});\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e// Опционально: закрытие меню при клике вне\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e\u003c/span\u003edocument.\u003cspan style=\"color:#a6e22e\"\u003eaddEventListener\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;click\u0026#39;\u003c/span\u003e, (\u003cspan style=\"color:#a6e22e\"\u003ee\u003c/span\u003e) =\u0026gt; {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (\u003cspan style=\"color:#f92672\"\u003e!\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003eburger\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econtains\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003ee\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etarget\u003c/span\u003e) \u003cspan style=\"color:#f92672\"\u003e\u0026amp;\u0026amp;\u003c/span\u003e \u003cspan style=\"color:#f92672\"\u003e!\u003c/span\u003e\u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003econtains\u003c/span\u003e(\u003cspan style=\"color:#a6e22e\"\u003ee\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003etarget\u003c/span\u003e)) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#a6e22e\"\u003emenu\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eclassList\u003c/span\u003e.\u003cspan style=\"color:#a6e22e\"\u003eremove\u003c/span\u003e(\u003cspan style=\"color:#e6db74\"\u003e\u0026#39;active\u0026#39;\u003c/span\u003e);\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e});\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eJS тут вообще без изменений, HTML без существенных изменений. Интересное происходит в CSS. \u003cbr\u003e\nПри открытии на десктопе (широкое окно) мы отрисовываем горизонтальную линию меню (используем \u003cem\u003eFlexBox\u003c/em\u003e). Никаких выпадающих меню не нужно, JS не задействуется.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/blog/burger-menu/2025-08-13_17-19-02.png\" alt=\"меню без бургера, широкое окно\"\u003e\u003c/p\u003e\n\u003cp\u003eЕсли мы уменьшаем ширину окна до \u003cem\u003e530px\u003c/em\u003e и/или меньше или сразу открываем страницу на мобильном устройстве, \u0026ldquo;подгружаются\u0026rdquo; стили из блока \u003ccode\u003e@media (max-width: 530px)\u003c/code\u003e, подменяя собой те, что были объявлены ранее. \u0026ldquo;Бургер\u0026rdquo; мы отрисовываем, а меню прячем, меняя его свойства.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/blog/burger-menu/2025-08-13_17-19-31.png\" alt=\"меню с бургером при узком окне\"\u003e\u003c/p\u003e\n\u003cp\u003eКогда происходит клик по бургеру, отрисовывается меню в новом стиле, уже горизонтальное и на весь экран мобильного устройства. Закрывается меню по клику по бургеру и мимо бургера и меню.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/blog/burger-menu/2025-08-13_17-19-40.png\" alt=\"меню с бургером при узком окне\"\u003e\u003c/p\u003e\n\u003cp\u003eЗакончили.\u003c/p\u003e\n\u003cdiv class=\"message success\"\u003eМожете сказать \u003ca href=\"/thanks/\"\u003eспасибо\u003c/a\u003e.\u003cbr\u003e\nОно мне очень пригодится.\u003c/div\u003e"
        },
        {
            "title": "Apache для самых маленьких. Установка",
            "date_published": "2025-08-05T19:04:57+05:00",
            "date_modified": "2025-08-05T19:04:57+05:00",
            "id": "https://antivan.ru/blog/1-apache-quick-start/",
            "url": "https://antivan.ru/blog/1-apache-quick-start/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003eВо времена, когда почти все стало вебом, умение обращаться с Web-сервером - важно. Но Apache используется и в локальных сетях. Поэтому навыки его установки и настройки должны быть у каждого админа.\u003c/p\u003e\n\u003cp\u003eДалее по контексту будет понятно, с какой операционной системой мы работаем в данный момент. Но начнем с Windows, как наиболее распространенной. Если ты учишься, скорее всего у тебя именно эта ОС.\u003c/p\u003e\n\u003ch1 id=\"дистрибутив\"\u003eДистрибутив\u003c/h1\u003e\n\u003cp\u003eДля ОС Windows существует несколько сборок Apache. Не будем сейчас разбираться в том, что это за сборки, почему их много, кто их делает и зачем.\nПросто берем установочник \u003ca href=https://www.apachelounge.com/download/ target=\"_blank\"\u003eтут\u003c/a\u003e. Естественно, самый свежий, и под свою платформу Win64\\Win32.\u003c/p\u003e\n\u003cp\u003eМогут пригодиться \u003cstrong\u003evc_redist_x64\u003c/strong\u003e или \u003cstrong\u003evc_redist_x86\u003c/strong\u003e с этой же страницы.\u003c/p\u003e\n\u003ch1 id=\"распаковка\"\u003eРаспаковка\u003c/h1\u003e\n\u003cp\u003eИзвлекаем из архива папку \u003cstrong\u003eApache24\u003c/strong\u003e и кладем ее куда угодно, избегаем при этом путей с пробелами, кириллицей и прочими символами из нелатинского алфавита:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-cmd\" data-lang=\"cmd\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eC:\\Apache24\\\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eнас вполне устроит.\u003c/p\u003e\n\u003ch1 id=\"файл-конфигураци\"\u003eФайл конфигураци\u003c/h1\u003e\n\u003cp\u003eНужно отредактировать под себя файл:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-cmd\" data-lang=\"cmd\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003econf\\httpd.conf\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eДальше приведу минимальный рабочий конфиг с комментариями:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-Apache\" data-lang=\"Apache\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# куда мы все распаковали\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eDefine SRVROOT \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;C:/Apache24\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Все пути Apace будет строить от ServerRoot, ожидать исполняемые файлы, конфиг, библиотеки\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eServerRoot \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;${SRVROOT}\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Apache будет слушать этот порт\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eListen \u003cspan style=\"color:#ae81ff\"\u003e80\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# загружаем модули\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eLoadModule dir_module modules/mod_dir.so\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eLoadModule mime_module modules/mod_mime.so\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eLoadModule authz_core_module modules/mod_authz_core.so\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eLoadModule log_config_module modules/mod_log_config.so\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# этот адрес Apache будет показывать на некоторых страницах с ошибками\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eServerAdmin admin@example.com\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# по-умолчанию запрещаем апачу доступ ко всем папкам, и запрещаем переопределять это правило через .htaccess (об этом позднее)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;Directory\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e/\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    AllowOverride \u003cspan style=\"color:#66d9ef\"\u003enone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    Require \u003cspan style=\"color:#66d9ef\"\u003eall\u003c/span\u003e denied\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/Directory\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Метод HTTP TRACE* позволяет клиенту отправить запрос на сервер, и сервер возвращает полный полученный запрос обратно.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Цель метода: отладка и диагностика. Можно увидеть, какие заголовки проходят через прокси и серверы.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# TRACE может быть использован для Cross-Site Tracing (XST) атак, чтобы украсть куки или авторизационные данные, что создает проблема безопасности.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eTraceEnable \u003cspan style=\"color:#66d9ef\"\u003eoff\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Отключаем поддержку метода TRACE.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# После этого сервер не будет отвечать на TRACE-запросы, и любой попытка выполнить TRACE вернёт ошибку 405 Method Not Allowed.\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# отсюда будут отдаваться web-сервером файлы, при обращении по ip-адресу ПК или по localhost \u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eDocumentRoot \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;${SRVROOT}/htdocs\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;Directory\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;${SRVROOT}/htdocs\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e \u003cspan style=\"color:#75715e\"\u003e# но у апача нет доступа ни к чему, этот раздел снимает ограничение с этой директории\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# если открываем директорию, а в ней нет файла по-умолчанию (будет задан позднее) - покажем список файлов (может быть угрозой безопасности, а может быть удобным доступом к скачиванию файлов), следовать за символическими ссылками\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    Options Indexes FollowSymLinks\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# все также не разрешаем переопределять параметры через .htaccess\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    AllowOverride \u003cspan style=\"color:#66d9ef\"\u003eNone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# читать разрешаем все\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    Require \u003cspan style=\"color:#66d9ef\"\u003eall\u003c/span\u003e granted\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# но только двумя методами, т.к никакого взаимодействия с пользователем в данный момент у нас нет\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;LimitExcept\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003eGET HEAD\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Require \u003cspan style=\"color:#66d9ef\"\u003eall\u003c/span\u003e denied\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/LimitExcept\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/Directory\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# если модуль загружен, то выполняем блок\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;IfModule\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003edir_module\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#75715e\"\u003e# если пользователь обращается к директории, Apache ищет в ней файлы по порядку и первый найденный отдает\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    DirectoryIndex index.html index.htm default.htm\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/IfModule\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# этот блок говорит Apache, что файлы, начинающиеся на \u0026#34;.ht*\u0026#34;, а это чувствительные .htaccess, .htpasswd, .htconfig, отдавать нельзя\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# опция важная, даже если у нас сейчас таких файлов нет - оставляем на будущее\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;Files\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;.ht*\u0026#34;\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    Require \u003cspan style=\"color:#66d9ef\"\u003eall\u003c/span\u003e denied\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/Files\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# с логами будем разбираться позднее, пусть пишутся\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# тем не менее, не забываем контролировать размер, при большой нагрузке могут очень даже разрастись\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eErrorLog \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;logs/error.log\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eLogLevel \u003cspan style=\"color:#66d9ef\"\u003ewarn\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;IfModule\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003elog_config_module\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    LogFormat \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;%h %l %u %t \\\u0026#34;%r\\\u0026#34; %\u0026gt;s %b \\\u0026#34;%{Referer}i\\\u0026#34; \\\u0026#34;%{User-Agent}i\\\u0026#34;\u0026#34;\u003c/span\u003e combined\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    LogFormat \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;%h %l %u %t \\\u0026#34;%r\\\u0026#34; %\u0026gt;s %b\u0026#34;\u003c/span\u003e common\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;IfModule\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003elogio_module\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e      LogFormat \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;%h %l %u %t \\\u0026#34;%r\\\u0026#34; %\u0026gt;s %b \\\u0026#34;%{Referer}i\\\u0026#34; \\\u0026#34;%{User-Agent}i\\\u0026#34; %I %O\u0026#34;\u003c/span\u003e combinedio\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e\u0026lt;/IfModule\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    CustomLog \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;logs/access.log\u0026#34;\u003c/span\u003e common\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/IfModule\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# если Apache загрузил mime_module (а такую команду мы давали), загружаем mime-типы \u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# Apache использует эти данные, чтобы при отдаче файлов клиенту поставить правильный заголовок Content-Type\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# блок необязательный, но его отсутствие может вызвать проблемы. оставим\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;IfModule\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003emime_module\u003c/span\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    TypesConfig conf/mime.types\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    AddType application/x-compress .Z\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    AddType application/x-gzip .gz .tgz\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f92672\"\u003e\u0026lt;/IfModule\u0026gt;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch1 id=\"установка\"\u003eУстановка\u003c/h1\u003e\n\u003cp\u003eВ командной строке запускаем:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-cmd\" data-lang=\"cmd\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehttpd -k install\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eи, если все сделали правильно, на 80м порту никакая программа не запущена, не требуется установка дополнительных компонентов, то сообщений об ошибках не будет. Значит можно отрывать в браузере \u003ca href=\"http://locahost\"\u003ehttp://localhost\u003c/a\u003e и радоваться сообщению: \u003cstrong\u003eIt works!\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eКроме того, добавиться служба \u003cstrong\u003eApache2.4\u003c/strong\u003e, которая будет стартовать автоматически.\u003c/p\u003e\n\u003ch1 id=\"пост-установка\"\u003eПост-установка\u003c/h1\u003e\n\u003cp\u003eМы запустили Apache для локального использования. Можно \u0026ldquo;выкладывать\u0026rdquo; свой сайт и тестировать его. \u003cbr\u003e\nЕсли хотим, чтоб наш сайт был доступен из локальной сети, то нужно открыть 80й порт в файрволе/антивирусе. А если хотим, чтоб сайт был доступен из интернета, то нужно еще заказать у интернет провайдера услугу \u0026ldquo;белый IP\u0026rdquo; и на роутере настроить переадрессацию обращений на 80й порт на свой ПК.\u003c/p\u003e\n\u003cp\u003eВот так все.\u003c/p\u003e\n\u003cp\u003eДругие статьи о конфигурировании Web-сервера Apache можно найти по тегу \u003ca href=\"/tags/apache/\"\u003eapache\u003c/a\u003e.\u003c/p\u003e\n\u003cdiv class=\"message success\"\u003eЕсли я сэкономил вам много времени и нервов, можете сказать \u003ca href=\"/thanks/\"\u003eспасибо\u003c/a\u003e.\u003cbr\u003e\nОно мне очень пригодится.\u003c/div\u003e"
        },
        {
            "title": "Apache для самых маленьких",
            "date_published": "2025-08-05T18:46:41+05:00",
            "date_modified": "2025-08-05T18:46:41+05:00",
            "id": "https://antivan.ru/blog/0-apache/",
            "url": "https://antivan.ru/blog/0-apache/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003eСейчас практически все - это web-сервер и web-сайт или web-клиент. \u003cbr\u003e\nУмение устанавливать и настраивать Apache HTTP Server, один из самых популярных веб-серверов важно по многим причинам:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eРазвертывание веб-сайтов и приложений\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eApache позволяет размещать статические (HTML, CSS, JS) и динамические (PHP, Python, Perl) сайты.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eПодходит для блогов, корпоративных сайтов, интернет-магазинов и других проектов.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eГибкость и кастомизация\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eМожно настраивать виртуальные хосты (разные сайты на одном сервере).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eПоддержка модулей (например, mod_rewrite для ЧПУ, mod_ssl для HTTPS).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eГибкая настройка прав доступа, кеширования, балансировки нагрузки.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eБезопасность\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eУмение настраивать Apache включает защиту от атак (DDoS, инъекций), настройку SSL/TLS, ограничение доступа по IP и паролю.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eСовместимость и интеграция\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eРаботает с PHP, MySQL, PostgreSQL и другими технологиями.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eПоддерживает CGI, FastCGI, WSGI (для Python-приложений).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eОптимизация производительности\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eНастройка кеширования, сжатия (gzip), балансировки нагрузки.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eВозможность тонкой настройки под высокие нагрузки.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eПоддержка разных ОС\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eApache работает на Linux, Windows, macOS, что делает его универсальным.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eОсновы администрирования серверов\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eУстановка и настройка Apache — базовый навык для DevOps, системных администраторов и веб-разработчиков.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eГде применяется?\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e* Локальные серверы для разработки (например, XAMPP, LAMP).\r\n\r\n* Продакшн-серверы (хостинг сайтов).\r\n\r\n* Прокси-серверы, API-шлюзы.\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eЕсли вы работаете с вебом, знание Apache (или альтернатив, таких как \u003cem\u003eNginx\u003c/em\u003e) существенно расширит ваши возможности. 🚀\u003c/p\u003e\n\u003cp\u003eДа и в локальных сетях ему все чаще находится применение.\u003c/p\u003e\n\u003cp\u003eДавайте вместе изучать этот продукт, шаг за шагом. На этом сайте информация об Apache будет собрана по тегу \u003ca href=\"/tags/apache/\"\u003eapache\u003c/a\u003e.\u003c/p\u003e"
        },
        {
            "title": "iPhone/iPad, L2TP VPN, сбой соединения",
            "date_published": "2025-07-13T02:32:43+05:00",
            "date_modified": "2025-07-13T02:32:43+05:00",
            "id": "https://antivan.ru/blog/iphone_l2tp_error/",
            "url": "https://antivan.ru/blog/iphone_l2tp_error/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003eДобавил L2TP соединение на iPhone. Не работает. Пишет: \u0026ldquo;\u003cem\u003eСбой соединения. Повторите попытку подключения. Если проблема не устраняется, проверьте настройки и обратитесь к администратору сети.\u003c/em\u003e\u0026rdquo;\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/blog/iphone_l2tp_error/photo_2025-07-13_02-34-19.jpg\" alt=\"Сбой соединения. Повторите попытку подключения. Если проблема не устраняется, проверьте настройки и обратитесь к администратору сети.\"\u003e\u003c/p\u003e\n\u003cp\u003eВсе работают, а это - нет. В логах на сервере (Mikrotik) чисто, даже попыток соединения нет. Переключал WiFi/мобильная сеть - не работает, настроил в ПК с Windows - работает, настроил на iPad - не работает.\u003c/p\u003e\n\u003cp\u003eПерепроверил настройки - вроде все ОК.\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"/blog/iphone_l2tp_error/photo_2025-07-13_02-42-22.jpg\" alt=\"L2TP соединение\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eОказалось!\u003c/strong\u003e iOS не любит кавычку \u0026quot; в общем ключе IPSec. Изменил общий ключ соединения - заработало.\u003c/p\u003e\n\u003cdiv class=\"message success\"\u003eЕсли я сэкономил вам много времени и нервов, можете сказать \u003ca href=\"/thanks/\"\u003eспасибо\u003c/a\u003e.\u003cbr\u003e\nОно мне очень пригодится.\u003c/div\u003e\r\n\n\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003e\u003cstrong\u003ePS:\u003c/strong\u003e По пути выяснил, что у BSD систем и Windows принцип работы трассировки немного отличается. Ну чтож, пригодится когда-то и это знание.\u003c/p\u003e\n"
        },
        {
            "title": "Автоматическое преобразование *.xls в *.xlsx",
            "date_published": "2025-07-12T18:12:28+05:00",
            "date_modified": "2025-07-12T18:12:28+05:00",
            "id": "https://antivan.ru/blog/autoconvert-xls-to-xlsx/",
            "url": "https://antivan.ru/blog/autoconvert-xls-to-xlsx/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003eЕсли вы работаете с программами, которые до сих пор сохраняют файлы в формате Microsoft Excel 2003 и/или еще более старых (а это, например, все программы на платформе 1С версии 7.7), то наверняка вас раздражает регулярно пересохранять документ в новый формат, прежде чем вы сможете нормально с ним работать. А если таких файлов много? А если с такими файлами работает много людей в вашем офисе? Можете посчитать, сколько времени тратят ваши сотрудники/коллеги просто на пересохранение документов Excel?\u003c/p\u003e\n\u003ch2 id=\"решение\"\u003eРешение\u003c/h2\u003e\n\u003cp\u003eНа любом ПК в офисе, с установленным пакетом Microsoft Office 2007 и новее, создаете обменку, и запускаете скрипт PowerShell:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-PowerShell\" data-lang=\"PowerShell\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e[\u003cspan style=\"color:#66d9ef\"\u003eString\u003c/span\u003e]$PathToAnalise = \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;D:\\Обменка\\Счета\\\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e$excel = New-Object -ComObject Excel.Application\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eFor\u003c/span\u003e(  ;  ;  ) { \n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    Get-ChildItem -Path $PathToAnalise *.xls \u003cspan style=\"color:#f92672\"\u003e-File\u003c/span\u003e -Recurse -Attributes `\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Archive,Compressed,Encrypted,Hidden,Normal,ReadOnly,NotContentIndexed,SparseFile,System |\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ForEach-Object {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        [\u003cspan style=\"color:#66d9ef\"\u003eString\u003c/span\u003e]$filefullname = $_.DirectoryName + \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\\u0026#34;\u003c/span\u003e + $_.BaseName + \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;.xlsx\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (Test-Path -PathType Leaf -Path $filefullname) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                $ErrorActionPreference = \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;Ignore\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                Remove-Item -Path $_.FullName\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                $ErrorActionPreference = \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;SilentlyContinue\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        } \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           $EWB = $excel.Workbooks.Open($_.FullName)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           $EWB.SaveAs($_.DirectoryName + \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\\u0026#34;\u003c/span\u003e + $_.BaseName + \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;.xlsx\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e51\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           $_.DirectoryName + \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\\u0026#34;\u003c/span\u003e + $_.BaseName + \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;.xlsx\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           $EWB.Close()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           Remove-Item -Path $_.FullName\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }   \n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    Start-Sleep -s \u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eПредварительно, конечно же, исправляете значение переменной \u003cem\u003e$PathToAnalise\u003c/em\u003e на локальный путь к обменке. После этого любой XLS-документ, сохраненный в этом месте, будет автоматически преобразован в XLSX-документ в течение 3х секунд.\u003c/p\u003e\n\u003cp\u003eЕсли вам не нужна настолько быстрая реакция, то в стоке:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-PowerShell\" data-lang=\"PowerShell\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    Start-Sleep -s \u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eустановите число побольше.\u003c/p\u003e\n\u003cp\u003eТеперь любой сотрудник вашей компании или вашей сети может сохранить файл в этой обменке и через пару секунд получит файл в новом формате.\u003c/p\u003e\n\u003cp\u003eНужно иметь ввиду, что после запуска скрипта, он запускает процесс Excel и держит его в памяти операционной системы, что хорошо, если вы преобразуете много файлов - не нужно тратить ресурсы на запуск программы для обработки каждого нового файла, но может быть расточительно в случае, если вы такую автоматизацию используете, но файлы преобразуете очень нечасто. Также обратите внимание, что этот скрипт не желательно аварийно останавливать, так как процесс Excel не будет закрыт и останется в оперативной памяти. Заспустили и до перезагрузки ПК пусть работает.\u003cbr\u003e\nЕсли ваш случай - очень редкие XLS-файлы, нужно исправить код таким образом, чтоб он запускал Excel только тогда, когда в обменке появляется XLS-файл и закрывал его после перобразования:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-PowerShell\" data-lang=\"PowerShell\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e[\u003cspan style=\"color:#66d9ef\"\u003eString\u003c/span\u003e]$PathToAnalise = \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;D:\\Обменка\\Счета\\\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eFor\u003c/span\u003e(  ;  ;  ) { \n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    Get-ChildItem -Path $PathToAnalise *.xls \u003cspan style=\"color:#f92672\"\u003e-File\u003c/span\u003e -Recurse -Attributes `\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        Archive,Compressed,Encrypted,Hidden,Normal,ReadOnly,NotContentIndexed,SparseFile,System |\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        ForEach-Object {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        [\u003cspan style=\"color:#66d9ef\"\u003eString\u003c/span\u003e]$filefullname = $_.DirectoryName + \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\\u0026#34;\u003c/span\u003e + $_.BaseName + \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;.xlsx\u0026#34;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e (Test-Path -PathType Leaf -Path $filefullname) {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                $ErrorActionPreference = \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;Ignore\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                Remove-Item -Path $_.FullName\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e                $ErrorActionPreference = \u003cspan style=\"color:#e6db74\"\u003e\u0026#39;SilentlyContinue\u0026#39;\u003c/span\u003e;\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        } \u003cspan style=\"color:#66d9ef\"\u003eelse\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           $excel = New-Object -ComObject Excel.Application\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           $EWB = $excel.Workbooks.Open($_.FullName)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           $EWB.SaveAs($_.DirectoryName + \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\\u0026#34;\u003c/span\u003e + $_.BaseName + \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;.xlsx\u0026#34;\u003c/span\u003e, \u003cspan style=\"color:#ae81ff\"\u003e51\u003c/span\u003e)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           $_.DirectoryName + \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;\\\u0026#34;\u003c/span\u003e + $_.BaseName + \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;.xlsx\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           $EWB.Close()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           Remove-Item -Path $_.FullName\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           $excel.Quit()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e           Stop-Process -Name EXCEL\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        }   \n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    Start-Sleep -s \u003cspan style=\"color:#ae81ff\"\u003e3\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eТакже обратите внимание, что исходный файл уничтожается. Подразумеваю, что этот самый исходный файл вы в любой момент можете перевыгзузить. Если вам так не надо, скрипт придется переделать.\u003c/p\u003e\n\u003cdiv class=\"message success\"\u003eМожете сказать \u003ca href=\"/thanks/\"\u003eспасибо\u003c/a\u003e.\u003cbr\u003e\nОно мне очень пригодится.\u003c/div\u003e\r\n\n"
        },
        {
            "title": "RouterOS не передает (передает криво) options 66 и 67",
            "date_published": "2025-06-25T18:57:48+05:00",
            "date_modified": "2025-06-25T18:57:48+05:00",
            "id": "https://antivan.ru/blog/routeros-options-66-67/",
            "url": "https://antivan.ru/blog/routeros-options-66-67/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003e\u003cstrong\u003eДано:\u003c/strong\u003e Mikrotik/RouterOS в качестве DHCP сервера в сети.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eЗадача:\u003c/strong\u003e Требуется устройствам в сети выдавать различные комплекты \u003cem\u003eадрес tftp сервера (BOOTP, Next Server, Option 66)/путь к файлу загрузки (Boot File Name, option 67)\u003c/em\u003e.\u003c/p\u003e\n\u003cp\u003eСудя по форумам, которые читал, такое часто бывает нужно для загрузки VoIP-оборудования, но\u0026hellip;\u003cbr\u003e\n\u003cstrong\u003eМоя специфика:\u003c/strong\u003e В клиентской сети имею три WTWare-сервера с различными версиями файлов загрузки из-за специфики железа и периферийного оборудования, и три набора клиентов, которые подключаются к этим двум серверам.\u003c/p\u003e\n\u003cp\u003eКурил форумы. Пробовал разное. Но все оказалось довольно просто.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eКодом\u003c/strong\u003e\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode class=\"language-Microtik\" data-lang=\"Microtik\"\u003e/ip dhcp-server lease\r\nadd address=192.168.2.34 mac-address=00:24:8C:DA:C8:11 server=dhcp-server002\r\nadd address=192.168.2.3 mac-address=00:18:F3:8A:85:61 server=dhcp-server002\r\nadd address=192.168.2.2 mac-address=00:1B:FC:70:B2:31 server=dhcp-server002\r\n/ip dhcp-server network\r\nadd address=192.168.2.0/24 boot-file-name=\u0026#34;6.2.4\\\\wtware.pxe\u0026#34; dns-server=\\\r\n    192.168.2.254 gateway=192.168.2.254 next-server=192.168.2.217\r\nadd address=192.168.2.2/32 boot-file-name=\u0026#34;6.2.18\\\\wtware.pxe\u0026#34; dns-server=\\\r\n    192.168.2.254 gateway=192.168.2.254 netmask=24 next-server=192.168.2.1\r\nadd address=192.168.2.3/32 boot-file-name=\u0026#34;6.2.18\\\\wtware.pxe\u0026#34; dns-server=\\\r\n    192.168.2.254 gateway=192.168.2.254 netmask=24 next-server=192.168.2.1\r\nadd address=192.168.2.34/32 boot-file-name=\u0026#34;6.2.58\\\\wtware.pxe\u0026#34; dns-server=\\\r\n    192.168.2.254 gateway=192.168.2.254 netmask=24 next-server=192.168.2.31\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003cstrong\u003eИли то же самое картинками\u003c/strong\u003e\u003cbr\u003e\nВыдаем адреса нашим устройствам в разделе \u003cstrong\u003eDHCP Server - Leases\u003c/strong\u003e\n\u003cimg src=\"/blog/routeros-options-66-67/dhcp-lease-2.png\" alt=\"аренда2\"\u003e \u003cimg src=\"/blog/routeros-options-66-67/dhcp-lease-3.png\" alt=\"аренда3\"\u003e \u003cimg src=\"/blog/routeros-options-66-67/dhcp-lease-34.png\" alt=\"аренда34\"\u003e\u003c/p\u003e\n\u003cp\u003eВ разделе \u003cstrong\u003eDHCP Server - Network\u003c/strong\u003e у нас есть запись для всей сети. Поля \u003cstrong\u003eNext server\u003c/strong\u003e и \u003cstrong\u003eBoot file name\u003c/strong\u003e заполнены так, как нужно для бОльшей части наших клиентов.\n\u003cimg src=\"/blog/routeros-options-66-67/dhcp-network-whole.png\" alt=\"DHCP запись для всей сети\"\u003e\u003c/p\u003e\n\u003cp\u003eДля остальных клиентов заполняем \u0026ldquo;персональные\u0026rdquo; записи сетей, с указанием точного IP и без указания маски \u003cem\u003e/24\u003c/em\u003e (такое заполнение означает маску \u003cem\u003e/32\u003c/em\u003e, как видно из кода выше). Вот тут и указываем собственные настройки в полях \u003cstrong\u003eNext server\u003c/strong\u003e и \u003cstrong\u003eBoot file name\u003c/strong\u003e\n\u003cimg src=\"/blog/routeros-options-66-67/dhcp-network-2.png\" alt=\"запись2\"\u003e\n\u003cimg src=\"/blog/routeros-options-66-67/dhcp-network-3.png\" alt=\"запись3\"\u003e\n\u003cimg src=\"/blog/routeros-options-66-67/dhcp-network-34.png\" alt=\"запись34\"\u003e\u003c/p\u003e\n\u003cdiv class=\"message success\"\u003eЕсли я сэкономил вам много времени и нервов, можете сказать \u003ca href=\"/thanks/\"\u003eспасибо\u003c/a\u003e.\u003cbr\u003e\nОно мне очень пригодится.\u003c/div\u003e\r\n\n"
        },
        {
            "title": "256 ГБ M.2 NVMe накопитель Transcend MTE220S [TS256GMTE220S]",
            "date_published": "2025-06-23T15:33:47+05:00",
            "date_modified": "2025-06-23T15:33:47+05:00",
            "id": "https://antivan.ru/store/ts256gmte220s/",
            "url": "https://antivan.ru/store/ts256gmte220s/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003e\u003ca href=\"/store/\"\u003e\u0026lt;- вернутся к товарам\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"message error\"\u003e\u003cstrong\u003eЦена: 7 900 рублей\u003c/strong\u003e\u003c/div\u003e\r\n\n\u003cp\u003e\u003c/p\u003e\r\n\u003cfigure class=\"image\"\u003e\r\n\u003cimg src=\"/store/ts256gmte220s/5190b070fa9fc43e6788cc94cd963a34a908f2b1c427383b8f1829dc8bd06e75.jpg.webp\" loading=\"lazy\" alt=\"TS256GMTE220S\" width=\"400\" height=\"400\"\u003e\r\n\u003c/figure\u003e\r\n\n\u003cp\u003ePCIe 3.0 x4, чтение - 3300 Мбайт/сек, запись - 1100 Мбайт/сек, 3 бит TLC, NVM Express, \u003cstrong\u003eTBW - 550 ТБ\u003c/strong\u003e\u003c/p\u003e\n"
        },
        {
            "title": "Беспроводной 2D сканер штрих-кода МойPOS MSC-6687W2D HD",
            "date_published": "2025-06-23T15:07:00+05:00",
            "date_modified": "2025-06-23T15:07:00+05:00",
            "id": "https://antivan.ru/store/scan-mypos-msc-6687w2d-hd/",
            "url": "https://antivan.ru/store/scan-mypos-msc-6687w2d-hd/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003e\u003ca href=\"/store/\"\u003e\u0026lt;- вернутся к товарам\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"message error\"\u003e\u003cp\u003e\u003cstrong\u003eЦена: 6 740 рублей\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eцена может менятся\u003c/p\u003e\n\u003c/div\u003e\r\n\n\u003cp\u003e\u003c/p\u003e\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\r\n\r\n\t\r\n\t\t\u003cscript src=\"/shortcode-gallery/jquery-3.7.1.min.js\"\u003e\u003c/script\u003e\r\n\t\r\n\r\n\t\r\n\t\t\u003cscript src=\"/shortcode-gallery/lazy/jquery.lazy.min.js\"\u003e\u003c/script\u003e\r\n\t\r\n\r\n\t\u003cscript src=\"/shortcode-gallery/swipebox/js/jquery.swipebox.min.js\"\u003e\u003c/script\u003e\r\n\t\u003clink rel=\"stylesheet\" href=\"/shortcode-gallery/swipebox/css/swipebox.min.css\"\u003e\r\n\r\n\t\u003cscript src=\"/shortcode-gallery/justified_gallery/jquery.justifiedGallery.min.js\"\u003e\u003c/script\u003e\r\n\t\u003clink rel=\"stylesheet\" href=\"/shortcode-gallery/justified_gallery/justifiedGallery.min.css\"/\u003e\r\n\r\n\r\n\u003cstyle\u003e\r\n\t\r\n\r\n\t\r\n\u003c/style\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003cdiv id=\"gallery-9e598a36037a490ad347bf3ba5a7faf0-1-wrapper\" class=\"gallery-wrapper\"\u003e\r\n\u003cdiv id=\"gallery-9e598a36037a490ad347bf3ba5a7faf0-1\" class=\"justified-gallery\"\u003e\r\n\t\r\n\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\u003cdiv\u003e\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\u003ca href=\"/store/scan-mypos-msc-6687w2d-hd/gallery/aacd4f12.webp\"\r\n\t\t\t\t\tclass=\"galleryImg\"\r\n\t\t\t\t\t\r\n\t\t\t\t\t\u003e\r\n\t\t\t\t\t\u003cimg\r\n\t\t\t\t\t\twidth=\"375\" height=\"375\"\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tstyle=\"filter: blur(25px);\"\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tsrc=\"data:image/jpeg;base64,/9j/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4\u0026#43;JS5ESUM8SDc9PjsBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O//AABEIACAAIAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5\u0026#43;gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4\u0026#43;Tl5ufo6ery8/T19vf4\u0026#43;fr/2gAMAwEAAhEDEQA/AO8orn9Y1K4j1D7IjMqFM5HGDjvWLFrt3pt2s8qNJbhyrFX4Yc44/WsY1VKTijeVFxipP1O6orP07W7DVFH2acb\u0026#43;8bcMPw/wrQrYwK0\u0026#43;n21y5eVCSRg4JGaiuNF026thby2cfljoFG3H5VeoqVFLZFOUnuzidT8FT2ubjSpy4X5vLc4YfQ966Xw\u0026#43;1y\u0026#43;iWz3bu8rKSS/XGeM/hitGiruSf//Z\"\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tclass=\"lazy\"\r\n\t\t\t\t\t\t\tdata-src=\"/store/scan-mypos-msc-6687w2d-hd/gallery/aacd4f12_hu_17551b1bf5128ed.webp\"\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\u003e\r\n\t\t\t\t\u003c/a\u003e\r\n\t\t\t\u003c/div\u003e\r\n\t\t\r\n\t\r\n\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\u003cdiv\u003e\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\u003ca href=\"/store/scan-mypos-msc-6687w2d-hd/gallery/_MG_0965.jpg\"\r\n\t\t\t\t\tclass=\"galleryImg\"\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tdata-description=\"\u003cbr/\u003e \"\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\u003e\r\n\t\t\t\t\t\u003cimg\r\n\t\t\t\t\t\twidth=\"394\" height=\"348\"\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tstyle=\"filter: blur(25px);\"\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tsrc=\"data:image/jpeg;base64,/9j/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4\u0026#43;JS5ESUM8SDc9PjsBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O//AABEIABwAIAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5\u0026#43;gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4\u0026#43;Tl5ufo6ery8/T19vf4\u0026#43;fr/2gAMAwEAAhEDEQA/APZq4DxffeKLbxAI7Scw6cyDa6nGOOfcnNd/WX4kMKeHr2WaBZlihaTYwz0GayrQc42R0YaqqU7tJ3016eZi\u0026#43;E/E3225/s2W48\u0026#43;RQQWOd6sBnBz2x3/yOurzP4XWFhd313q0cGGVEMfbG8tnj1wor0ylRhKEFFu5NecZ1G4oKyPFjbfCeqE/8\u0026#43;zj9K16oa1pFtrulTabeNIIJsb/AC22twQev4VsYnFfB1f\u0026#43;JHcP6iJfyDf416JVDR9EsNCs/smnwCKPOTzksemSav0MD//Z\"\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tclass=\"lazy\"\r\n\t\t\t\t\t\t\tdata-src=\"/store/scan-mypos-msc-6687w2d-hd/gallery/_MG_0965_hu_d324ff09153a40e0.jpg\"\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\u003e\r\n\t\t\t\t\u003c/a\u003e\r\n\t\t\t\u003c/div\u003e\r\n\t\t\r\n\t\r\n\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\u003cdiv\u003e\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\u003ca href=\"/store/scan-mypos-msc-6687w2d-hd/gallery/_MG_00952.jpg\"\r\n\t\t\t\t\tclass=\"galleryImg\"\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tdata-description=\"Canon EOS 5D Mark II\u003cbr/\u003e50mm 1/40sec  ISO 800\"\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\u003e\r\n\t\t\t\t\t\u003cimg\r\n\t\t\t\t\t\twidth=\"394\" height=\"348\"\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tstyle=\"filter: blur(25px);\"\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tsrc=\"data:image/jpeg;base64,/9j/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4\u0026#43;JS5ESUM8SDc9PjsBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O//AABEIABwAIAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5\u0026#43;gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4\u0026#43;Tl5ufo6ery8/T19vf4\u0026#43;fr/2gAMAwEAAhEDEQA/APZqry31nBcJbzXUMc0n3I2kAZvoO9N1K\u0026#43;j03TLm\u0026#43;l5S3iaQj1wM4rxPxfeGGxhvLkLLqM9wrGXqc5yQPYdAO3FZzmotLqzanSc1KXRHq2reNtD0iQwvcm5nHWG2Adl\u0026#43;pzgfia1dL1KDV9Ohv7bd5UwJXcMHgkH9RXCeHPh9FewrqGqyHyZgJIraL5RzzliK76xsbfTbGKztU2QwrtRc5/WrTTVzOS5W0Ravpy6tpc9gz7FmXBO3PfuK8jv/AIbaqfEdlbtHO9qj5V1JeJRkZP8As/Q/hXtNFZzpqTvextSrumnGyaGQxJBCkSDCRqFUegFPoorU59z/2Q==\"\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tclass=\"lazy\"\r\n\t\t\t\t\t\t\tdata-src=\"/store/scan-mypos-msc-6687w2d-hd/gallery/_MG_00952_hu_d943984333df2afc.jpg\"\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\u003e\r\n\t\t\t\t\u003c/a\u003e\r\n\t\t\t\u003c/div\u003e\r\n\t\t\r\n\t\r\n\u003c/div\u003e\r\n\u003c/div\u003e\r\n\r\n\u003cscript\u003e\r\n\tif (!(\"HSCGjQuery\" in window)) {\r\n\t\tif (!window.jQuery) {\r\n\t\t\tthrow new Error(\"jQuery is not loaded, hugo-shortcode-gallery wont work without it!\");\r\n\t\t}\r\n\t\twindow.HSCGjQuery = window.jQuery.noConflict(true);\r\n\t}\r\n\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t;(function($) {\r\n\r\n\t\t$( document ).ready(() =\u003e {\r\n\t\t\tconst gallery = $(\"#gallery-9e598a36037a490ad347bf3ba5a7faf0-1\");\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\tlet swipeboxInstance = null;\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tgallery.on('jg.complete', () =\u003e {\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t$(() =\u003e {\r\n\t\t\t\t\t\t$('.lazy').Lazy({\r\n\t\t\t\t\t\t\tvisibleOnly: true,\r\n\t\t\t\t\t\t\tafterLoad: element =\u003e element.css({filter: \"none\", transition: \"filter 1.0s ease-in-out\"})\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t\r\n\r\n\t\t\t\tswipeboxInstance = $('.galleryImg').swipebox(\r\n\t\t\t\t\t$.extend({},\r\n\t\t\t\t\t\t{  }\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\t\t\t});\r\n\r\n\t\t\t\r\n\t\t\tgallery.justifiedGallery($.extend(\r\n\t\t\t\t{\r\n\t\t\t\t\trowHeight : \"150\",\r\n\t\t\t\t\tmargins : \"5\",\r\n\t\t\t\t\tborder : 0,\r\n\t\t\t\t\trandomize :  false ,\r\n\t\t\t\t\twaitThumbnailsLoad : false,\r\n\t\t\t\t\tlastRow : \"justify\",\r\n\t\t\t\t\tcaptions : false,\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t},\r\n\t\t\t\t{  }\r\n\t\t\t));\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t});\r\n\r\n\t\r\n\t\r\n\t\r\n\t})(window.HSCGjQuery)\r\n\u003c/script\u003e\r\n\n\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003eБеспроводной сканер МойPOS MSC-6687W2D с радио модулем 2.4 Ггц и модулем Bluetooth:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eРазрешение 1 мегапиксель – с легкостью читает 1D и 2D штрих-коды на экране и бумаге.\u003c/li\u003e\n\u003cli\u003eНе нужны драйвера - подключай и работай.\u003c/li\u003e\n\u003cli\u003eСупер батарея до 2200 мАч – время зарядки 3 часа, время непрерывной работы 24 часа\u003c/li\u003e\n\u003cli\u003eМожет работать на расстоянии: до 100 метров – на улице и до 40 метров помещении.\u003c/li\u003e\n\u003cli\u003eОснащен тремя светодиодными индикаторами: зеленый (свет декодера) красный (свет зарядки), синий (успешное подключение).\u003c/li\u003e\n\u003cli\u003eНеобходимую документацию и программное обеспечение для указанной модели вы можете найти по указанной \u003ca href=\"https://mertrade.ru/vse-tovary/periferiya/skaner_besprovodnoy_moypos_msc_6687w2d_/\"\u003eссылке\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n"
        },
        {
            "title": "1С: Предприятие 8. Штрих-М: Кассир 5.0. Базовая версия. Коробочная поставка",
            "date_published": "2025-06-23T13:07:00+05:00",
            "date_modified": "2025-06-23T13:07:00+05:00",
            "id": "https://antivan.ru/store/1c-cashier5-base-box/",
            "url": "https://antivan.ru/store/1c-cashier5-base-box/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003e\u003ca href=\"/store/\"\u003e\u0026lt;- вернутся к товарам\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"message error\"\u003e\u003cp\u003e\u003cstrong\u003eЦена: 7 400 рублей\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eцена может менятся\u003c/p\u003e\n\u003c/div\u003e\r\n\n\u003cp\u003e\u003c/p\u003e\r\n\u003cfigure class=\"image\"\u003e\r\n\u003cimg src=\"/store/1c-cashier5-base-box/1c-cashier5.png\" loading=\"lazy\" alt=\"1С: Предприятие 8. Штрих-М: Кассир 5.0. Базовая версия.\" width=\"400\" height=\"412\"\u003e\r\n\u003c/figure\u003e\r\n\n\u003ch2 id=\"описание\"\u003eОписание\u003c/h2\u003e\n\u003cp\u003e«Штрих-М: Кассир 5» – программный комплекс для сферы торговли с функционалом, который позволяет автоматизировать работу кассира. Продукт содержит функционал для автоматизации товароучета розницы и типовых операций при обслуживании клиентов, связанных с продажей товаров и услуг различных категорий в розничных магазинах и пунктах обслуживания. Решение совместимо с большим ассортиментом кассового оборудования, терминалов сбора данных и фискальных регистраторов, поддерживает работу с ЕГАИС и полностью отвечает требованиями Федерального закона № 54-ФЗ об использовании контрольно-кассовой техники. Программа может устанавливаться на станциях как с клавиатурным, так и сенсорным управлением.\u003c/p\u003e\n\u003ch3 id=\"работа-с-кассой\"\u003eРабота с кассой\u003c/h3\u003e\n\u003cp\u003eНа рабочем месте кассира можно выполнять следующее:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eРегистрировать продажу товаров и автоматически списывать их по номерам внутренней кодировки, нанесенным на упаковку штрих-кодам, с использованием горячих клавиш, визуально с отметкой позиций из перечня, по цене.\u003c/li\u003e\n\u003cli\u003eФиксировать возвраты по товарным наименованиям, считываемой кодированной информации, номеру чека, автоматически возвращать принятые товары на баланс с отнесением на складские остатки.\u003c/li\u003e\n\u003cli\u003eСнимать Z-отчет с гашением и выполнением таких регламентированных процедур, как закрытие кассовой смены, сдача выручки, обнуление сохраненных в кассовой машине данных об операциях и их перенос на фискальный накопитель либо защищенную контрольную электронную ленту.\u003c/li\u003e\n\u003cli\u003eСоздавать промежуточные X-отчеты без гашения для целей внутреннего контроля работы кассиров и мониторинга проведенных с начала смены операций.\u003c/li\u003e\n\u003cli\u003eВыводить на чековую ленту, печатать на принтере или сохранять в файл дополнительные отчеты для оценки финансовых и операционных показателей.\u003c/li\u003e\n\u003cli\u003eВносить наличность в кассу и выплачивать из нее, получать информацию о сумме в денежном ящике, получать фискальный чек коррекции для исправления данных о выполненных расчетах.\u003c/li\u003e\n\u003cli\u003eПринимать авансы, предоплату, кредитные платежи, оформлять отгрузку приобретенных в кредит и предоплаченных товаров.\u003c/li\u003e\n\u003cli\u003eРеализовывать единоразовые сертификаты с погашением при покупке и многоразовые, по которым товары оплачиваются бонусами.\u003c/li\u003e\n\u003cli\u003eПечатать товарные чеки, ценники, квитанции с использованием готовых шаблонов вкладных документов.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"скидки-и-надбавки\"\u003eСкидки и надбавки\u003c/h3\u003e\n\u003cp\u003eВ конфигурации можно производить настройки скидок и надбавок, устанавливать их предельные размеры. При продаже есть возможность вводить разовые и накопительные скидки по картам лояльности. Делается это вручную, с использованием фиксированных значений, автоматически по отдельным позициям или на всю сумму чека. Скидки могут назначаться по отдельным категориям товаров и типам оплат, вводиться в рамках проводимых акций в зависимости от состава чека. Можно устанавливать специальные цены на определенные товарные перечни.\u003c/p\u003e\n\u003ch3 id=\"открытие-и-закрытие-чеков\"\u003eОткрытие и закрытие чеков\u003c/h3\u003e\n\u003cp\u003eПо части операций с чеками в программе можно выполнять такие действия:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eПовторять введенные позиции.\u003c/li\u003e\n\u003cli\u003eКорректировать перечень набранных товаров.\u003c/li\u003e\n\u003cli\u003eПроизводить возврат и отмену до закрытия.\u003c/li\u003e\n\u003cli\u003eОбъединять одинаковые товарные наименования в одну позицию.\u003c/li\u003e\n\u003cli\u003eПросматривать содержание после закрытия.\u003c/li\u003e\n\u003cli\u003eВручную менять цены и количество товаров.\u003c/li\u003e\n\u003cli\u003eОтменять скидки и надбавки по позициям и сумме.\u003c/li\u003e\n\u003cli\u003eОткладывать закрытие и сохранять данные.\u003c/li\u003e\n\u003cli\u003eВыводить на печать чековые копии по операциям.\u003c/li\u003e\n\u003cli\u003eФормировать платежные документы на расход.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"взаимодействие-с-егаис\"\u003eВзаимодействие с ЕГАИС\u003c/h3\u003e\n\u003cp\u003eМожно фиксировать такие операции:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eРегистрировать реализацию алкогольных напитков.\u003c/li\u003e\n\u003cli\u003eФормировать журнал продажи алкоголя в розницу.\u003c/li\u003e\n\u003cli\u003eПодтверждать закупку спиртосодержащей продукции.\u003c/li\u003e\n\u003cli\u003eВести поштучный учет закупаемого и реализуемого спиртного.\u003c/li\u003e\n\u003cli\u003eПроводить инвентаризацию и оформлять списание товаров.\u003c/li\u003e\n\u003c/ul\u003e\n"
        },
        {
            "title": "1С:Розница 8. Базовая версия. Коробочная поставка",
            "date_published": "2025-06-23T13:07:00+05:00",
            "date_modified": "2025-06-23T13:07:00+05:00",
            "id": "https://antivan.ru/store/1c-retail-base-box/",
            "url": "https://antivan.ru/store/1c-retail-base-box/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003e\u003ca href=\"/store/\"\u003e\u0026lt;- вернутся к товарам\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"message error\"\u003e\u003cp\u003e\u003cstrong\u003eЦена: 4 900 рублей\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eцена может меняться\u003c/p\u003e\n\u003c/div\u003e\r\n\n\u003cp\u003e\u003c/p\u003e\r\n\u003cfigure class=\"image\"\u003e\r\n\u003cimg src=\"/store/1c-retail-base-box/1c-retail-base-box.jpg\" loading=\"lazy\" alt=\"1С: Предприятие 8. Штрих-М: Кассир 5.0. Базовая версия.\"\u003e\r\n\u003c/figure\u003e\r\n\n\u003ch2 id=\"описание\"\u003eОписание\u003c/h2\u003e\n\u003cp\u003eВсе, что нужно для торговли — в одной программе: продажи, товарный учет, аналитика, управление складом, персоналом и другие возможности. «1C:Розница» подходит для автоматизации отдельного магазина и розничной сети.\u003c/p\u003e\n\u003cp\u003eПодключите онлайн-кассу, сканер штрих-кодов и другое оборудование, работайте с маркированным товаром, продавайте онлайн через маркетплейсы и соцсети, обменивайтесь документами по ЭДО, анализируйте эффективность торговли — «1С:Розница» поможет упорядочить работу и вывести бизнес на новый уровень.\u003c/p\u003e\n\u003cp\u003e«1С:Розницу» можно использовать автономно или в связке с другими программами и мобильными решениями «1С».\u003c/p\u003e\n"
        },
        {
            "title": "Носители для электронной подписи (ЭЦП) Rutoken Lite (для получения ЭП в УЦ ФНС)",
            "date_published": "2025-06-23T11:56:25+05:00",
            "date_modified": "2025-06-23T11:56:25+05:00",
            "id": "https://antivan.ru/store/rutoken-lite/",
            "url": "https://antivan.ru/store/rutoken-lite/",
            "content_html": "\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003e\u003ca href=\"/store/\"\u003e\u0026lt;- вернутся к товарам\u003c/a\u003e\u003c/p\u003e\n\u003cdiv class=\"message error\"\u003e\u003cstrong\u003eЦена: 1 800 рублей\u003c/strong\u003e\u003c/div\u003e\r\n\n\u003cp\u003e\u003c/p\u003e\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\r\n\t\r\n\r\n\t\r\n\t\t\u003cscript src=\"/shortcode-gallery/jquery-3.7.1.min.js\"\u003e\u003c/script\u003e\r\n\t\r\n\r\n\t\r\n\t\t\u003cscript src=\"/shortcode-gallery/lazy/jquery.lazy.min.js\"\u003e\u003c/script\u003e\r\n\t\r\n\r\n\t\u003cscript src=\"/shortcode-gallery/swipebox/js/jquery.swipebox.min.js\"\u003e\u003c/script\u003e\r\n\t\u003clink rel=\"stylesheet\" href=\"/shortcode-gallery/swipebox/css/swipebox.min.css\"\u003e\r\n\r\n\t\u003cscript src=\"/shortcode-gallery/justified_gallery/jquery.justifiedGallery.min.js\"\u003e\u003c/script\u003e\r\n\t\u003clink rel=\"stylesheet\" href=\"/shortcode-gallery/justified_gallery/justifiedGallery.min.css\"/\u003e\r\n\r\n\r\n\u003cstyle\u003e\r\n\t\r\n\r\n\t\r\n\u003c/style\u003e\r\n\r\n\r\n\r\n\r\n\r\n\u003cdiv id=\"gallery-d16cea5ae4154d84ed38d67c189aafdc-1-wrapper\" class=\"gallery-wrapper\"\u003e\r\n\u003cdiv id=\"gallery-d16cea5ae4154d84ed38d67c189aafdc-1\" class=\"justified-gallery\"\u003e\r\n\t\r\n\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\u003cdiv\u003e\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\u003ca href=\"/store/rutoken-lite/gallery/rutoken02.webp\"\r\n\t\t\t\t\tclass=\"galleryImg\"\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tdata-description=\"Canon EOS 70D + EF-S60mm f/2.8 Macro USM\u003cbr/\u003e60mm f/13.0 1/200sec  ISO 100\"\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\u003e\r\n\t\t\t\t\t\u003cimg\r\n\t\t\t\t\t\twidth=\"600\" height=\"600\"\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tstyle=\"filter: blur(25px);\"\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tsrc=\"data:image/jpeg;base64,/9j/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4\u0026#43;JS5ESUM8SDc9PjsBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O//AABEIACAAIAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5\u0026#43;gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4\u0026#43;Tl5ufo6ery8/T19vf4\u0026#43;fr/2gAMAwEAAhEDEQA/AO6Z0X7zAfU04EEZHNYWoRSROwYsATww71Thu7q1bKSEr9cilcpRudTRWZZ61FPhJRsb1HStIEMMggg9xTE1YSSNJVKuoYHsayrrSCpMlsc\u0026#43;qHvWvRQK5xt7eCykEZi8lm/iYcZ9MnpU\u0026#43;la1eQuIWiM8RI\u0026#43;UD5lz711EsMU8ZjmjV0PVWGRUVrY21mgS3iCAcDufzqbDuf/Z\"\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tclass=\"lazy\"\r\n\t\t\t\t\t\t\tdata-src=\"/store/rutoken-lite/gallery/rutoken02_hu_3776ae67b6e4e30.webp\"\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\u003e\r\n\t\t\t\t\u003c/a\u003e\r\n\t\t\t\u003c/div\u003e\r\n\t\t\r\n\t\r\n\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\u003cdiv\u003e\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\u003ca href=\"/store/rutoken-lite/gallery/rutoken01.webp\"\r\n\t\t\t\t\tclass=\"galleryImg\"\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tdata-description=\"Canon EOS 70D + EF-S60mm f/2.8 Macro USM\u003cbr/\u003e60mm f/11.0 1/200sec  ISO 100\"\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\u003e\r\n\t\t\t\t\t\u003cimg\r\n\t\t\t\t\t\twidth=\"600\" height=\"600\"\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tstyle=\"filter: blur(25px);\"\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tsrc=\"data:image/jpeg;base64,/9j/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4\u0026#43;JS5ESUM8SDc9PjsBCgsLDg0OHBAQHDsoIig7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O//AABEIACAAIAMBIgACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5\u0026#43;gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4\u0026#43;Tl5ufo6ery8/T19vf4\u0026#43;fr/2gAMAwEAAhEDEQA/AO8orM1XW49LjV2hdwxwCOBWL/wnKf8APmf\u0026#43;\u0026#43;qTkkaRpTkrpHW0VzFv41hmmSL7K4Z2CjB6EmrJ8V26zmFraXcG2k5GM5xRzIUoSi7NFzU9Eg1NAkkroFOQFrIPga3z/AMfUn5V1NFHKhxqzirJnMw\u0026#43;C7eGZJVuHLIcjPrmrP/CKWrTGZribeW3HGMZzn0rdoo5UJzlLdn//2Q==\"\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tclass=\"lazy\"\r\n\t\t\t\t\t\t\tdata-src=\"/store/rutoken-lite/gallery/rutoken01_hu_cb35366785455cab.webp\"\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\u003e\r\n\t\t\t\t\u003c/a\u003e\r\n\t\t\t\u003c/div\u003e\r\n\t\t\r\n\t\r\n\u003c/div\u003e\r\n\u003c/div\u003e\r\n\r\n\u003cscript\u003e\r\n\tif (!(\"HSCGjQuery\" in window)) {\r\n\t\tif (!window.jQuery) {\r\n\t\t\tthrow new Error(\"jQuery is not loaded, hugo-shortcode-gallery wont work without it!\");\r\n\t\t}\r\n\t\twindow.HSCGjQuery = window.jQuery.noConflict(true);\r\n\t}\r\n\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t\r\n\t;(function($) {\r\n\r\n\t\t$( document ).ready(() =\u003e {\r\n\t\t\tconst gallery = $(\"#gallery-d16cea5ae4154d84ed38d67c189aafdc-1\");\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\tlet swipeboxInstance = null;\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tgallery.on('jg.complete', () =\u003e {\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t$(() =\u003e {\r\n\t\t\t\t\t\t$('.lazy').Lazy({\r\n\t\t\t\t\t\t\tvisibleOnly: true,\r\n\t\t\t\t\t\t\tafterLoad: element =\u003e element.css({filter: \"none\", transition: \"filter 1.0s ease-in-out\"})\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t\r\n\r\n\t\t\t\tswipeboxInstance = $('.galleryImg').swipebox(\r\n\t\t\t\t\t$.extend({},\r\n\t\t\t\t\t\t{  }\r\n\t\t\t\t\t)\r\n\t\t\t\t);\r\n\t\t\t});\r\n\r\n\t\t\t\r\n\t\t\tgallery.justifiedGallery($.extend(\r\n\t\t\t\t{\r\n\t\t\t\t\trowHeight : \"150\",\r\n\t\t\t\t\tmargins : \"5\",\r\n\t\t\t\t\tborder : 0,\r\n\t\t\t\t\trandomize :  false ,\r\n\t\t\t\t\twaitThumbnailsLoad : false,\r\n\t\t\t\t\tlastRow : \"justify\",\r\n\t\t\t\t\tcaptions : false,\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t},\r\n\t\t\t\t{  }\r\n\t\t\t));\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t});\r\n\r\n\t\r\n\t\r\n\t\r\n\t})(window.HSCGjQuery)\r\n\u003c/script\u003e\r\n\n\u003cp\u003e\u003c/p\u003e\r\n\u003cp\u003eUSB-токен Рутокен Lite обеспечит надежную защиту ваших данных при использовании электронной подписи (ЭЦП). Такой ключ может потребоваться при работе с банковскими или налоговыми сервисами, если настроена двухфакторная аутентификация. Зайти в рабочий кабинет в этом случае можно с помощью ключа и индивидуального PIN-кода.\nРутокен Lite безотказно работает на разных ОС, в том числе Linux, Apple macOS и GNU. Компактный ключ с размерами 58x16x8 мм выглядит, как обычный USB-накопитель, а также дополняется отверстием для подвеса. Использование рутокена повышает уровень безопасности по сравнению с обычным доступом по логину и паролю.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eУ данного товара присутствует сертификат ФСТЭК. Это означает, что Вы сможете его использовать при регистрации электронной подписи в ФНС.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eЭЦП с этого токена можно скопировать в ПК для повышения удобства и гибкости использования\u003c/strong\u003e\u003c/p\u003e\n"
        },
        {
            "title": "Запуск сайта. ConverDoc",
            "date_published": "2025-06-21T02:48:03+05:00",
            "date_modified": "2025-06-21T02:48:03+05:00",
            "id": "https://antivan.ru/blog/start/",
            "url": "https://antivan.ru/blog/start/",
            "content_html": "\u003cp\u003e\u0026ldquo;\u003ca href=\"/converdoc/\"\u003eConverDoc\u003c/a\u003e вышел на финишную прямую! 🚀\u0026rdquo;\u003c/p\u003e\n\u003cp\u003eСервис официально перешёл в коммерческую эксплуатацию — и к этому событию я полностью обновил сайт. Теперь всё стало ещё удобнее, быстрее и технологичнее.\u003c/p\u003e\n\u003cp\u003eЗаходите, тестируйте, пользуйтесь! 🔥\u003c/p\u003e\n"
        }
        ]
}
