freeCodeCamp/curriculum/challenges/english/01-responsive-web-design/basic-css/override-class-declarations...

3.2 KiB

id title challengeType videoUrl forumTopicId
bad87fee1348bd8aedf06756 Override Class Declarations by Styling ID Attributes 0 https://scrimba.com/c/cRkpDhB 18251

Description

We just proved that browsers read CSS from top to bottom in order of their declaration. That means that, in the event of a conflict, the browser will use whichever CSS declaration came last. Notice that if we even had put blue-text before pink-text in our h1 element's classes, it would still look at the declaration order and not the order of their use! But we're not done yet. There are other ways that you can override CSS. Do you remember id attributes? Let's override your pink-text and blue-text classes, and make your h1 element orange, by giving the h1 element an id and then styling that id.

Instructions

Give your h1 element the id attribute of orange-text. Remember, id styles look like this: <h1 id="orange-text"> Leave the blue-text and pink-text classes on your h1 element. Create a CSS declaration for your orange-text id in your style element. Here's an example of what this looks like:
#brown-text {
  color: brown;
}

Note: It doesn't matter whether you declare this CSS above or below pink-text class, since id attribute will always take precedence.

Tests

tests:
  - text: Your <code>h1</code> element should have the class <code>pink-text</code>.
    testString: assert($("h1").hasClass("pink-text"));
  - text: Your <code>h1</code> element should have the class <code>blue-text</code>.
    testString: assert($("h1").hasClass("blue-text"));
  - text: Your <code>h1</code> element should have the id of <code>orange-text</code>.
    testString: assert($("h1").attr("id") === "orange-text");
  - text: There should be only one <code>h1</code> element.
    testString: assert(($("h1").length === 1));
  - text: Your <code>orange-text</code> id should have a CSS declaration. 
    testString: assert(code.match(/#orange-text\s*{/gi));
  - text: Your <code>h1</code> should not have any <code>style</code> attributes.
    testString: assert(!code.match(/<h1.*style.*>/gi));
  - text: Your <code>h1</code> element should be orange.
    testString: assert($("h1").css("color") === "rgb(255, 165, 0)");

Challenge Seed

<style>
  body {
    background-color: black;
    font-family: monospace;
    color: green;
  }
  .pink-text {
    color: pink;
  }
  .blue-text {
    color: blue;
  }
</style>
<h1 class="pink-text blue-text">Hello World!</h1>

Solution

<style>
  body {
    background-color: black;
    font-family: monospace;
    color: green;
  }
  .pink-text {
    color: pink;
  }
  .blue-text {
    color: blue;
  }
  #orange-text {
    color: orange;
  }  
</style>
<h1 id="orange-text"  class="pink-text blue-text">Hello World!</h1>