Learn Basic JavaScript by Building a Role Playing Game - Step 28

Tell us what’s happening:

learn basic javascript by building a role playing game - Step 28

This was previous closed, however I’m getting a validation failure message with the correct element selector.
To troubleshoot I removed other properties to verify my changes are reflected in the console.
All seem to pass except the background-color: #feac32

Your code so far

<!-- file: index.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="./styles.css">
    <title>RPG - Dragon Repeller</title>
  </head>
  <body>
    <div id="game">
      <div id="stats">
        <span class="stat">XP: <strong><span id="xpText">0</span></strong></span>
        <span class="stat">Health: <strong><span id="healthText">100</span></strong></span>
        <span class="stat">Gold: <strong><span id="goldText">50</span></strong></span>
      </div>
      <div id="controls">
        <button id="button1">Go to store</button>
        <button id="button2">Go to cave</button>
        <button id="button3">Fight dragon</button>
      </div>
      <div id="monsterStats">
        <span class="stat">Monster Name: <strong><span id="monsterName"></span></strong></span>
        <span class="stat">Health: <strong><span id="monsterHealth"></span></strong></span>
      </div>
      <div id="text">
        Welcome to Dragon Repeller. You must defeat the dragon that is preventing people from leaving the town. You are in the town square. Where do you want to go? Use the buttons above.
      </div>
    </div>
    <script src="./script.js"></script>
  </body>
</html>
/* file: script.js */
let xp = 0;
let health = 100;
let gold = 50;
let currentWeaponIndex = 0;
let fighting;
let monsterHealth;
let inventory = ["stick"];

const button1 = document.querySelector("#button1");
const button2 = document.querySelector("#button2");
const button3 = document.querySelector("#button3");
/* file: styles.css */
body {
  background-color: #0a0a23;
}

#text {
  background-color: #0a0a23;
  color: #ffffff;
  padding: 10px;
}

#game {
  max-width: 500px;
  max-height: 400px;
  background-color: #ffffff;
  color: #ffffff;
  margin: 30px auto 0px;
  padding: 10px;
}

#controls,
#stats {
  border: 1px solid #0a0a23;
  padding: 5px;
  color: #0a0a23;
}

#monsterStats {
  display: none;
  border: 1px solid #0a0a23;
  padding: 5px;
  color: #ffffff;
  background-color: #c70d0d;
}

.stat {
  padding-right: 10px;
}


/* User Editable Region */

button {
    cursor: pointer;
    color: #0a0a23;
    background-color: #feac32;
    background: linear-gradient(#fecc4c, #ffac33);
    border: 3px solid #feac32;

  }

/* User Editable Region */

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 Edg/128.0.0.0

Challenge Information:

Learn Basic JavaScript by Building a Role Playing Game - Step 28

Then set the background-image property to linear-gradient(#fecc4c, #ffac33) .

You need to follow the instructions, you did not set the background-image property

Thanks for pointing out the background-image @im59138 . What got me stuck was the error that is being returned. It constantly returned the suggestion that change the background property which was set correctly.

So while I did not get to the following property being incorrectly set, I was in fact reading and trying to follow the suggested remedy. Feel free to reproduce my scenario and see for yourself (if you need to). :wink:

background overwrites background-color, because background is a shorthand that includes all the background-something properties, being written after background-color, it gets higher priority and overwrites background-color, meaning the tests, don’t see background-color anymore. It’s not a bug, it’s how CSS works, the “cascading” part refers to this

I fully understand the error I made, rookie mistake no doubt. Thanks a million for the pointer, much appreciated.

What I wanted to highlight in case anyone else gets caught in the future, is that the suggestion may not be the reason preventing you from moving forward. As evidenced in the screenshot.

I explained why that happens in my previous post, there is no background-color rule with that value applied for the order in which you have written things, see my previous post

1 Like

This is a very interesting rule you’ve pointed out to me here. In all the previous lessons of HTML and CSS, I must have missed that principle when it was made. It makes sense now that you’ve explained it. But I was oblivious to the ordinality of CSS properties.