2014-11-17 12 views
5

Có cách nào để tăng giá trị thuộc tính sử dụng n trong nth-child(n) để sản xuất các kết quả của:css tăng thuộc tính thứ n con đánh giá cao

div:nth-child(1){ 
    top: -5px; 
} 
div:nth-child(2){ 
    top: -10px; 
} 
div:nth-child(3){ 
    top: -15px; 
} 
div:nth-child(4){ 
    top: -20px; 
} 
div:nth-child(5){ 
    top: -25px; 
} 
+0

Có nếu bạn sử dụng một 'tiền xử lý 'như' sass' chẳng hạn như –

+0

... nếu không ... KHÔNG. –

+0

... hoặc thêm nó với jquery: $ ('div') mỗi (function (i = 1) {$ (this) .css ("top", -5 * i); i ++;}); –

Trả lời

6

Bạn có thể nếu bạn sử dụng một preprocessor như sass.

Một ví dụ:

div { 
    $var: 5; 

    @for $i from 1 through 5 { 
    &:nth-child(#{$i}) { 
     top: -#{$var}px; 
     $var: $var + 5; 
    } 
    } 
} 

Một bản demo: http://sassmeister.com/gist/7d7a8ed86e857be02d1a

Một cách khác để đạt được điều này:

div { 

    $list: 1 2 3 4 5; 

    @each $i in $list { 
    &:nth-child(#{$i}) { 
     top: -5px * $i; 
    } 
    } 
} 

Một bản demo: https://www.sassmeister.com/gist/fb5ee7aa774aafb896cd71a828882b99

+0

Bạn có thể đăng một tuyên bố tương đương với báo cáo nếu số động không? –

+0

Nhưng điều đó chỉ hoạt động nếu bạn biết bạn có 5 yếu tố. Điều gì xảy ra nếu các phần tử được thêm động? – Kokodoko

+0

SCSS luôn dịch trong CSS nên bạn không thể có biến động. Tôi cho rằng bạn đang tìm kiếm một cách duy nhất để đạt được cái gì đó giống như 'n-child (n + 1) {top: -5px * n}' nhưng tiếc là nó sẽ không hoạt động. –

Các vấn đề liên quan