freeCodeCamp/curriculum/challenges/italian/14-responsive-web-design-22/learn-typography-by-buildin.../615f7ecb09de9a938ef94756.md

181 lines
4.2 KiB
Markdown
Raw Normal View History

---
id: 615f7ecb09de9a938ef94756
title: Step 54
challengeType: 0
dashedName: step-54
---
# --description--
Aggiungi un altro elemento `p` con il testo `Total Carbohydrate 37g 13%`. Come prima, usa gli elementi `span` per rendere il testo `Total Carbohydrate` in grassetto, e il testo `13%` in grassetto e allineato a destra.
# --hints--
Dovresti creare un nuovo elemento `p` alla fine dell'elemento `.daily-value.sm-text`.
```js
assert(document.querySelector('.daily-value.sm-text')?.lastElementChild?.localName === 'p');
```
Il nuovo elemento `p` dovrebbe avere il testo `Total Carbohydrate 37g 13%`.
```js
assert(document.querySelector('.daily-value.sm-text')?.lastElementChild?.innerText?.match(/Total Carbohydrate 37g[\s|\n]+13%/));
```
Il nuovo elemento `p` dovrebbe avere due elementi `span`.
```js
assert(document.querySelector('.daily-value.sm-text')?.lastElementChild?.querySelectorAll('span')?.length === 2);
```
Il primo elemento `span` dovrebbe avere l'attributo `class` con il valore `bold`.
```js
assert(document.querySelector('.daily-value.sm-text')?.lastElementChild?.firstElementChild?.classList?.contains('bold'));
```
Il primo elemento `span` dovrebbe racchiudere il testo `Total Carbohydrate`.
```js
assert(document.querySelector('.daily-value.sm-text')?.lastElementChild?.firstElementChild?.innerText === 'Total Carbohydrate');
```
Il secondo elemento `span` dovrebbe avere l'attributo `class` con il valore `bold right`.
```js
assert(document.querySelector('.daily-value.sm-text')?.lastElementChild?.lastElementChild?.classList?.contains('bold'));
assert(document.querySelector('.daily-value.sm-text')?.lastElementChild?.lastElementChild?.classList?.contains('right'));
```
Il secondo elemento `span` dovrebbe racchiudere il testo `13%`.
```js
assert(document.querySelector('.daily-value.sm-text')?.lastElementChild?.lastElementChild?.innerText === '13%');
```
# --seed--
## --seed-contents--
```html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Nutrition Label</title>
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,700,800" rel="stylesheet">
<link href="./styles.css" rel="stylesheet">
</head>
<body>
<div class="label">
<header>
<h1 class="bold">Nutrition Facts</h1>
<div class="divider"></div>
<p>8 servings per container</p>
<p class="bold">Serving size <span class="right">2/3 cup (55g)</span></p>
</header>
<div class="divider lg"></div>
<div class="calories-info">
<p class="bold sm-text">Amount per serving</p>
<h1>Calories <span class="right">230</span></h1>
</div>
<div class="divider md"></div>
<div class="daily-value sm-text">
--fcc-editable-region--
<p class="right bold no-divider">% Daily Value *</p>
<div class="divider"></div>
<p><span class="bold">Total Fat</span> 8g<span class="bold right">10%</span></p>
<p class="indent no-divider">Saturated Fat 1g <span class="bold right">5%</span></p>
<div class="divider"></div>
<p class="indent no-divider"><i>Trans</i> Fat 0g</p>
<div class="divider"></div>
<p><span class="bold">Cholesterol</span> 0mg <span class="right bold">0%</span></p>
<p><span class="bold">Sodium</span> 160mg <span class="right bold">7%</span></p>
--fcc-editable-region--
</div>
</div>
</body>
</html>
```
```css
* {
box-sizing: border-box;
}
html {
font-size: 16px;
}
body {
font-family: 'Open Sans', sans-serif;
}
.label {
border: 2px solid black;
width: 270px;
margin: 20px auto;
padding: 0 7px;
}
header h1 {
text-align: center;
margin: -4px 0;
letter-spacing: 0.15px
}
p {
margin: 0;
}
.divider {
border-bottom: 1px solid #888989;
margin: 2px 0;
clear: right;
}
.bold {
font-weight: 800;
}
.right {
float: right;
}
.lg {
height: 10px;
}
.lg, .md {
background-color: black;
border: 0;
}
.md {
height: 5px;
}
.sm-text {
font-size: 0.85rem;
}
.calories-info h1 {
margin: -5px -2px;
overflow: hidden;
}
.calories-info span {
font-size: 1.2em;
margin-top: -7px;
}
.indent {
margin-left: 1em;
}
.daily-value p:not(.no-divider) {
border-bottom: 1px solid #888989;
}
```