freeCodeCamp/curriculum/challenges/italian/03-front-end-development-li.../sass/use-for-to-create-a-sass-lo...

2.7 KiB

id title challengeType forumTopicId dashedName
587d7dbe367417b2b2512bb9 Usare @for per creare un ciclo in Sass 0 301462 use-for-to-create-a-sass-loop

--description--

La direttiva @for aggiunge stili in un ciclo, in modo molto simile a un ciclo for di JavaScript.

@for è usato in due modi: "start through end" o "start to end". La differenza principale è che "start to end" esclude il numero finale dal conteggio, mentre "start through end" include il numero finale nel conteggio.

Ecco un esempio di start through end:

@for $i from 1 through 12 {
  .col-#{$i} { width: 100%/12 * $i; }
}

La parte #{$i} è la sintassi che combina una variabile (i) con il testo per formare una stringa. Quando il file Sass viene convertito in CSS, appare così:

.col-1 {
  width: 8.33333%;
}

.col-2 {
  width: 16.66667%;
}

...

.col-12 {
  width: 100%;
}

Questo è un modo potente per creare un layout griglia. Ora hai dodici opzioni per le larghezze delle colonne disponibili come classi CSS.

--instructions--

Scrivi una direttiva @for che usa una variabile $j che va da 1 a 6.

Dovrebbe creare 5 classi chiamate da .text-1 a .text-5 dove ognuna ha una font-size impostata a 15px moltiplicata per l'indice.

--hints--

Il tuo codice dovrebbe utilizzare la direttiva @for.

assert(code.match(/@for /g));

La tua classe .text-1 dovrebbe avere un font-size di 15px.

assert($('.text-1').css('font-size') == '15px');

La tua classe .text-2 dovrebbe avere un font-size di 30px.

assert($('.text-2').css('font-size') == '30px');

La tua classe .text-3 dovrebbe avere un font-size di 45px.

assert($('.text-3').css('font-size') == '45px');

La tua classe .text-4 dovrebbe avere un font-size di 60px.

assert($('.text-4').css('font-size') == '60px');

La tua classe .text-5 dovrebbe avere un font-size di 75px.

assert($('.text-5').css('font-size') == '75px');

--seed--

--seed-contents--

<style type='text/scss'>



</style>

<p class="text-1">Hello</p>
<p class="text-2">Hello</p>
<p class="text-3">Hello</p>
<p class="text-4">Hello</p>
<p class="text-5">Hello</p>

--solutions--

<style type='text/scss'>

@for $i from 1 through 5 {
  .text-#{$i} { font-size: 15px * $i; }
}

</style>

<p class="text-1">Hello</p>
<p class="text-2">Hello</p>
<p class="text-3">Hello</p>
<p class="text-4">Hello</p>
<p class="text-5">Hello</p>

<style type='text/scss'>

@for $i from 1 to 6 {
  .text-#{$i} { font-size: 15px * $i; }
}

</style>

<p class="text-1">Hello</p>
<p class="text-2">Hello</p>
<p class="text-3">Hello</p>
<p class="text-4">Hello</p>
<p class="text-5">Hello</p>