2013-06-07 27 views
6

Tôi có một kịch bản mà tôi nhận được ID được tạo ra như thế nàytôi có thể viết một vòng lặp cho css

<div class="containerLength"> 
<div id="new-1"></div> 
<div id="new-2"></div> 
<div id="new-3"></div> 
<div id="new-4"></div> 
</div> 

và vân vân

là có cách nào tôi có thể viết một số css để nhắm mục tiêu chúng thông qua một vòng lặp? có thể là một cái gì đó như

#new[i; for(i=0; i<="containerLength.length"; i++)]{ 
float:left; 
} 

Có lẽ tôi đang mơ ước đúng ngày?

+4

Với plain vanilla CSS không. Tại sao không chỉ định một lớp cho các yếu tố đó? Tuy nhiên, bạn có thể thử 'div.containerLength> div {...}' – j08691

+0

Có thể một bản sao của http://stackoverflow.com/questions/4914533/do-css-functions-exist? –

+1

'div.containerLength div [id^=" mới "] {float: left; } '? Bạn đang cố gắng làm gì với những yếu tố này, một khi đã tìm thấy/'looped'? –

Trả lời

9

Bạn không thể làm vòng với CSS tinh khiết, tuy nhiên, nếu bạn đang sử dụng một cái gì đó giống như Sass hoặc ít hơn thì bạn có thể làm cả hai như:

Sass:

@for $i from 1 through 4 
    .#{$class-slug}-#{$i} 
    width: 60px + $i 

LESS:

Can you do a javascript for loop inside of LESS css?

Tuy nhiên, giả sử bạn chỉ muốn áp dụng cùng một phong cách cho mỗi lồng nhau div, bạn chỉ có thể làm

.containerLength > div{ 
    float: left; 
} 

hoặc có lẽ tạo ra một lớp tên là .float-left và áp dụng nó vào mỗi yếu tố bạn muốn nổi phải.

1

Tại sao bạn không thử này:

.containerLength > div {float:left} 
3

Bạn có thể làm

div.containerLength > div { /* > Matches only first level children of the wrapper div */ 
    float: left; 
} 
+0

Bạn không thực sự cần 'div' ban đầu, '.containerLength> div' là đủ. –

+0

@facildelembrar Tôi thường thích giữ mọi thứ rõ ràng hơn. Tôi đồng ý rằng nó không phải là bắt buộc. – karthikr

+2

Với CSS, tốt hơn là quá cụ thể hơn không đủ cụ thể. Chỉ chọn chính xác những gì bạn muốn thay đổi và không có gì khác. Tôi không thể cho bạn biết số giờ làm việc mà tôi đã bỏ ra để sửa chữa bộ chọn CSS xấu. –

2
div[id|="new"]{ 
    float: left; 
} 

documentation

Bạn có thể hoặc có thể không cần có dấu ngoặc kép, thật lạ đôi khi.

0

bạn không thể viết bất kỳ logic nào cả trong css. bạn có thể, tuy nhiên, quản lý css với JavaScript, hoặc bao gồm nhiều id trong một quy tắc, hoặc chỉ sử dụng một lớp.

Bạn cũng có thể sử dụng bộ chọn thuộc tính Css, tùy thuộc vào cách các id được sắp xếp và mức độ bạn cần hỗ trợ trình duyệt của mình.

https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors

+0

Xin cảm ơn các bạn. Điều này thực sự tuyệt vời. Thaks cho tất cả sự giúp đỡ của bạn – soum

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