Build an Availability Table - Build an Availability Table

Tell us what’s happening:

I find it difficult to pass my last the user story on this project which is “Build an Availability Table”.
Secondly, I need help on how to insert the numerals “0” and “5” ‘before’ and ‘after’ the #legend-gradient respectively just as it is in the example given by freeCodeCamp. I tried doing it with ‘::before’ and ‘::after’ pseudo elements but they all appeared inside the #legend-gradient instead of outside, and both were clustered together successively in one spot.

Your code so far

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

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="styles.css" />
    <title>Availability Table</title>
</head>

<body>
    <table>
        <tr class="sharp">
            <th rowspan="2" class="time">9 AM</th>
            <th>Monday</th>
            <th>Tuesday</th>
            <th>Wednesday</th>
            <th>Thursday</th>
            <th>Friday</th>
        </tr>
        <tr class="half">
            <td class="available-1"></td>
            <td class="available-2"></td>
            <td class="available-3"></td>
            <td class="available-3"></td>
            <td class="available-5"></td>
        </tr>
        <tr class="sharp">
            <th rowspan="2" class="time">10 AM</th>
            <td class="available-4"></td>
            <td class="available-4"></td>
            <td class="available-4"></td>
            <td class="available-5"></td>
            <td class="available-5"></td>
        </tr>
        <tr class="half">
            <td class="available-4"></td>
            <td class="available-4"></td>
            <td class="available-5"></td>
            <td class="available-5"></td>
            <td class="available-5"></td>
        </tr>
        <tr class="sharp">
            <th rowspan="2" class="time">11 AM</th>
            <td class="available-1"></td>
            <td class="available-2"></td>
            <td class="available-4"></td>
            <td class="available-4"></td>
            <td class="available-0"></td>
        </tr>
        <tr class="half">
            <td class="available-4"></td>
            <td class="available-4"></td>
            <td class="available-0"></td>
            <td class="available-5"></td>
            <td class="available-5"></td>
        </tr>
        <tr class="sharp">
            <th rowspan="2" class="time">12 AM</th>
            <td class="available-5"></td>
            <td class="available-5"></td>
            <td class="available-4"></td>
            <td class="available-2"></td>
            <td class="available-0"></td>
        </tr>
        <tr class="half">
            <td class="available-3"></td>
            <td class="available-0"></td>
            <td class="available-3"></td>
            <td class="available-5"></td>
            <td class="available-5"></td>
        </tr>
        <tr class="sharp">
            <th rowspan="2" class="time">1 PM</th>
            <td class="available-2"></td>
            <td class="available-3"></td>
            <td class="available-3"></td>
            <td class="available-2"></td>
            <td class="available-0"></td>
        </tr>
        <tr class="half">
            <td class="available-3"></td>
            <td class="available-3"></td>
            <td class="available-3"></td>
            <td class="available-5"></td>
            <td class="available-5"></td>
        </tr>
        <tr class="sharp">
            <th rowspan="2" class="time">2 PM</th>
            <td class="available-0"></td>
            <td class="available-3"></td>
            <td class="available-3"></td>
            <td class="available-3"></td>
            <td class="available-3"></td>
        </tr>
        <tr class="half">
            <td class="available-4"></td>
            <td class="available-4"></td>
            <td class="available-4"></td>
            <td class="available-5"></td>
            <td class="available-5"></td>
        </tr>
        <tr class="sharp">
            <th rowspan="2" class="time">3 PM</th>
            <td class="available-3"></td>
            <td class="available-3"></td>
            <td class="available-3"></td>
            <td class="available-5"></td>
            <td class="available-3"></td>
        </tr>
        <tr class="half">
            <td class="available-3"></td>
            <td class="available-3"></td>
            <td class="available-3"></td>
            <td class="available-5"></td>
            <td class="available-5"></td>
        </tr>
        <tr class="sharp">
            <th rowspan="2" class="time">4 PM</th>
            <td class="available-5"></td>
            <td class="available-5"></td>
            <td class="available-5"></td>
            <td class="available-3"></td>
            <td class="available-3"></td>
        </tr>
        <tr class="half">
            <td class="available-3"></td>
            <td class="available-0"></td>
            <td class="available-3"></td>
            <td class="available-2"></td>
            <td class="available-5"></td>
        </tr>
        <tr class="sharp">
            <th class="time">5 PM</th>
            <td class="available-5"></td>
            <td class="available-5"></td>
            <td class="available-5"></td>
            <td class="available-3"></td>
            <td class="available-4"></td>
        </tr>
    </table>

    <div id="legend">
        <span class="avail">Availability</span>
        <div id="legend-gradient"></div>
    </div>
</body>

</html>
/* file: styles.css */
:root {
  --color0: #FFFFFF; /* 0 */
  --color1: #F3F9F1; /* 1 */
  --color2: #B6D8AB; /* 2 */
  --color3: #92C581; /* 3 */
  --color4: #5B9A47; /* 4 */
  --color5: #417033; /* 5 */
  --solid-border: 1px solid #0B0A0A;
  --dashed-border: 1px dashed #0B0A0A;
}

table {
  margin: 2rem auto;
  max-width: 80%;
  border-collapse: collapse;
}

.sharp td {
  border-bottom: var(--solid-border);
}

 .half td {
  border-bottom: var(--dashed-border);
}



td{
  width: 7em;
  height: 1.3em;
  border-right: 1px solid #0B0A0A;
  border-left: 1px solid #0B0A0A;
}

th, span {
  font-size: 1.1rem;
  font-family: sans-serif;
}

.time {
  width: 9em;
  text-align: right;
  font-size: .9em;
}

.available-0 {
  background-color: var(--color0);
}

.available-1 {
  background-color: var(--color1);
}

.available-2 {
  background-color: var(--color2);
}

.available-3 {
  background-color: var(--color3);
}

.available-4 {
  background-color: var(--color4);
}

.available-5 {
  background-color: var(--color5);
}

span {
  display: block;
  width: 100%;
  margin: 4rem auto;
  text-align: center;
  letter-spacing: 1.5px; 
}

#legend-gradient {
  width: 10em;
  height: 1.3em;
  border: 1px solid #0D0B08;
  margin: -3.7rem auto;
  background-image: linear-gradient(
    90deg,
    var(--color0) 0%,
    var(--color0) 16.6%,
    var(--color1) 16.6%,
    var(--color1) 33.2%,
    var(--color2) 33.2%,
    var(--color2) 49.8%,
    var(--color3) 49.8%,
    var(--color3) 66.4%,
    var(--color4) 66.4%,
    var(--color4) 83%,
    var(--color5) 83%          
  );
}




Your browser information:

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

Challenge Information:

Build an Availability Table - Build an Availability Table

you can use :before and :after, you need to style the two elements and change their position so that they appear where you need them

for the gradient, the test is expecting two color-stops for each color, you can see an example of that syntax here: linear-gradient() - CSS | MDN

1 Like

Thank you so much!
I appreciate

Whoever is stuck and comes around this solution, by my own struggle and observation I found out your percentage must be a round number, it mustn’t involve any fraction. For example: 88% and not 87.6%.
The system seems not to recognize fractions.