@for დირექტივა SASS-ში

@for დირექტივის საშუალებით შეგვიძლია გამოვიტანოთ კონკრეტული სტილები იმ რაოდენობით, რომელიც მითითებულია თვლის ცვლადით. @for-ის ჩაწერის პირველი ვარიანტი ასე გამოიყურება:

scss@for $var from (დასაწყისი) through (დასასრული)

ამ შემთხვევაში დიაპაზონში მკაცრად შედის (დასაწყისი) და (დასასრული) მნიშვნელობები. აღსანიშნავია, რომ (დასაწყისი) და (დასასრული) - უნდა აბრუნებდნენ მთელ რიცხვებს, რადგან ისინი განსაზღვრავენ თვლის მიმართულებას, ანუ თუ (დასაწყისი) (დასასრულზე) ნაკლებია, თვლის მნიშვნელობა გაიზრდება და შესაბამისად, თუ პირიქით - შემცირდება.

განვიხილოთ @for დირექტივის მუშაობა სინტაქსის პირველ ვარიანტში შემდეგი მაგალითით:

styles.scss@for $count from 1 through 5 {
  .li-#{$count} {
    width: $count + px;
  }
}

კომპილაციის შედეგი:

styles.css.li-1 {
  width: 1px; 
}
.li-2 {
  width: 2px; 
}
.li-3 {
  width: 3px; 
}
.li-4 {
  width: 4px; 
}
.li-5 {
  width: 5px; 
}

მეორე ვარიანტში ჩანაწერი ასე გამოიყურება:

scss@for $var from (დასაწყისი) to (დასასრული)

ამ შემთხვევაში (დასასრული) მნიშვნელობა არ შედის დიაპაზონში.

ავიღოთ წინა მაგალითი და ჩავწეროთ იგი მეორე ვარიანტით:

styles.scss@for $count from 1 to 5 {
  .li-#{$count} {
    width: $count + px;
  }
}

ახლა კი მიაქციეთ ყურადღება მიღებულ კოდს:

styles.css.li-1 {
  width: 1px; 
}

.li-2 {
  width: 2px; 
}

.li-3 {
  width: 3px; 
}

.li-4 {
  width: 4px; 
}
Задание 1

გითხარით, რა იქნება კომპილაციის შედეგი შემდეგი კოდის:

styles.scss@for $var from 5 through 1 {
  li-#{$var} {
    padding: 10 * $var + px;
  }
}
Задание 2

გითხარით, რა იქნება კომპილაციის შედეგი შემდეგი კოდის:

styles.scss@for $var from 1 to 3 {
  .navbar-link-#{$var} {
    color: blue;
    width: 10px * $var;
  }
}