132 lines
3.0 KiB
Markdown
132 lines
3.0 KiB
Markdown
---
|
|
id: 612e6afc009b450a437940a1
|
|
title: Крок 1
|
|
challengeType: 0
|
|
dashedName: step-1
|
|
---
|
|
|
|
# --description--
|
|
|
|
Почніть із базової структури HTML. Додайте декларацію `DOCTYPE` та елементи `html`, `head`, `body` та `title`. Встановіть `title` на `Piano`.
|
|
|
|
# --hints--
|
|
|
|
Ваш код повинен містити посилання `DOCTYPE`.
|
|
|
|
```js
|
|
assert(code.match(/<!DOCTYPE/gi));
|
|
```
|
|
|
|
Ви повинні додати пробіл після посилання `DOCTYPE`.
|
|
|
|
```js
|
|
assert(code.match(/<!DOCTYPE\s+/gi));
|
|
```
|
|
|
|
Ви повинні визначити тип документа як `html`.
|
|
|
|
```js
|
|
assert(code.match(/<!DOCTYPE\s+html/gi));
|
|
```
|
|
|
|
Ви повинні закрити декларацію `DOCTYPE` з допомогою `>` після типу.
|
|
|
|
```js
|
|
assert(code.match(/<!DOCTYPE\s+html\s*>/gi));
|
|
```
|
|
|
|
Ваш елемент `html` повинен мати початковий теґ з атрибутом `lang` зі значенням `en`.
|
|
|
|
```js
|
|
assert(code.match(/<html\s+lang\s*=\s*('|")en\1\s*>/gi));
|
|
```
|
|
|
|
Ваш елемент `html` повинен мати кінцевий теґ.
|
|
|
|
```js
|
|
assert(code.match(/<\/html\s*>/));
|
|
```
|
|
|
|
Ваша декларація `DOCTYPE` повинна бути на початку HTML.
|
|
|
|
```js
|
|
assert(__helpers.removeHtmlComments(code).match(/^\s*<!DOCTYPE\s+html\s*>/i));
|
|
```
|
|
|
|
Ви повинні мати початковий теґ `head`.
|
|
|
|
```js
|
|
assert(code.match(/<head\s*>/i));
|
|
```
|
|
|
|
Ви повинні мати кінцевий теґ `head`.
|
|
|
|
```js
|
|
assert(code.match(/<\/head\s*>/i));
|
|
```
|
|
|
|
Ви повинні мати початковий теґ `body`.
|
|
|
|
```js
|
|
assert(code.match(/<body\s*>/i));
|
|
```
|
|
|
|
Ви повинні мати кінцевий теґ `body`.
|
|
|
|
```js
|
|
assert(code.match(/<\/body\s*>/i));
|
|
```
|
|
|
|
Елементи `head` та `body` повинні бути братськими.
|
|
|
|
```js
|
|
assert(document.querySelector('head')?.nextElementSibling?.localName === 'body');
|
|
```
|
|
|
|
Елемент `head` повинен бути в межах елемента `html`.
|
|
|
|
```js
|
|
assert([...document.querySelector('html')?.children].some(x => x?.localName === 'head'));
|
|
```
|
|
|
|
Елемент `body` повинен бути в межах елемента `html`.
|
|
|
|
```js
|
|
assert([...document.querySelector('html')?.children].some(x => x?.localName === 'body'));
|
|
```
|
|
|
|
Ваш код повинен мати елемент `title`.
|
|
|
|
```js
|
|
const title = document.querySelector('title');
|
|
assert.exists(title);
|
|
```
|
|
|
|
Ваш проєкт повинен мати титул `Piano`.
|
|
|
|
```js
|
|
const title = document.querySelector('title');
|
|
assert.equal(title?.text?.trim()?.toLowerCase(), 'piano')
|
|
```
|
|
|
|
Пам’ятайте, що вживання великої літери та написання мають значення.
|
|
|
|
```js
|
|
const title = document.querySelector('title');
|
|
assert.equal(title?.text?.trim(), 'Piano');
|
|
```
|
|
|
|
# --seed--
|
|
|
|
## --seed-contents--
|
|
|
|
```html
|
|
--fcc-editable-region--
|
|
|
|
--fcc-editable-region--
|
|
```
|
|
|
|
```css
|
|
|
|
```
|