Для чего нужен контекстный селектор
Контекстные селекторы
При создании веб-страницы часто приходится вкладывать одни теги внутрь других. Чтобы стили для этих тегов использовались корректно, помогут селекторы, которые работают только в определённом контексте. Например, задать стиль для тега только когда он располагается внутри контейнера
. Таким образом можно одновременно установить стиль для отдельного тега, а также для тега, который находится внутри другого.
Контекстный селектор состоит из простых селекторов разделенных пробелом. Так, для селектора тега синтаксис будет следующий.
В этом случае стиль будет применяться к Тегу2 когда он размещается внутри Тега1, как показано ниже.
Использование контекстных селекторов продемонстрировано в примере 10.1.
Пример 10.1. Контекстные селекторы
HTML5 CSS 2.1 IE Cr Op Sa Fx
В данном примере показано обычное применение тега и этого же тега, когда он вложен внутрь абзаца
. При этом меняется цвет и шрифт текста, как показано на рис. 10.1.
Рис. 10.1. Оформление текста в зависимости от вложенности тегов
Не обязательно контекстные селекторы содержат только один вложенный тег. В зависимости от ситуации допустимо применять два и более последовательно вложенных друг в друга тегов.
Более широкие возможности контекстные селекторы дают при использовании идентификаторов и классов. Это позволяет устанавливать стиль только для того элемента, который располагается внутри определённого класса, как показано в примере 10.2.
Пример 10.2. Использование классов
HTML5 CSS 2.1 IE Cr Op Sa Fx
Результат данного примера показан на рис. 10.2.
Рис. 10.2. Ссылки разных цветов
При таком подходе легко управлять стилем одинаковых элементов, вроде изображений и ссылок, оформление которых должно различаться в разных областях веб-страницы.
Вопросы для проверки
1. Какой цвет будет у текста списка в следующем коде?
2. В коде выше какого цвета будут маркеры перед текстом?
Урок 2. Селекторы и правила CSS
В прошлом уроке мы разбирали способы подключения CSS. Теперь перейдём к самому языку.
Как и любой другой язык, CSS имеет свой, однако предельно простой синтаксис. Состоит всего из двух компонентов:
Пример работы CSS
Код CSS (файл style.css)
Обратите внимание, не будет разницы, записывать блок стилей в строчку (h1,h2) или в столбик (body). И тот, и другой вариант будут работать. Выбирайте так, как Вам удобно.
Теперь создаём HTML-файл. Неважно, какое будет название, главное, чтобы путь к файлу с CSS кодом был указан верно. Указывается также как и в ссылках, путях к изображениям. В примере ниже указан путь (style.css) в ту же директорию, что и html-файл. То есть оба файла должны быть в одной папке.
Код HTML
Результат работы кода можно увидеть по ссылке ниже.
Если Вы измените какие-либо свойства в блоке стилей, то для обновления дизайна достаточно обновить страницу (Ctrl+F5). |
Селекторы CSS
В примерах выше в качестве селекторов использовались элементы страницы: body, h1, h2. Однако бывают ситуации, когда нужно работать с конкретным элементом, а не со всеми. Например, все заголовки были синего цвета, а один, в конце, чёрного. Для это существуют разные виды селекторов. Давайте рассмотрим их подробнее.
Идентификаторы
Важно отметить то, что идентификатор в теории даётся только одному элементу, которому хотим придать уникальные свойства. Да, в некоторых браузерах, если дать один и тот же идентификатор двум элементам, то может сработать. Однако, такое получится не во везде.
Если хотите задать стили для нескольких элементов, то следует использовать классы.
Классы
Названия (имя) для id и class могут быть одинаковыми, однако для CSS это всё равно будут разные элементы. В CSS к идентификатору обращается упоминанием символа #, а к классу . (точкой). |
В результате параграф с идентификатором (id) blue будет иметь текст синего цвета, элементы с class blue будут выделены полужирным шрифтом и синим цветом. А все остальные элементы p будут иметь шрифт чёрного цвета.
Как видите, класс можно применить несколько раз. Соответственно всё элементы будут иметь свойства описанные для данного класса.
Унифицированные селекторы
Контекстные селекторы
Соответственно синим будет выделен только тот полужирный текст (strong), который будет в параграфе (p).
Группировка селекторов
По тексту сложно понять. Лучше сразу к примеру.
В первой строке мы упоминаем сразу несколько элементов. Для того, чтобы обратиться сразу к нескольким элементам надо в селекторе перечислить их через знак , (запятую) и пробел. Перед последним перечисляемым элементом запятая и пробел НЕ нужны.
Последующими упоминаниями данных элементов мы добавляем им значения новых свойств. В данном случае размера шрифта.
В результате все заголовки будут синего цвета. Однако разных размеров, так как последующие записи в таблице стилей давали заголовкам разный размер.
Дочерние и контекстные CSS селекторы
Здравствуйте, уважаемые читатели! Продолжая тему CSS селекторов хочу предложить вашему вниманию описание дочерних и контекстных селекторов, а также их сравнительный анализ, поскольку по логике применения они очень похожи, хотя обладают некоторым отличием.
В своих публикациях я довольно подробно останавливался на различных видах CSS селекторов: id (идентификаторах), классах (class), селекторах тегов; а также различных вариациях селекторов атрибута. Кстати, в последней статье, где разбирались разные виды селектора атрибута, я довольно подробно описал, как мои теоретические выкладки можно тут же проверить, внося изменения в HTML и CSS код онлайн с помощью встроенного инструмента Google Chrome (скачать бесплатно последнюю версию, установить и настроить самый быстрый браузер). Такие средства редактирования имеют новейшие модификации всех популярных браузеров, включая плагин Firebug для Firefox (как установить, скачать и пользоваться).
Теоретический материал этого поста вы можете также изучать, делая редактирование любой страницы любого сайта! Для этого просто нажмите F12, если пользуетесь Google Chrome или Mozilla Firefox (скачать бесплатно Мазила Фаерфокс). А теперь представлю содержание тега p, на примере которого будем изучать дочерние и контекстные CSS селекторы:
Пользуясь вышеописанным инструментом для редактирования я вставил данный абзац прямо в настоящую статью, вписав соответствующий текст в левой части окна для редактирования, в результате чего текст этого параграфа появился в самом верху страницы:
Дочерним называется элемент, который расположен непосредственно внутри родительского. Прежде чем приступить непосредственно к теме, приведу картинку, которая отражает иерархию тегов в HTML документе на примере абзаца, текст которого приведен выше и который будем сегодня разбирать:
Такая конструкция еще называется деревом элементов. На этом рисунке наглядно представлена вложенность контейнеров, что и предполагает иерархические отношения между тегами. Тег абзаца p является дочерним элементом по отношению к основной единице блочной верстки тегу div. В то же время тег strong не является дочерним для div, так как раcполагается в контейнере p.
Дочерний CSS селектор
Дочерний селектор в дереве элементов находится всегда непосредственно внутри родительского элемента, в этом случае синтаксис написания CSS селектора будет следующим:
Стиль будет применен к Селектору 2, но только в том случае, если он является дочерним для Селектора 1. Разберем более подробно, используя приведенный выше скриншот с деревом элементов. Например, следуя синтаксису, можно установить такое правило:
Это правило будет влиять на последнее слово абзаца “курсивом”, поскольку именно оно заключено между открывающим и закрывающим тегами em. Тег em является дочерним для p, потому что размещается непосредственно внутри него, следовательно текст содержания, а именно слово “курсивом” будет окрашено в зеленый цвет.
Однако другое тег em не служит прямым потомком тега p, так как входит в состав тега strong, вследствии чего часть абзаца “теги форматирования em и strong” не будет окрашена.
Контекстный CSS селектор
Настала очередь разобраться, что такое контекстный селектор CSS. При верстке той или иной страницы сайта очень часто теги вкладываются один в другой. Для того, чтобы стили для таких элементов работали корректно, используются селекторы, которые действуют в каком-то контексте, отсюда и название.
Если для того, чтобы CSS правило было бы применено, дочерний селектор должен обязательно находиться непосредственно внутри родительского элемента (первый уровень вложенности), то для контекстного селектора это совершенно неважно и может быть применен любой уровень вложенности, все равно свойства элемента будут переданы от родителя. При этом синтаксис такой:
Как видим, контекстный селектор состоит из простых селекторов, разделенных пробелом. Для контекстных селекторов допускается применять два и более вложенных друг в друга тега. Составим теперь CSS правило для испытуемого параграфа, который я приводил выше:
Теперь содержание данного параграфа будет оформлено таким образом:
Как видите, зеленым окрашен не только текст части содержания абзаца, который непосредственно заключен в тег форматирования em, то есть слово “курсивом”, но и участок текста другого тега em, который входит еще и в состав тега strong. Это случилось потому, что действует правило с контекстным селектором, для которого не важен уровень вложенности в отличие от дочернего селектора. В этом и есть принципиальная разница дочернего и контекстного селектора.
Рассмотрим еще один пример взаимодействия контекстных и дочерних селекторов с нашим абзацем. Пропишем cледующие CSS правила для дочернего и контекстного селектора:
После этого наш абзац приобретает такое оформление:
Как видите, кусок текста, заключенный в теги em и strong, выкрашен в красный цвет, потому что для него справедливо правило контекстного селектора, то есть тег em заключен в контейнеры strong и div, а уровень вложенности, как уже было отмечено, не имеет значения.
Возникает вопрос: почему же слово “курсивом”, тоже являющееся содержанием em, окрашено в зеленый цвет? Ведь и для него правило контекстного селектора является актуальным. Но для этого участка текста абзаца справедливо и правило дочернего селектора, потому что оно не противоречит тому условию, что для дочернего селектора элемент должен непосредственно входить в состав тега p.
Дело в том, в CSS действует закон приоритета для CSS свойств, находящихся ниже. То есть в данном случае правило дочернего селектора находится в документе ниже, чем CSS стили, прописанные для контекстного селектора контейнера div. Поэтому слово “курсивом” стало зеленым. Если поменять их местами, то правило «p> em
Надеюсь, дорогие читатели, вы уяснили для себя нюансы использования дочерних и контекстных селекторов, в следующей статье рассмотрим еще парочку CSS селекторов, которые играют немаловажную роль, поэтому подпишитесь, кто это еще не сделал, на получение свежих материалов. Вообще я любитель классики во всех ее проявлениях, в том числе музыкальном. Однако с удовольствием слушаю хорошие произведения в стиле hip-hop, с одним из таких хочу поделиться с вами, содержание лучших из них иногда поражает глубиной содержания, хотя исполняют их молодые люди.
Что такое селектор в CSS
В этой статье мы рассмотрим способы определения стилей веб-страницы с помощью селекторов классов, селекторов потомков, псевдоклассов и селекторов идентификаторов.
Настройка
Селекторы классов
Можно использовать селектор классов, чтобы назначить стили для первого абзаца нашей страницы-примера. Сначала добавим к нужному абзацу атрибут класса:
Теперь стилизуем абзац
в файле CSS с помощью следующего кода:
Это правило применяется только к элементам с соответствующим атрибутом класса. Обратите внимание на точку (.) — префикс перед именем класса. Это отличает соседние селекторы CSS классов от селекторов типов:
Конвенция имен классов
Более полезные div
Атрибут class применяется не только к элементам
Конечно, для этого нам нужен соответствующий атрибут класса. Измените
Данный код позволяет использовать стили и для других элементов, а не только для кнопок.
Дивы контейнеров
Попробуем создать макет фиксированной ширины с использованием метода автополей. Сначала оберните весь документ в
Независимо от того, как будет изменяться размер окна браузера, веб-страница всегда будет иметь ширину 600 пикселей и выравниваться горизонтально по центру доступного пространства. Обратите внимание, что то же самое мы раньше делали для кнопки, но теперь мы делаем это с несколькими элементами одновременно, вложив их в общий контейнер:
Именно таким образом определяются более сложные макеты веб-страниц. Например, если на нашей странице была бы боковая панель, мы бы вложили все ее элементы в другой
Без CSS селекторов атрибутов классов, которые позволяют дифференцировать элементы
Повторное использование стилей классов
В результате этого мы получим вторую кнопку, которая выглядит так же, как и первая. Это значительно упрощает работу веб-разработчиков. Если мы когда-нибудь захотим изменить цвет кнопки, нужно будет сделать это только в одном месте, и все наши кнопки автоматически обновятся:
Изменение стилей классов
Мы добавляем еще один класс к нашей второй кнопке с помощью следующей разметки. Обратите внимание, что несколько классов помещаются в один атрибут класса через пробелы:
Порядок имеет значение
Хочу обратить ваше внимание на две важные вещи, касающиеся нашей второй кнопки:
Другими словами, следующие элементы эквивалентны:
Селектор потомков
Добавление этого правила в файл styles.css задаст отображение вертикальными ( римскими ) символами, тем самым определяя разницу с курсивным шрифтом, которым отображается весь абзац
. При этом остальных элементов , размещенных на странице это изменение не коснется:
Селекторы потомков не ограничиваются селекторами классов. Таким образом, можно комбинировать любую другую группу селекторов. Например, если нужно выбрать только элементы внутри заголовков:
Не переусердствуйте
Можно вложить CSS селектор потомков настолько глубоко, насколько нужно, но не увлекайтесь. Все становится запутанно, когда вы начинаете писать правила, которые выглядят так:
Эти стили нельзя будет повторно использовать, поскольку они соответствуют только следующей структуре HTML :
Если захотите применить эти стили к заголовку
, который не был обернут в тег
Псевдоклассы для ссылок
Основные стили ссылок
В отличие от CSS селекторов псевдоклассы начинаются с двоеточия, за которым следует имя класса. Наиболее распространенными псевдоклассами ссылок являются:
Состояние visited hover
Добавьте это правило ниже предыдущего фрагмента кода:
Состояние visited active
Эти два последних раздела позволят задавать стили посещенных ссылок полностью отдельно от не посещенных.
Псевдоклассы для кнопок
Элемент ссылки, а не элемент div
Если вы перезагрузите документ в браузере, то увидите, что некоторые стили больше не действуют. Хотя мы используем одни и те же классы. Это связано с тем, что является встроенным элементом, а также имеет значение цвета по умолчанию:
Нам нужно снова сделать этот элемент блочным и удалить часть стилей ссылок по умолчанию.
Стили кнопок
Обратите внимание на новые псевдоклассы :link и :visited в селекторе. Без них стиль браузера по умолчанию для a:link не изменился бы. Теперь оформим состояние при наведении курсора.
Обе наши кнопки при наведении курсора будут окрашиваться в более светлый голубой цвет. Сделаем так, чтобы кнопки становились темнее, когда пользователь нажимает на них с помощью псевдокласса :active :
Другая кнопка
Псевдоклассы для структуры
Это позволяет не затрагивать первые два элемента
на странице, не добавляя для последнего абзаца новый атрибут класса:
Использование этого метода вместо устаревших классов имеет свои преимущества и недостатки. Например, это работает только в том случае, если наш синопсис является элементом
. Если бы мы захотели создать синтаксис с несколькими параграфами, объединив много элементов
Предостережения
Но псевдоклассы немного сложнее. Контекстные селекторы CSS first-of-type и last-of-type действуют только внутри своего родительского элемента. Другими словами, p:first-of-type выбирает первый элемент
в каждом элементе контейнера.
У нас есть один общий
Это иллюстрирует сложность применения псевдоклассов для структуры. Первый элемент
Если вы не хотите затрагивать абзацы в боковой панели, и выбрать только первый
Селекторы идентификаторов
CSS селекторы идентификаторов – альтернатива селекторам классов. Они работают почти так же, но на странице может размещаться только один элемент с определенным идентификатором. Это означает, что вы не сможете повторно использовать стили.
Соответствующий селектор CSS должен начинаться с символа хэша ( # ). Добавление следующего кода в файл styles.css изменит цвет текста желтой кнопки:
По этой причине использовать CSS селекторы идентификаторов обычно не рекомендуется. Вместо этого используйте селекторы классов.
Фрагменты URL-адресов
Атрибуты id должны быть уникальными, поскольку на них указывают « фрагменты URL-адресов ». Фрагменты — это элементы, с помощью которых можно указать пользователям на определенную часть веб-страницы. Они выглядят как селекторы идентификаторов, расположенные в конце URL-адреса :
Если вы добавите первый вариант ссылки в разметку страницы selectors.html и кликните по ней, то увидите, что данный URL-адрес значится в адресной строке браузера. Чтобы увидеть, как осуществляется переход ко второй кнопке, нужно добавить на страницу немного произвольного контента или сделать высоту окна маленькой:
Специфичность CSS
Порядок имеет значение, когда речь идет о свойствах, прописанных во внешней таблице стилей. При прочих условиях правила применяются сверху вниз. Это позволяет переопределять правила CSS селекторов атрибутов предсказуемым образом:
Но не все селекторы CSS равнозначны. « Специфичность CSS » — это значимость, установленная для различных категорий селекторов. Это означает, что некоторые селекторы всегда будут переопределять другие независимо от того, какую позицию они занимают в таблице стилей.
Специфичность селекторов, которые мы рассматривали в этой статье, показана ниже: от максимальной до минимальной:
Иногда это приводит к путанице. Это настолько серьезная проблема, что была разработана целая методология под названием « BEM ». Суть BEM заключается в попытке обеспечить то, чтобы правила CSS были многоразовыми, сделав все селекторами классов. Это исключает возможность возникновения проблем.
Заключение
Пожалуйста, оставьте свои комментарии по текущей теме материала. Мы очень благодарим вас за ваши комментарии, подписки, отклики, лайки, дизлайки!
Дайте знать, что вы думаете по этой теме в комментариях. За комментарии, лайки, отклики, дизлайки, подписки огромное вам спасибо!
Селекторы CSS
В этой статье мы разберём различные виды селекторов. У каждого из них своя задача и каждый срабатывает лишь при соблюдении условий, и по этим условиям делятся на несколько видов:
1) Обычный селектор.
2) Контекстный селектор.
5) Селектор параметров.
Обсуждать обычный селектор мы не будем, потому что, во-первых, мы его обсуждали, а, во-вторых, это обычный HTML-тег, поэтому тут и сказать нечего.
А теперь подробно разберём контекстные селекторы, так как их используют, пожалуй, чаще всего. Они нужны для того, чтобы к элементу применялся стиль при условии, что данный элемент лежит внутри тега, который лежит внутри другого тега. Звучит запутанно, не спорю, но давайте разберёмся на примере
Заголовок в контейнере
тег1 тег2 <
свойство1: значение1;
свойство2: значение2;
>
И работает это так: если тег2 находится внутри тега 1, то элементы внутри тега2 примут свойства1 и свойства2 со значениями значение1 и значение2. А теперь пример CSS для примера выше.
div h2 <
font-weight: bold;
>
Такой стиль будет применён к примеру выше и «заголовок в контейнере» станет жирным. А если будет написано просто:
Заголовок
То стиль применён к этому элементу не будет, ведь он не находится внутри тега
Вопрос: для чего же нужны контекстные селекторы? Их Вы будете вынуждены использовать многократно, ввиду того, что на Вашей странице наверняка будет множество повторяющихся тегов (
, , , и прочие), и, разумеется, Вы захотите, чтобы у них был далеко не всегда одинаковый внешний вид. И вот тут и придут на помощь контекстные селекторы.
Селекторы ID тоже очень распространены. Они позволяют задать уникальный элемент на странице, и синтаксис объявления этого селектора следующий:
имятега#имя <
свойство1: значение1;
свойство2: значение2;
>
Теперь если тегу «имятега» имеет атрибут «id» со значением «имя«, то к элементам внутри тега «имятега» будет применён стиль.
Если «имятега» отсутствует (то есть селектор начинается с символа «#»), то тогда данный стиль может быть применён к любым тегам, у которых стоит атрибут «id» в значении «имя«.
И теперь HTML-код, к которому будет применён данный стиль:
Как видите, всё очень просто, однако есть одно большое НО! Используйте ОДИН идентификатор только ОДИН РАЗ на странице! Например, вот так писать нельзя:
Ещё один красный текст
В таких случаях надо создавать два идентификатора вот так:
Ещё один красный текст
Вот теперь будет правильно. Кстати, обратите внимание на «запятую» в описании селектора. Это частый приём для сокращения количества строк в стиле. Если у Вас два или более элемента имеют один и тот же стиль, то Вы можете через запятую перечислить все селекторы, а потом сразу для всех написать соответствующий стиль, как в примере выше.
Теперь о селекторе CLASS. Он очень похож на селектор ID, но его «имя» может использоваться несколько раз на странице. Общий синтаксис этого селектора следующий:
имятега.имя <
свойство1: значение1;
свойство2: значение2;
>
Таким образом, если у тега «имятега» стоит атрибут «class» со значением «имя«, то к элементам внутри будет применён данный стиль.
Аналогично, с селектором ID, если «имятега» не задано (то есть описание селектора начинается с символа «.»), то данный стиль может быть присвоен любым элементам.
И HTML-код под этот стиль:
Ещё один красный текст
Вновь всё очень просто. Теперь встаёт вопрос: чем же тогда лучше селектор ID? А лучше он тем, что к данным элементам очень удобное обращение через, например, JavaScript. Поэтому очень удобно задать именно ID, при условии, что такой элемент всего один на странице, то есть он является уникальным.
имятега[имяатрибута=»значениеатрибута»] <
свойство1: значение1;
свойство2: значение2;
>
Применяется данный стиль в следующем случае: если в теге «имятега» значение «имяатрубита» равно «значениеатрибута» то будет применён стиль, в противном случае стиль не применяется.
Чтобы стало ещё понятнее, привожу пример:
input[type=»submit»] <
border: 2px double black;
>
Надеюсь, что и здесь всё прозрачно. Ещё один очень важный момент, виды селекторов можно совмещать, например, данный CSS вполне нормальный и рабочий:
#header li a <
font-size: 150%;
>
И HTML-код, который вызовет этот стиль:
Думаю, что и здесь вопросов не возникнет.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 24 ):
Здравствуйте. прочитал статью о селекторах CSS и озадачился вопросом: может ли имя класса/ID состоять из 2х и боле слов? и если может, то можно ли брать его в какие-нибудь кавычки в случае описания стиля, содержжащего контекстные или соседние селекторы? Заранее спасибо.
Безусловно, можно. Например такое имя MyName. Но только важно, чтобы между словами не было пробелов и чтобы в имени не было различных спецсимволов. Никаких кавычек не нужно.
А на этом сайте точно все материалы о языках HTML, CSS, Java, PHP?
Нет, конечно. Чтобы были все материалы по всем этим языкам, потребуется не меньше 10 лет ежедневного написания. Никто полностью эти языки не знает. Да это и не нужно. По Java здесь вообще ничего нет. Здесь только по JavaScript.
Извините за тупой вопрос, но как сделать отступ текста от блока? Я просто совсем эту тему забыл.
Отступ делается с помощью padding.
Но у меня тогда растягивается сам блок но отступы внутри появляются. А как сделать чтобы блок не растягивался?
Делайте тогда фиксированные размеры блока.
Ну у меня и так 2 сайдбара по 200 пикс. А если я делаю паддинг то у меня они один на один залазят
Если не уделить время и не разобраться с работой селекторов,то изучить CSS довольно сложно. Хочу поделиться своим опытом. Создайте простой одностраничный сайт на блоках и на этом,своём сайте, изучайте CSS. Наскоком изучить CSS нельзя,уделите этому изучению какое то время и во время изучения не отвлекайтесь на другие вопросы.
Михаил, из-за чего могут не работать селекторы параметров в IE9. В Мозиле всё отлично работает.
В IE9 всё работает, поэтому проблема конкретно с Вашим браузером, либо какие-то свойства специфичные применяете, попробуйте с тривиальным чем-нибудь, например, font-size или color.
Привет михаил! Получилось задействовать селекторы параметров путём прямого указания на файл стиля во вкладке:свойства обозревателя/общие/оформление. Но никак не получается автоматически выполнить эти свойства. Два дня уже бьюсь над этим 🙂 Может есть соображения, где этот флажок найти?
Внимательно надо всё исправлять, больше тут писать нечего.
Все цвета лучше задавать через CSS, и лучше кодом, а не словами.
Вам нужно поместить файл в любое место,в идеале в ту же папку,где и html документ,и потом подключить его в самом html документе