freeCodeCamp/curriculum/challenges/portuguese/14-responsive-web-design-22/learn-more-about-css-pseudo.../61fd5a93fd62bb35968adeab.md

2.9 KiB

id title challengeType dashedName
61fd5a93fd62bb35968adeab Passo 1 0 step-1

--description--

Defina o HTML com uma declaração DOCTYPE e com os elementos html, head e body. Dê ao elemento head os elementos meta apropriados para o charset e a viewport, um elemento title com o título apropriado e um elemento link para a sua folha de estilo.

--hints--

O código deve ter uma declaração <!DOCTYPE html>.

assert(code.match(/<!DOCTYPE html>/i));

O código deve ter um elemento html.

assert.equal(document.querySelectorAll('html')?.length, 1);

O código deve ter um elemento head dentro do elemento html.

assert.equal(document.querySelectorAll('head')?.length, 1);

O código deve ter um elemento body dentro do elemento html.

assert.equal(document.querySelectorAll('body')?.length, 1);

O elemento head deve vir antes do elemento body.

assert.equal(document.querySelector('body')?.previousElementSibling?.tagName, 'HEAD');

Você deve ter dois elementos meta.

const meta = document.querySelectorAll('meta');
assert.equal(meta?.length, 2);

Um elemento meta deve ter o atributo name definido como viewport e o atributo content definido como width=device-width, initial-scale=1.0.

const meta = [...document.querySelectorAll('meta')];
const target = meta?.find(m => m?.getAttribute('name') === 'viewport' && m?.getAttribute('content') === 'width=device-width, initial-scale=1.0' && !m?.getAttribute('charset'));
assert.exists(target);

O outro elemento meta deve ter o atributo charset com o valor UTF-8.

const meta = [...document.querySelectorAll('meta')];
const target = meta?.find(m => !m?.getAttribute('name') && !m?.getAttribute('content') && m?.getAttribute('charset')?.toLowerCase() === 'utf-8');
assert.exists(target);

O código deve ter um elemento title.

const title = document.querySelector('title');
assert.exists(title);

O elemento title precisa ter algum texto.

const title = document.querySelector('title');
assert.isAtLeast(title?.textContent?.length, 1);

O código deve ter um elemento link.

assert(/<link/.test(code))

O elemento link deve estar dentro do elemento head.

assert(code.match(/<head>[\w\W\s]*<link[\w\W\s]*\/?>[\w\W\s]*<\/head>/i))

O elemento link deve ter o atributo rel com o valor stylesheet.

assert.match(code, /<link[\s\S]*?rel=('|"|`)stylesheet\1/)

O elemento link deve ter o atributo type com o valor text/css.

assert.match(code, /<link[\s\S]*?type=('|"|`)text\/css\1/)

O elemento link deve ter o atributo href com o valor styles.css.

assert.match(code, /<link[\s\S]*?href=('|"|`)(\.\/)?styles\.css\1/)

--seed--

--seed-contents--

--fcc-editable-region--

--fcc-editable-region--