--- id: 587d7fa5367417b2b2512bbd title: Estender um conjunto de estilos CSS para outro elemento challengeType: 0 forumTopicId: 301456 dashedName: extend-one-set-of-css-styles-to-another-element --- # --description-- Sass tem um recurso chamado `extend` que faz com que seja fácil pegar emprestado as regras CSS de um elemento e construir a partir delas em outro. Por exemplo, o bloco abaixo de regras CSS estiliza uma classe `.panel`. Tem um `background-color`, um `height` e um `border`. ```scss .panel{ background-color: red; height: 70px; border: 2px solid green; } ``` Agora você quer outro painel chamado `.big-panel`. Ele tem as mesmas propriedades de base que `.panel`, mas também precisa de um `width` e `font-size`. É possível copiar e colar as regras iniciais de CSS do `.panel`, mas o código se torna repetitivo à medida que você adiciona mais tipos de painéis. A diretiva `extend` é uma maneira simples de reutilizar as regras escritas para um elemento, e então adicionar mais para outro: ```scss .big-panel{ @extend .panel; width: 150px; font-size: 2em; } ``` O `.big-panel` terá as mesmas propriedades que `.panel` além dos novos estilos. # --instructions-- Faça uma classe `.info-important` que estenda `.info` e também tenha um `background-color` definido como magenta. # --hints-- A classe `info-important` deve ter um `background-color` definido para `magenta`. ```js assert( code.match( /\.info-important\s*?{[\s\S]*background-color\s*?:\s*?magenta\s*?;[\s\S]*}/gi ) ); ``` A classe `info-important` deve usar `@extend` para herdar o estilo da classe `info`. ```js assert( code.match(/\.info-important\s*?{[\s\S]*@extend\s*?.info\s*?;[\s\S]*/gi) ); ``` # --seed-- ## --seed-contents-- ```html

Posts

This is an important post. It should extend the class ".info" and have its own CSS styles.

This is a simple post. It has basic styling and can be extended for other uses.

``` # --solutions-- ```html

Posts

This is an important post. It should extend the class ".info" and have its own CSS styles.

This is a simple post. It has basic styling and can be extended for other uses.

```