Атрибут open тега <dialog> — показати діалогове вікно


автор: с3с

Загальний опис

автор: NagarD

Синтаксис

<dialog open>

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
37 98 15.4 24 79
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
37 37 98 15.4

Приклади

+ запропонувати свій приклад у пісочниці

HTML

<h3>Приклад використання атрибуту <code>open</code></h3> 
<button id="openDialog">Відкрити вікно</button>
  <dialog open="open">
   <p>HTML тег dialog створює діалогове вікно.

Тег dialog дозволяє легко створювати спливаючі або модальні вікна на веб-сторінці.</p>
   <p><button id="closeDialog">Закрити вікно</button></p>
  </dialog>

CSS

body {
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='500' height='500' viewBox='0 0 40 40' preserveAspectRatio='none'%3E%3Crect width='40' height='40' fill='%23264653'/%3E%3Cpath d='M0 40 12 18 22 30 30 22 40 40Z' fill='%232a9d8f'/%3E%3Ccircle cx='30' cy='9' r='5' fill='%23e9c46a'/%3E%3C/svg%3E") no-repeat;
    background-size: cover;
   }
   dialog {
    background: rgba(255, 255, 255, 0.7);
    width: 300px; 
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
    border-radius: 5px;
   }

JS

var dialog = document.querySelector('dialog');
document.querySelector('#openDialog').onclick = function () {
  dialog.show();
};
document.querySelector('#closeDialog').onclick = function () {
  dialog.close();
};
//# sourceURL=pen.js
автор: с3с

Три вікна в трьох однакових рамках. Перше без open — його на сторінці немає взагалі. У другому й третьому вікно видно, і одразу видно головне: пунктирна рамка навколо не побільшала ні на піксель, а вікно вилізло за її межу, бо position: absolute виймає його з потоку. Третє написано як open="false" — і все одно відкрите, бо значення логічного атрибута не важить. Знизу — форма з method="dialog", яка закриває вікно без жодного скрипта.

HTML

<p class="cap">1. Без open — вікна на сторінці немає, абзаци видно всі</p>
<div class="stage">
    <p class="row">Перший абзац сторінки.</p>
    <p class="row">Другий абзац: зверніть увагу, він іде відразу за першим.</p>
    <p class="row">Третій абзац. Місця під вікно в потоці не відведено.</p>
    <dialog class="d">Без open — цього тексту на сторінці немає</dialog>
</div>

<p class="cap">2. open — вікно видно, але рамка навколо не побільшала й вікно вилізло
    за її межу: воно position: absolute і місця в потоці не займає</p>
<div class="stage">
    <p class="row">Перший абзац сторінки.</p>
    <p class="row">Другий абзац: зверніть увагу, він іде відразу за першим.</p>
    <p class="row">Третій абзац. Місця під вікно в потоці не відведено.</p>
    <dialog class="d" open>open — вікно видно</dialog>
</div>

<p class="cap">3. open="false" — те саме: значення логічного атрибута не важить</p>
<div class="stage">
    <p class="row">Перший абзац сторінки.</p>
    <p class="row">Другий абзац: зверніть увагу, він іде відразу за першим.</p>
    <p class="row">Третій абзац. Місця під вікно в потоці не відведено.</p>
    <dialog class="d" open="false">open="false" — теж відкрито</dialog>
</div>

<p class="note">Затемнення позаду немає, Esc нічого не закриває, а по абзацах під вікном
    можна клацати й ходити табом: вікно, відкрите атрибутом, не модальне.</p>

<p class="cap">4. Закрити без скрипта: форма з method="dialog"</p>
<dialog class="d flow" open>
    <p>Кнопка нижче закриє це вікно й покладе своє value в returnValue.</p>
    <form method="dialog">
        <button value="ok">Закрити (method="dialog")</button>
    </form>
</dialog>

CSS

.cap {
    margin: 20px 0 6px;
    max-width: 620px;
    color: #5a6472;
    font-size: .92em;
}

.stage {
    position: relative;
    max-width: 620px;
    min-height: 130px;
    padding: 10px 12px;
    border: 2px dashed #b9c6d8;
    background: #f6f9ff;
}

.row {
    margin: 4px 0;
}

.d {
    border: 2px solid #2f6fd0;
    background: #fff;
}

.note {
    max-width: 620px;
    margin: 16px 0;
    color: #5a6472;
    font-size: .92em;
}

.flow {
    position: static;
    max-width: 460px;
}

button {
    padding: 6px 12px;
    font: inherit;
}
автор: NagarD

Різниця між HTML 4.01 та HTML5


Атрибут open тега <dialog> з'явився тільки в HTML5.

Різниця між XHTML та HTML


У XHTML мінімізований запис атрибутів заборонено,тому атрибут open має бути визначений як <dialog open="open">.


Коментарі

Коментарів ще немає — будьте першим!

Відповідь для

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[css/property/color]] Посилання на сторінку довідника. Наберіть [[ — поле веде сходинками (розділ → тип → сторінка), а хибний ключ підкреслить хвилею.
[[!sandbox/S0oh1hBm]] Живий приклад окремим рядком — саме вікно результату. Той самий ключ зі знаком !: наберіть [[! і дійдіть сходинками до потрібної сторінки, список покаже її приклади.
[MDN](https://developer.mozilla.org) Посилання на чужий сайт.
![Схема каскаду](https://site.com/схема.png) Картинка. Опис обов'язковий: його читають пошуковик і незрячі.
Задайте `display: grid` контейнеру Код усередині речення.
```css
.card { display: grid }
```
Код блоком. Мова після трьох лапок вмикає підсвітку.
- Походження
1. Походження
Перелік: маркований і нумерований.
- [ ] дописати приклади
- [x] перевірити в Firefox
Перелік завдань із галочками. Пробіл у порожніх дужках обов'язковий.
> Порядок важить лише за рівної ваги. Цитата на всю ширину абзацу.
Специфічність
: вага селектора; більша перемагає
Список означень: термін, а під ним пояснення з відступом. Пробіл після двокрапки обов'язковий.
Каскад має три критерії[^1]
[^1]: Походження, специфічність, порядок.
Виноска: номер у тексті, примітка внизу сторінки. Без згадки [^1] у тексті примітка не з'явиться.
Відповідь: ||сорок два|| Ховає те, що між рисками: читач бачить на цьому місці розмиту пляму, а решта речення лишається звичайною. Клац — і текст відкрито.
|| Показати рішення
Задайте контейнеру `display: grid`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

Увійдіть — коментар з'явиться одразу, без капчі й очікування перевірки.

Правка
Зворотний зв'язок
Вхід