Learn Typography by Building a Nutrition Label - Step 43

Tell us what’s happening:

It says one span element should be wrapped around the text Total Fat and that the p element should have 3 span elements. I did what it asked but I don’t fully understand. Could it be that there’s a way of adding more than one span element in a single p element? Can someone please tell me what I’m doing wrong.

Your code so far

<!-- file: index.html -->
<!DOCTYPE html>
<html lang="en">

  <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">

  <div class="label">
      <h1 class="bold">Nutrition Facts</h1>
      <div class="divider"></div>
      <p>8 servings per container</p>
      <p class="bold">Serving size <span>2/3 cup (55g)</span></p>
    <div class="divider large"></div>
    <div class="calories-info">
      <div class="left-container">
        <h2 class="bold small-text">Amount per serving</h2>
    <div class="divider medium"></div>

<!-- User Editable Region -->

    <div class="daily-value small-text">
      <p class="bold right">% Daily Value *</p>
      <div class="divider"></div>
      <p class="bold"><span>Total Fat</span><span>8g</span><span>10%</span></p>

<!-- User Editable Region -->

/* file: styles.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;
  display: flex;
  justify-content: space-between;

.divider {
  border-bottom: 1px solid #888989;
  margin: 2px 0;

.bold {
  font-weight: 800;

.large {
  height: 10px;

.large, .medium {
  background-color: black;
  border: 0;

.medium {
  height: 5px;

.small-text {
  font-size: 0.85rem;

.calories-info {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;

.calories-info h2 {
  margin: 0;

.left-container p {
  margin: -5px -2px;
  font-size: 2em;
  font-weight: 700;

.calories-info span {
  margin: -7px -2px;
  font-size: 2.4em;
  font-weight: 700;

.right {
  justify-content: flex-end;

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ Safari/537.36 Edg/

Challenge Information:

Learn Typography by Building a Nutrition Label - Step 43

  • The “bold” class is supposed to be for the <span> that wraps the text Total fat, and the <span> that wraps 10%.
  • Instead of wrapping the 8g in its own <span>, you are meant to wrap both the 8g and the Total Fat (including its <span>) together in another <span>.

Keeping in mind that the <p> has been made a flexbox with “space-between”, you want the text Total Fat 8g to be on the left, and 10% to be on the right. Hopefully that will make it more clear what is being asked.

How do I wrap a span in another span? I think I understand what you mean but I just don’t know how to do it.

How do I wrap a span in another span?


<span><span>inner text</span> other text</span>
1 Like

I did that but it’s saying the p element should have the text Total Fat 8g 10%.

Please post your updated code.
Use the Formatted Text button to make your code preformatted.