2019-11-04 21:01:05 -06:00
---
id: 5d822fd413a79914d39e98cc
2021-10-21 10:07:52 -07:00
title: Step 4
2019-11-04 21:01:05 -06:00
challengeType: 0
2021-10-21 10:07:52 -07:00
dashedName: step-4
2019-11-04 21:01:05 -06:00
---
2020-11-27 19:02:05 +01:00
# --description--
2019-11-04 21:01:05 -06:00
2022-03-14 15:54:43 +00:00
Add a `title` element to the `head` , and give your project a title of `City Skyline` . Also, nest a self-closing `link` element in the `head` element. Give it a `rel` attribute value of `stylesheet` , a `type` attribute value of `text/css` , and an `href` attribute value of `styles.css` .
2019-11-04 21:01:05 -06:00
2020-11-27 19:02:05 +01:00
# --hints--
2019-11-04 21:01:05 -06:00
2021-07-16 04:46:40 +01:00
Your code should have a `title` element.
2019-11-04 21:01:05 -06:00
2020-11-27 19:02:05 +01:00
```js
2021-07-16 04:46:40 +01:00
const title = document.querySelector('title');
assert.exists(title);
2019-11-04 21:01:05 -06:00
```
2021-07-16 04:46:40 +01:00
The `title` element should be within the `head` element.
2019-11-04 21:01:05 -06:00
2021-07-16 04:46:40 +01:00
```js
2022-03-14 15:54:43 +00:00
assert.exists(document.querySelector('head > title'));
2021-07-16 04:46:40 +01:00
```
2019-11-04 21:01:05 -06:00
2022-03-14 15:54:43 +00:00
Your project should have a title of `City Skyline` .
2019-11-04 21:01:05 -06:00
2021-07-16 04:46:40 +01:00
```js
const title = document.querySelector('title');
2022-03-14 15:54:43 +00:00
assert.equal(title.text.toLowerCase(), 'city skyline')
2019-11-04 21:01:05 -06:00
```
2021-07-16 04:46:40 +01:00
Remember, the casing and spelling matters for the title.
```js
const title = document.querySelector('title');
2022-03-14 15:54:43 +00:00
assert.equal(title.text, 'City Skyline');
2021-07-16 04:46:40 +01:00
```
Your code should have a `link` element.
```js
assert.match(code, /< link / )
```
You should not change your existing `head` tags. Make sure you did not delete the closing tag.
```js
const heads = document.querySelectorAll('head');
assert.equal(heads?.length, 1);
```
Your `link` element should be a self-closing element.
```js
assert(code.match(/< link [ \w\W\s]+ \/> /i));
```
Your `link` element should be within your `head` element.
```js
assert(code.match(/< head > [\w\W\s]*< link [ \w\W\s]* \/> [\w\W\s]*< \/head > /i))
```
Your `link` element should have a `rel` attribute with the value `stylesheet` .
```js
assert.match(code, /< link [ \s\S]*? rel = ('|"|`)stylesheet \1/)
```
Your `link` element should have a `type` attribute with the value `text/css` .
```js
assert.match(code, /< link [ \s\S]*? type = ('|"|`)text \/css \1/)
```
Your `link` element should have an `href` attribute with the value `styles.css` .
```js
assert.match(code, /< link [ \s\S]*? href = ('|"|`)( \.\/)?styles \.css \1/)
```
# --seed--
## --seed-contents--
2019-11-04 21:01:05 -06:00
```html
<!DOCTYPE html>
2021-07-16 04:46:40 +01:00
< html >
--fcc-editable-region--
2019-11-04 21:01:05 -06:00
< head >
2021-07-16 04:46:40 +01:00
2019-11-04 21:01:05 -06:00
< / head >
2021-07-16 04:46:40 +01:00
--fcc-editable-region--
2019-11-04 21:01:05 -06:00
< body >
< / body >
< / html >
```