Формат файла xml что это

Формат файла xml что это

Файлик с расширением XML (формат XML) — это расширяемый язык разметки. Непонятно? — Вот и меня данное определение вводит в ступор, а обычного новичка (который пытается освоить компьютер) такой ответ не устраивает. В данной заметке я хочу вам рассказать — что же за формат такой XML и как его можно открыть (и для чего он нужен).

На самом деле XML — самый простой текстовый документ, структура которого может состоять из пользовательских тегов или других описаний документа.

Что такое формат XML

XML — это язык разметки, который создан для удобства кодирования и чтения как машинами, так и простыми смертными людьми. Делается это с помощью тегов, которые формируют структура документа и его параметры.

Если сравнить его с HTML, то в целом, задачи решают одинаковые, только в HTML все эти теги жестко прописаны и жирный будет определяться как , то в случае с XML мы можем сделать жирный как , т.е. разработчики сами определяют эти теги.

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

Как открыть XML файл

Если вы впервые столкнулись с XML… не расстраивайтесь, формат очень распространенный и, раз уже мы знаем что это текст, то и открывается он любым текстовым редактором (только не вздумайте открывать его в MS Office Word)

Способ 1. Лучший текстовый редактор — Notepad++

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

Способ 2. Блокнот Windows

Если XML файл нужно отредактировать максимально быстро, то и самый простой блокнот сгодится. Кликните правой кнопкой мыши на файлике и в контекстном меню «Открыть с помощью…» и выберите в списке «Блокнот».

В обычном блокноте Windows, к сожалению, нет подсветки синтаксиса, что несколько затрудняет восприятие информации… но по быстрому подправить вполне сгодится.

Способ 3. Браузер

Если нет надобности в редактировании, то XML файл можно открыть только для чтения в любом браузере. Я использую браузер Яндекс, но можно использовать даже ненавистный многим Internet Explorer. Для этого кликните правой кнопкой по файлу и выберите пункт «Открыть с помощью», в списке найдите свой веб обозреватель…

Бывают такие ситуации, когда браузер попытается отобразить информацию согласно тегам… что нам совершенно не нужно — просто нажмите CTRL+ U для просмотра исходного кода документа.

Как можете видеть, браузер отображает более вменяемо информацию из XML файла в отличии от стандартного Блокнота.

Заключение

Вот мы и рассмотрели что такое XML файл и различные способы его открыть. Если разбирать вопрос более подробно, то многие читатели могут заметить, что в сети присутствует огромное количество онлайн сервисов для работы с XML — рассматривать их в разрезе данной заметки не вижу смысла, моя цель была рассказать как его просмотреть и отредактировать (по возможностями средствами самой ОС Windows)

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

Немного об XML

Сам по себе XML — это язык разметки, чем-то похожий на HTML, который используется на веб-страницах. Но если последний применяется только для вывода информации и её правильной разметки, то XML позволяет её структурировать определённым образом, что делает этот язык чем-то похожим на аналог базы данных, который не требует наличия СУБД.

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

Способ 1: Visual Studio

Вместо этого редактора кода от Microsoft можно использовать любой его аналог от других разработчиков. По факту Visual Studio является более расширенной версией обычного «Блокнота». Код теперь имеет специальную подсветку, ошибки выделяются или исправляются автоматически, также в программу уже загружены специальные шаблоны, которые позволяют упростить создание XML-файлов больших объёмов.

Для начала работы вам нужно создать файл. Нажмите по пункту «Файл» в верхней панели и из выпадающего меню выберите «Создать…». Откроется список, где указывается пункт «Файл».

В только что созданном файле уже будет первая строка с кодировкой и версией. По умолчанию прописана первая версия и кодировка UTF-8, которые вы можете поменять в любое время. Дальше для создания полноценного XML-файла вам нужно прописать всё то, что было в предыдущей инструкции.

По завершении работы снова выберите в верхней панели «Файл», а там из выпадающего меню пункт «Сохранить всё».

Способ 2: Microsoft Excel

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

Такой способ больше подойдёт тем, кто не хочет или не умеет работать с кодом. Однако в этом случае пользователь может столкнуться с определёнными проблемами при перезаписи файла в XML-формат. К сожалению, проделать операцию преобразования обычной таблицы в XML можно только на самых новых версиях MS Excel. Чтобы это сделать, используйте следующую пошаговую инструкцию:

  1. Заполните таблицу каким-либо контентом.
  2. Нажмите на кнопку «Файл», что в верхнем меню.

Откроется специальное окно, где нужно нажать на «Сохранить как…». Этот пункт можно найти в левом меню.

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

  • Теперь вам нужно указать название файла, а в разделе «Тип файла» из выпадающего меню выбрать
    «XML-данные».
  • Нажмите на кнопку «Сохранить».
  • Способ 3: Блокнот

    Для работы с XML вполне подойдёт даже обычный «Блокнот», однако пользователю, который не знаком с синтаксисом языка, придётся трудно, так как в нём нужно прописывать различные команды и теги. Несколько проще и значительно продуктивнее процесс будет идти в специализированных программах для редактирования кода, например, в Microsoft Visual Studio. В них есть специальная подсветка тегов и всплывающие подсказки, что значительно упрощает работу человеку, плохо знакомому с синтаксисом этого языка.

    Читайте также:  Поле объекта недоступно для записи вид движения

    Для этого способа не потребуется что-либо скачивать, так как в операционную систему уже встроен «Блокнот». Давайте попробуем сделать в нём простую XML-таблицу по данной инструкции:

      Создайте обычный текстовый документ с расширением TXT. Разместить его можно где угодно. Откройте его.

    Начните прописывать в нём первые команды. Для начала нужно задать всему файлу кодировку и указать версию XML, делается это следующей командой:

    Первое значение — это версия, её менять не обязательно, а второе значение — это кодировка. Рекомендуется использовать кодировку UTF-8, так как большинство программ и обработчиков работают с ней корректно. Однако её можно изменить на любую другую, просто прописав нужное название.

  • Создайте первый каталог в вашем файле, прописав тег и закрыв его таким образом .
  • Внутри этого тега теперь можно написать какой-нибудь контент. Создадим тег и присвоим ему любое имя, например, «Иван Иванов». Готовая структура должна быть такой:
  • Внутри тега теперь можно прописать более подробные параметры, в данном случае это информация о неком Иване Иванове. Пропишем ему возраст и должность. Выглядеть это будет так:

    Если вы следовали инструкции, то у вас должен получиться такой же код, как ниже. По завершении работы в верхнем меню найдите «Файл» и из выпадающего меню выберите «Сохранить как…». При сохранении в поле «Имя файла» после точки должно стоять расширение не TXT, а XML.

    Примерно так у вас должен выглядеть готовый результат:

    XML-компиляторы должны обработать этот код в виде таблицы с одной колонкой, где указаны данные о неком Иване Иванове.

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

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

    Отблагодарите автора, поделитесь статьей в социальных сетях.

    XML ( /ˌeks em ˈel/ англ. eXtensible Markup Language ) — расширяемый язык разметки. Рекомендован Консорциумом Всемирной паутины (W3C). Спецификация XML описывает XML-документы и частично описывает поведение XML-процессоров (программ, читающих XML-документы и обеспечивающих доступ к их содержимому). XML разрабатывался как язык с простым формальным синтаксисом, удобный для создания и обработки документов программами и одновременно удобный для чтения и создания документов человеком, с подчёркиванием нацеленности на использование в Интернете. Язык называется расширяемым, поскольку он не фиксирует разметку, используемую в документах: разработчик волен создать разметку в соответствии с потребностями к конкретной области, будучи ограниченным лишь синтаксическими правилами языка. Расширение XML — это конкретная грамматика, созданная на базе XML и представленная словарём тегов и их атрибутов, а также набором правил, определяющих какие атрибуты и элементы могут входить в состав других элементов. Сочетание простого формального синтаксиса, удобства для человека, расширяемости, а также базирование на кодировках Юникод для представления содержания документов привело к широкому использованию как собственно XML, так и множества производных специализированных языков на базе XML в самых разнообразных программных средствах.

    XML является подмножеством SGML.

    Содержание

    Язык XML [ править | править код ]

    Спецификация XML описывает язык и ряд вопросов, касающихся кодировки и обработки документов. Материал этой секции представляет собой сокращённое изложение описания языка в Спецификации XML, адаптированное для настоящей статьи.

    Нормативным считается английский вариант документа, поэтому основные термины приводятся с их английскими оригиналами.

    Перевод основных терминов в основном следует доступному в интернете переводу Спецификации на русский язык, исключение составляют термины tag и declaration. Для термина tag здесь используется перевод тег. Для термина declaration отдано предпочтение распространённому переводу объявление (против также распространённой кальки декларация).

    В литературе и интернете могут встречаться и иные переводы основных терминов.

    Физическая и логическая структуры документа [ править | править код ]

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

    С логической точки зрения документ состоит из комментариев (англ. comments ), объявлений (англ. declarations ), элементов (англ. elements ), ссылок на сущности (англ. character references ) и инструкций обработки (англ. processing instructions ). Всё это в документе структуризуется разметкой (англ. markup ).

    Физическая структура [ править | править код ]

    Сущность — мельчайшая часть в документе. Все сущности что-нибудь содержат, и у всех них есть имя (существуют исключения, напр. документная сущность). Проще говоря, термин «сущность» описывает «сущую вещь», «что-то» [6] .

    Документ состоит из сущностей, содержание которых — символы. Все они разделены на два типа: символьные данные (англ. character data ) и разметки. К разметке принадлежат: теги (англ. tags ), обозначающие границы элементов, объявления и инструкции обработки, включая их атрибуты (англ. attributes ), ссылки на сущности, комментарии, а также последовательности символов, обрамляющие секции «CDATA». Часть документа, не принадлежащая разметке, составляет символьные данные документа.

    Логическая структура [ править | править код ]

    Все составляющие части документа обобщаются в пролог и корневой элемент. Корневой элемент — обязательная часть документа, составляющая всю его суть (пролог, вообще говоря, может отсутствовать). Может включать (а может не включать) вложенные в него элементы и символьные данные, а также комментарии. Вложенные в корневой элемент элементы, в свою очередь, могут включать вложенные в них элементы, символьные данные и комментарии, и так далее. Пролог может включать объявления, инструкции обработки, комментарии. Его следует начинать с объявления XML, хотя в определённой ситуации допускается отсутствие этого объявления.

    Читайте также:  Как заменить несколько слов в ворде

    Элементы документа должны быть правильно вложены: любой элемент, начинающийся внутри другого элемента (то есть любой элемент документа, кроме корневого), должен заканчиваться внутри элемента, в котором он начался. Символьные данные могут встречаться внутри элементов как непосредственно так и в специальных секциях «CDATA». Объявления, инструкции обработки и элементы могут иметь связанные с ними атрибуты. Атрибуты используются для связывания с логической единицей текста пар имя-значение.

    Символы разметки [ править | править код ]

    Разметка всегда начинается символом и заканчивается символом > . Наряду с символами и > , специальную роль для разметки играет также символ & . Угловые скобки обозначают границы элементов, инструкций обработки и некоторых других последовательностей. Амперсанд позволяет выполнить замену текста при помощи сущностей (англ. entities ) [6] [7] .

    Решение проблемы неоднозначности разметки [ править | править код ]

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

    > & &

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

    Правило замены символов, используемых в разметке, на ими обозначаемые сущности не распространяется на символьные данные в секциях «CDATA», зато выполняется во всех остальных местах документа.

    Числовые ссылки на символы [ править | править код ]

    Числовые ссылки на символы указывают кодовую позицию символа в наборе символов документа. Числовые ссылки на символы могут принимать две формы [8] :

    1. синтаксис «&#D;», где D — десятичное число;
    2. cинтаксис «&#xH;» или «&#XH;», где H — шестнадцатеричное число (шестнадцатеричные числа в числовых символьных ссылках не чувствительны к регистру).

    Примеры числовых ссылок на символы:

    • å — (в десятичной форме) представляет букву «а» с маленьким кружком над ней (используется, например, в норвежском языке);
    • å — (в шестнадцатеричном) представляет собой тот же символ;
    • å — (в шестнадцатеричном) также представляет тот же символ;
    • И — (в десятичной форме) представляет заглавную букву кириллицы «I»;
    • — (в шестнадцатеричном) представляет китайский символ для воды;

    Имена [ править | править код ]

    В языке XML все имена должны начинаться с буквы, символа подчёркивания (_) или двоеточия (:) и продолжаться только допустимыми для имён символами, а именно они могут содержать только буквы, входящие в секцию букв кодировки Unicode, арабские цифры, дефисы, знаки подчёркивания, точки и двоеточия. Однако имена не могут начинаться со строки xml в любом регистре. Имена, начинающиеся с этих символов, зарезервированы для использования консорциумом W3C. Нужно помнить, что так как буквы не ограничены исключительно символами ASCII, то в именах можно использовать слова из родного языка.

    Пролог [ править | править код ]

    Объявление XML [ править | править код ]

    Объявление XML указывает версию языка, на которой написан документ. Поскольку интерпретация содержимого документа зависит от версии языка, то Спецификация предписывает начинать документ с объявления XML. В первой (1.0) версии языка использование объявления не было обязательным, в последующих версиях оно обязательно. Таким образом, версия языка определяется из объявления, и если объявление отсутствует, то принимается версия 1.0.

    Кроме версии XML,объявление может также содержать информацию о кодировке документа и «оставаться ли документу со своим собственным DTD, или с подключённым».

    Во всех этих примерах отсутствовал атрибут «standalone», который как раз и определяет, подключить ли документу описания разметки извне. По умолчанию он равен «no»:

    если XML-документ ссылается на другие DTD-файлы, которые описывают, что документ может содержать, вы должны указать standalone="no"

    если XML-документ не ссылается на другие файлы и будет пользоваться своим DTD, вы должны указать standalone="yes"

    Объявление типа документа [ править | править код ]

    Для объявления типа документа существует специальная инструкция !DOCTYPE . Она позволяет задать при помощи языка DTD, какие в документ входят элементы, каковы их атрибуты, какие сущности могут использоваться и кое-что ещё.

    Например, вот корректный документ:

    В нём есть корневой элемент Hello, world! , и с логической точки зрения документ существует. Однако он недействителен (англ. not valid ) [9] .

    При помощи Объявления типа документа (DTD) возможно описывать его содержание и логическую структуру, а также связывать с определённым элементом пару «имя — значение». Вот как выглядит пролог в записи Бэкуса — Наура [10] :

    После XML-объявления могут следовать комментарии, инструкции обработки или же пустые пространства [11] , но затем идёт Объявления типа документа, где «Name» — имя корневого тега, «ExternalID» — внешний идентификатор, а «intSubset» — объявление разметки или же ссылка на сущность. Как гласит спецификация, если внешний идентификатор объявляется вместе с внутренним объявлением, то последнее идёт перед первым [12] .

    Здесь « SYSTEM "hello.dtd" » — внешний идентификатор: адрес «hello.dtd» позволяет задействовать данные в документе «hello.dtd» как объявления разметки.

    Здесь же разметка была объявлена местно.

    Инструкция обработки [ править | править код ]

    Инструкции обработки (англ. processing instruction, PI ), позволяют размещать в документе инструкции для приложений. В следующем примере показана инструкция обработки, передающая xml-stylesheet-приложению (например, браузеру) инструкции в файле my-style.css посредством атрибута href:

    Комментарий [ править | править код ]

    Комментарии (англ. comment ) не относятся к символьным данным документа. Комментарий начинается последовательностью « », внутри не может встречаться комбинация символов «—». Символ & не используется внутри комментария в качестве разметки.

    Корневой элемент [ править | править код ]

    Элемент и его разметка [ править | править код ]

    Элемент (англ. element ) является понятием логической структуры документа. Каждый документ содержит один или несколько элементов. Границы элементов представлены начальным и конечным тегами. Имя элемента в начальном и конечном тегах элемента должно совпадать. Элемент может быть также представлен тегом пустого, то есть не включающего в себя другие элементы и символьные данные, элемента.

    Тег (англ. tag ) — конструкция разметки, которая содержит имя элемента.

    Читайте также:  Как установить стартовую страницу в мозиле

    Тег пустого элемента:

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

    Пример кулинарного рецепта, размеченного с помощью XML:

    Секция CDATA [ править | править код ]

    Секция CDATA не является логической единицей текста. Секция может встречаться в любом месте документа, где синтаксис позволяет размещать символьные данные. Секция начинается и завершается ]]> . Между этой разметкой находятся символьные данные, символьные данные при этом включают символы & в их непосредственной форме.

    Корректный документ [ править | править код ]

    Корректный (англ. well-formed ) документ соответствует всем общим правилам синтаксиса XML, применимым к любому XML-документу: правильная структура документа, совпадение имен в начальном и конечном теге элемента и т. п. Документ, который неправильно построен, не может считаться документом XML.

    Пространства имён [ править | править код ]

    Пример документа [ править | править код ]

    Регламентация работы с документами: правила, языки, программные интерфейсы [ править | править код ]

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

    Кодировка документов [ править | править код ]

    Спецификация требует, чтобы обрабатывающие программы поддерживали по крайней мере две кодировки Юникод: UTF-8 и UTF-16.

    XML-процессор и приложение [ править | править код ]

    Спецификация XML определяет понятия XML-процессор и приложение. XML-процессор (парсер) — программа, анализирующая разметку и передающая информацию о структуре документа другой программе — приложению.

    Спецификация XML налагает определённые требования на процессор, не касаясь требований к приложению.

    Действительный документ. Проверяющие и непроверяющие процессоры [ править | править код ]

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

    XML-процессоры делятся на два класса: проверяющие и непроверяющие.

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

    Непроверяющие процессоры не проверяют действительность документа, но обязанности по предварительной обработке документа, упомянутые выше, остаются за ними.

    Описание типов: языки схем [ править | править код ]

    Для описания типов документов используются языки схем (англ. schema language ). Поскольку XML является подмножеством языка SGML, то он унаследовал разработанный для SGML язык Document Type Definition (DTD). Позднее были разработаны и другие языки схем, наиболее известны из которых XML Schema, RELAX NG.

    Преобразование документа XML [ править | править код ]

    Для решения задачи преобразования документа XML в другую схему или другой формат предназначен язык XSLT.

    Формат для визуализации документа [ править | править код ]

    Для форматированного документа (документа, подготовленного к визуализации) предназначен формат XSL-FO.

    Языки запросов [ править | править код ]

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

    XQuery — язык программирования, ориентированный на работу с документами.

    Чтение XML: три варианта API [ править | править код ]

    Для чтения XML есть три варианта API [13] .

    Событийный API (event-driven API, push-style API) — XML-процессор читает XML; при определённом событии (появлении открывающего или закрывающего тега, текстовой строки, атрибута) вызывается callback-функция.

    • + Расходует мало памяти [13] .
    • + При обработке огромного XML есть стандартная точка, позволяющая мгновенно остановить обработчик [13] .
    • − Крайне сложен для прикладного программиста: приходится держать в памяти информацию, в каком месте документа мы находимся.
    • + Библиотека проста в программировании.
    • − Затруднена поддержка перекрёстных ссылок: надо организовать временное хранение строковых ссылок, а когда документ будет считан — преобразовать идентификаторы в указатели.
    • − При ошибке в XML в памяти остаётся полусозданная структура предметной отрасли; программист должен своими руками корректно уничтожить её.
    • − API только для чтения, для записи потребуется другой API.
    • ± Естественный выбор, когда из огромного XML надо извлечь немного данных [13] .
    • ± Естественный выбор, когда XML надо преобразовать в структуру предметной отрасли [13] .
    • Примеры библиотек: SAX, Expat

    Потоковый API (также pull-style API) — устроен на манер потоков ввода-вывода.

    • + Расходует мало памяти.
    • ± Информация, в каком месте документа мы находимся, неявно задаётся местом в потоке выполнения. Это серьёзно упрощает работу прикладного программиста. На продуманных API объём кода приближается к таковому для DOM.
    • − Библиотека сложна в программировании.
    • − Сложно сделать, чтобы «почти верные» XML с перепутанным порядком тегов работали правильно.
    • − Затруднена поддержка перекрёстных ссылок.
    • − При ошибке в XML в памяти остаётся полусозданная структура предметной отрасли; программист должен своими руками корректно уничтожить её.
    • − API только для чтения, для записи потребуется другой API.
    • Примеры библиотек: StAX

    Объектный API (Document Object Model, DOM, «объектная модель документа») — считывает XML и воссоздаёт его в памяти в виде объектной структуры.

    • − Расходует много памяти — намного больше, чем сам XML занимает на диске. На pugixml расход памяти втрое и более превышает длину XML.
    • + Прост для прикладного программиста.
    • + Библиотека проста в программировании.
    • + Зачастую удаётся распознать «почти верные» XML с перепутанным порядком тегов.
    • + Позволяет произвольный доступ к XML [13] . Это, например, упрощает работу с перекрёстными ссылками.
    • + При ошибке в XML в памяти остаётся полусозданная структура XML, которая будет автоматически уничтожена самой библиотекой.
    • + Общий API для чтения и записи.
    • ± Естественный выбор, когда объектом предметной области является сам XML: например, в веб-браузере[13] , XML-редакторе, в импортёре к программе-локализатору, который извлекает строки из XML произвольной структуры.
    • ± Естественный выбор, когда нужно загрузить XML, слегка переработать и сохранить [13] . Те части, которые трогать не нужно, не требуют никакого кода.
    • Примеры библиотек: JDOM, TinyXML, pugixml

    Бывают и гибридные API: внешние и маловажные части читаются потоковым методом, а внутренние и важные — объектным.

    Ссылка на основную публикацию
    Фиксированная шапка сайта при прокрутке
    Допустим у вас важная информация например контакты находятся в шапке и вы хотите что бы они всегда были на веду...
    Удаление последнего элемента списка
    Введение. Основные операции О дносвязный список – структура данных, в которой каждый элемент (узел) хранит информацию, а также ссылку на...
    Удаление дубликатов фотографий на русском бесплатно
    Здравствуйте Уважаемый Друг. У каждого из нас на компьютере хранится большое количество различных фотографий изображений и тому подобных картинок. Парой...
    Фиксированное меню при скролле
    Создаём эффект залипания при прокручивании страницы на блоках меню навигации, бокового виджета и меню с помощью jQuery и без него....
    Adblock detector