Files
freeCodeCamp/curriculum/challenges/ukrainian/03-front-end-development-libraries/sass/extend-one-set-of-css-styles-to-another-element.md

3.3 KiB
Raw Permalink Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7fa5367417b2b2512bbd Розширюйте набір СSS стилів в інший елемент 0 301456 extend-one-set-of-css-styles-to-another-element

--description--

Sass має елемент з назвою extend (розширити), який дозволяє запозичити СSS правила у одного елемента та опиратися на них в іншому.

Наприклад, наведений нижче блок СSS правил стилізує клас .panel. Він включає background-color (колір фону),height (висота) та border (рамки).

.panel{
  background-color: red;
  height: 70px;
  border: 2px solid green;
}

Тепер вам потрібна ще інша панель з назвою.big-panel. Вона має ті ж основні властивості, що і .panel, але також потребує width (ширина) і font-size (розмір шрифту). Можливо скопіювати та вставити початкові правила CSS з .panel, але код повторюється, якщо додаєте більше видів панелей. Директива extend спрощує повторне використання правил, написаних для одного елемента, і додавання нових для іншого:

.big-panel{
  @extend .panel;
  width: 150px;
  font-size: 2em;
}

Поруч з новими стилями, клас .big-panel матиме ті ж властивості, що й клас .panel.

--instructions--

Створіть клас .info-important, що розширює .info, і оберіть колір фуксії (маджента) для фону background-color.

--hints--

Оберіть magenta як колір фону background-color для вашого класу info-important.

assert(
  code.match(
    /\.info-important\s*?{[\s\S]*background-color\s*?:\s*?magenta\s*?;[\s\S]*}/gi
  )
);

Ваш клас info-important повинен мати директиву @extend, щоб перейняти дизайн класу info.

assert(
  code.match(/\.info-important\s*?{[\s\S]*@extend\s*?.info\s*?;[\s\S]*/gi)
);

--seed--

--seed-contents--

<style type='text/scss'>
  h3{
    text-align: center;
  }
  .info{
    width: 200px;
    border: 1px solid black;
    margin: 0 auto;
  }




</style>
<h3>Posts</h3>
<div class="info-important">
  <p>This is an important post. It should extend the class ".info" and have its own CSS styles.</p>
</div>

<div class="info">
  <p>This is a simple post. It has basic styling and can be extended for other uses.</p>
</div>

--solutions--

<style type='text/scss'>
  h3{
    text-align: center;
  }
  .info{
    width: 200px;
    border: 1px solid black;
    margin: 0 auto;
  }
  .info-important{
    @extend .info;
    background-color: magenta;
  }



</style>
<h3>Posts</h3>
<div class="info-important">
  <p>This is an important post. It should extend the class ".info" and have its own CSS styles.</p>
</div>

<div class="info">
  <p>This is a simple post. It has basic styling and can be extended for other uses.</p>
</div>