Files
freeCodeCamp/curriculum/challenges/espanol/01-responsive-web-design/basic-css/override-class-declarations-by-styling-id-attributes.md
2021-03-21 10:58:20 -06:00

2.7 KiB

id, title, challengeType, videoUrl, forumTopicId, dashedName
id title challengeType videoUrl forumTopicId dashedName
bad87fee1348bd8aedf06756 Sobreescribe declaraciones de clase dando estilo a atributos ID 0 https://scrimba.com/c/cRkpDhB 18251 override-class-declarations-by-styling-id-attributes

--description--

Acabamos de comprobar que los navegadores leen CSS desde arriba hacia abajo siguiendo el orden de las declaraciones. Por lo tanto, si llega a ocasionarse un conflicto, el navegador utilizará la última declaración CSS. Ten en cuenta que incluso si hubiésemos puesto blue-text antes que pink-text en nuestro elemento de clase h1, seguiría buscando al orden de la declaración y no al orden de su uso.

Pero todavía no terminamos. Hay otras formas de sobreescribir CSS. ¿Recuerdas los atributos id?

Sobrescribamos tus clases pink-text y blue-text, y haz que el h1 sea naranja al darle al elemento h1 un id y luego estilizando ese id.

--instructions--

Dale al elemento h1 el atributo id de orange-text. Recuerda, los estilos id se ven así:

<h1 id="orange-text">

Deja las clases blue-text y pink-text en tu elemento h1.

Crea una declaración CSS para el id orange-text en el elemento style. Aquí hay un ejemplo de cómo se debería ver:

#brown-text {
  color: brown;
}

Nota: No importa si declaras este CSS arriba o debajo de la clase pink-text, ya que el atributo id siempre tendrá precedencia.

--hints--

Tu elemento h1 debe incluir la clase pink-text.

assert($('h1').hasClass('pink-text'));

Tu elemento h1 debe incluir la clase blue-text.

assert($('h1').hasClass('blue-text'));

Tu elemento h1 debe incluir el id orange-text.

assert($('h1').attr('id') === 'orange-text');

Debe haber un solo elemento h1.

assert($('h1').length === 1);

El id orange-text debe tener una declaración CSS.

assert(code.match(/#orange-text\s*{/gi));

Tu h1 no debe tener ningún atributo style.

assert(!code.match(/<h1.*style.*>/gi));

Tu elemento h1 debe ser naranja.

assert($('h1').css('color') === 'rgb(255, 165, 0)');

--seed--

--seed-contents--

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

--solutions--

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