Атрибут checked тега <menuitem> — пункт меню позначено


Атрибут checked являєтся логічним атрибутом і вказує на те, що елемент повинен бути попередньо вибраний при завантаженні сторінки.

З використанням checked

488deb4a78dad3b093f1ee106eb62e87.png

Без використання checked

44d4890453fd72dcbed15f1d6d70674e.png

автор: с3с

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

автор: NagarD

Нотатка

Цей атрибут може бути використаний, якщо type="checkbox" або type="radio".

автор: с3с

Синтаксис

<menuitem checked>

Переглядачі

Підтримка: стаціонарні переглядачі
Переглядач Google Chrome Mozilla Firefox Apple Safari Opera Microsoft EDGE Microsoft Internet Explorer
1 1 1 ≤12.1 12 5.5
Підтримка: мобільні переглядачі
Переглядач Mobile Google Android Mobile Google Chrome Mobile Mozilla Firefox Mobile Apple Safari
4.4 18 4 1

Приклади

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

Найпростіший приклад використання HTML атрибута checked теґа <menuitem>

<div contextmenu = "testmenu">
Клікни по мені правою кнопкою мишки 
<menu type = "context" id = "testmenu"> 
<menuitem label = "like" type="checkbox" checked></menuitem> 
<menuitem label = "dislike" type="checkbox"></menuitem></menu>
		</div>
автор: с3с

Ліворуч — розмітка контекстного меню з <menuitem checked> так, як її радили писати десять років тому; праворуч — те саме завдання на живих елементах. Клацання правою кнопкою не покаже жодного власного меню, а таблиця під ними показує, чим кожен елемент виявився насправді.

HTML

<div class="cols">
    <div class="card dead">
        <h4>Як радили писати</h4>
        <p contextmenu="cm">Клацніть тут правою кнопкою — власного меню не буде.</p>
        <menu type="context" id="cm">
            <menuitem id="mi1" label="Показувати сітку" type="checkbox" checked>Показувати сітку</menuitem>
            <menuitem id="mi2" label="Показувати лінійку" type="checkbox">Показувати лінійку</menuitem>
        </menu>
        <p class="note">Пункти меню видно прямо в тексті: для переглядача це
            невідомі рядкові елементи, а не меню.</p>
    </div>

    <div class="card live">
        <h4>Як це робиться сьогодні</h4>
        <p><label><input id="cb1" type="checkbox" checked> Показувати сітку</label></p>
        <p><label><input id="cb2" type="checkbox"> Показувати лінійку</label></p>
        <p class="note">Атрибут <code>checked</code> тут справді працює:
            перший прапорець позначено при завантаженні.</p>
    </div>
</div>

<table id="report">
    <thead><tr><th>елемент</th><th>клас у DOM</th><th>властивість checked</th><th>висновок</th></tr></thead>
    <tbody></tbody>
</table>

CSS

.cols {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}

.card {
    flex: 1 1 280px;
    padding: 4px 14px 12px;
    border: 1px solid #b9c6d8;
    border-radius: 6px;
}

.card.dead {
    border-color: #d64545;
    background: #fdeeee;
}

.card.live {
    border-color: #3a9a4f;
    background: #edf9ef;
}

.card h4 {
    margin: 14px 0 10px;
}

menu {
    margin: 8px 0;
    padding: 0 0 0 18px;
}

table {
    margin-top: 16px;
    border-collapse: collapse;
    font-size: .88rem;
}

th,
td {
    padding: 5px 9px;
    border: 1px solid #b9c6d8;
    text-align: left;
    vertical-align: top;
}

th {
    background: #eef4ff;
}

.note {
    color: #5a6472;
    font-size: .85em;
}

code {
    background: #eef4ff;
    border-radius: 3px;
    padding: 0 4px;
}

JS

const RYADKY = [
    ['menuitem з checked', 'mi1', 'теґа не існує — атрибут нічого не позначає'],
    ['menuitem без checked', 'mi2', 'те саме'],
    ['input type=checkbox checked', 'cb1', 'працює: прапорець позначено при завантаженні'],
    ['input type=checkbox', 'cb2', 'працює: прапорець порожній'],
];

const tbody = document.querySelector('#report tbody');

for (const [nazva, id, vysnovok] of RYADKY) {
    const el = document.getElementById(id);
    const row = tbody.insertRow();
    row.insertCell().textContent = nazva;
    row.insertCell().textContent = el.constructor.name;
    row.insertCell().textContent = el.checked === undefined ? 'немає взагалі' : String(el.checked);
    row.insertCell().textContent = vysnovok;

    console.log(nazva, '->', el.constructor.name, '| checked =', el.checked);
}
// → menuitem з checked -> HTMLUnknownElement | checked = undefined
// → input type=checkbox checked -> HTMLInputElement | checked = true

console.log('атрибут у розмітці все ж записаний:',
    JSON.stringify(document.getElementById('mi1').getAttribute('checked'))); // → ""
console.log('контекстні меню сторінки підтримуються?', 'contextMenu' in document.body); // → false
console.log('<menu type="context"> малюється як', getComputedStyle(document.getElementById('cm')).display,
    '— тобто як звичайний блок'); // → block

// єдине, що лишилося від ідеї власного меню, — перехоплення події
document.querySelector('.dead p').addEventListener('contextmenu', (e) => {
    console.log('подія contextmenu спрацювала — але меню довелося б малювати самому');
});
автор: NagarD

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


Атрибут <menuitem> є новим у HTML5. </menuitem>

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


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


Коментарі

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

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

Як форматувати текст?
Пишемо Виходить
**важливо**
*акцент*
~~застаріле~~
Виділення в тексті. Те саме роблять кнопки панелі, що спливає над виділеним.
## Як працює каскад
### Порядок оголошень
Заголовки всередині тексту. Найбільший не потрібен — він у сторінки вже є.
[[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`.
||
Ховає цілі абзаци. На сторінці видно лише підпис із першого рядка («Показати рішення»), решта розгортається клацанням по ньому. Закривні риски — окремим рядком.
Порожній рядок Новий абзац. Щоб перенести рядок усередині абзацу, поставте \ в його кінці.

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

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