124 lines
2.7 KiB
Markdown
124 lines
2.7 KiB
Markdown
---
|
|
id: bad87fee1348bd8aedf06756
|
|
title: Sobreescribe declaraciones de clase dando estilo a atributos ID
|
|
challengeType: 0
|
|
videoUrl: 'https://scrimba.com/c/cRkpDhB'
|
|
forumTopicId: 18251
|
|
dashedName: 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í:
|
|
|
|
```html
|
|
<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:
|
|
|
|
```css
|
|
#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`.
|
|
|
|
```js
|
|
assert($('h1').hasClass('pink-text'));
|
|
```
|
|
|
|
Tu elemento `h1` debe incluir la clase `blue-text`.
|
|
|
|
```js
|
|
assert($('h1').hasClass('blue-text'));
|
|
```
|
|
|
|
Tu elemento `h1` debe incluir el id `orange-text`.
|
|
|
|
```js
|
|
assert($('h1').attr('id') === 'orange-text');
|
|
```
|
|
|
|
Debe haber un solo elemento `h1`.
|
|
|
|
```js
|
|
assert($('h1').length === 1);
|
|
```
|
|
|
|
El id `orange-text` debe tener una declaración CSS.
|
|
|
|
```js
|
|
assert(code.match(/#orange-text\s*{/gi));
|
|
```
|
|
|
|
Tu `h1` no debe tener ningún atributo `style`.
|
|
|
|
```js
|
|
assert(!code.match(/<h1.*style.*>/gi));
|
|
```
|
|
|
|
Tu elemento `h1` debe ser naranja.
|
|
|
|
```js
|
|
assert($('h1').css('color') === 'rgb(255, 165, 0)');
|
|
```
|
|
|
|
# --seed--
|
|
|
|
## --seed-contents--
|
|
|
|
```html
|
|
<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--
|
|
|
|
```html
|
|
<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>
|
|
```
|