Недавние тенденции в HTML
Эта статья объясняет недавние тенденции в HTML.
Здесь объясняются теги, которые были добавлены относительно недавно в HTML5.
YouTube Video
Недавние тенденции в HTML
Тег <template>
Hello, this is a reusable template!
1<template id="myTemplate">
2 <div>
3 <p>Hello, this is a reusable template!</p>
4 </div>
5</template>
6<button onclick="useTemplate()">Use Template</button>
7<div id="container"></div>
8<script>
9 function useTemplate() {
10 const template = document.getElementById('myTemplate');
11 const clone = template.content.cloneNode(true);
12 document.getElementById('container').appendChild(clone);
13 }
14</script>
-
Тег
<template>
используется для определения повторно используемых фрагментов HTML, которые остаются скрытыми до активации через JavaScript. -
Используя тег
<template>
, вы можете динамически создавать повторно используемые компоненты пользовательского интерфейса, такие как карточки или элементы списка. Это также помогает снизить дублирование кода и улучшить поддерживаемость в крупных приложениях. -
В этом примере нажатие кнопки 'Использовать шаблон' отображает содержимое тега
<template>
.
Тег <slot>
Header Content
Footer Content
1<template id="myElementTemplate">
2 <slot name="header">Default Header</slot>
3 <main>Default Content</main>
4 <slot name="footer">Default Footer</slot>
5</template>
6<my-element>
7 <p slot="header">Header Content</p>
8 <p slot="footer">Footer Content</p>
9</my-element>
10<script>
11 class MyElement extends HTMLElement {
12 constructor() {
13 super();
14 const shadow = this.attachShadow({ mode: 'open' });
15 shadow.innerHTML = document.getElementById('myElementTemplate').cloneNode(true).innerHTML;
16 }
17 }
18 customElements.define('my-element', MyElement);
19</script>
- Тег
<slot>
действует как заполнитель внутри веб-компонента для отображения содержимого, переданного из родительского элемента.- Если содержимое для слота не предоставлено, будет отображаться резервное содержимое (по умолчанию указанное непосредственно внутри тега
<slot>
).
- Если содержимое для слота не предоставлено, будет отображаться резервное содержимое (по умолчанию указанное непосредственно внутри тега
- В этом примере именованные слоты (
header
иfooter
) определены внутри элемента<template>
. <my-element>
— это пользовательский элемент HTML. Атрибутslot
в теге<p>
внутри этого элемента указывает имя слота и содержимое, которое должно быть вставлено в слот.
Тег <dialog>
1<dialog id="exampleDialog">
2 <p>This is a dialog box.</p>
3 <button id="closeButton">Close</button>
4</dialog>
5
6<button id="openButton">Open Dialog</button>
7
8<script>
9 const dialog = document.getElementById('exampleDialog');
10 const openButton = document.getElementById('openButton');
11 const closeButton = document.getElementById('closeButton');
12
13 openButton.addEventListener('click', () => dialog.showModal());
14 closeButton.addEventListener('click', () => dialog.close());
15</script>
-
Тег
<dialog>
используется для определения интерактивных окон, таких как модальные окна или всплывающие окна. Вы можете управлять открытием и закрытием с помощью JavaScript. -
В этом примере нажатие кнопки 'Открыть диалог' отображает диалоговое окно.
Атрибут inputmode
тега <input>
1<label for="phone">Phone Number:</label>
2<input type="text" id="phone" inputmode="tel" placeholder="Enter your phone number">
- Атрибут
inputmode
тега<input>
указывает тип виртуальной клавиатуры, отображаемой на сенсорных устройствах, улучшая пользовательский опыт. Например, указаниеinputmode="tel"
отображает цифровую клавиатуру для ввода номера телефона. - Атрибут
inputmode
используется только для настройки отображения виртуальной клавиатуры и не проверяет содержимое ввода. Для применения ограничений при вводе следует использовать атрибутtype
или проверку с помощью JavaScript. - Поскольку не все браузеры и устройства полностью поддерживают это, лучше подготовить соответствующие альтернативные решения.
- Атрибут
inputmode
может принимать следующие значения. Каждое значение используется для отображения определенного типа ввода или виртуальной клавиатуры.
Значение | Описание |
---|---|
none |
none скрывает виртуальную клавиатуру. |
text |
text отображает стандартную текстовую виртуальную клавиатуру. |
tel |
tel отображает цифровую клавиатуру для ввода номера телефона. |
url |
url отображает виртуальную клавиатуру для ввода URL. |
email |
email отображает виртуальную клавиатуру для ввода адреса электронной почты. |
numeric |
numeric отображает виртуальную клавиатуру исключительно для ввода чисел. |
decimal |
decimal отображает виртуальную клавиатуру для ввода числовых данных. |
search |
search отображает виртуальную клавиатуру для ввода поисковых запросов. |
Атрибут theme-color
внутри тега <meta>
1<meta name="theme-color" content="#4CAF50">
2<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)">
3<meta name="theme-color" content="#000000" media="(prefers-color-scheme: dark)">
- Атрибут
theme-color
внутри тега<meta>
используется для настройки цвета адресной строки и пользовательского интерфейса в совместимых мобильных браузерах. - Например, он может переключаться между тёмным и светлым режимами с помощью атрибута
media
.
Эти теги и атрибуты являются усовершенствованиями HTML5 и стали важными элементами современного веб-разработки. Рекомендуется проверять поддержку и совместимость с конкретными браузерами при их использовании.
Вы можете следовать этой статье, используя Visual Studio Code на нашем YouTube-канале. Пожалуйста, также посмотрите наш YouTube-канал.