2009-10-17 47 views
1

好的,這是我以前從未遇到過的問題。我想使用CSS來指定元素寬度應始終以10個像素爲間隔。所以,例如,如果一個元素的寬度是11,它會碰到20,56 => 60,138 => 140等...css寬度區間

我懷疑CSS有辦法做到這一點,但我以爲我會問。這樣的事情會很好:

div { width-interval: 10px; } 
+0

我想我應該提一下,div風格也有「位置:絕對的」在它上面,所以它根據它包含的內容來改變寬度。 – spudly 2009-10-17 01:20:22

+0

我測試了我寫的jquery腳本,它可以正常工作,即使是絕對位置。 – 2009-10-17 01:51:27

回答

0

CSS不具有這樣的屬性,但你能元素的風格與寬度額外的JavaScript如:

<script type="text/javascript"> 
$(function(){ 
    var widthInterval = 20; 
    $('div').each(function(){ 
     var $this = $(this); 
     var divisions = parseInt($this.width()/widthInterval) + 1; 
     var resWidth = (divisions * widthInterval) + "px"; 
     $this.css('width', resWidth); 
     console.log("Resulted width: " + resWidth); 
    }); 
});  
</script> 

希望它能幫助。

+0

問題的正確答案是,目前沒有javascript,這是不可能的,所以我接受了這個答案。 – spudly 2009-12-01 16:57:10

1

這樣做的問題是塊級別的元素始終是窗口的大小,除非您另有指定。一旦你指定了更具體的寬度,你不需要寬度inverval。

這兩種情況會有所不同的是;

  1. 如果塊級元素被收縮包裝(在浮子和直列塊的情況下)

  2. 如果元件具有相對的寬度,即一個百分比。

但如果你將其設定爲相對的,你就不需要間隔,因爲它應該是相對於頁面上的其他東西,這樣就會變得複雜,當其他的事情不得不進行調整,以補償。舉例來說,如果我有兩個div:

<div id="one"></div> 
<div id="two"></div> 

和規則:

#one { 
width: 50%; 
width-interval: 25px; 
} 

#two { 
width: 50%; 
width-interval: 27px; 
} 

哪一個贏了?如果排列圖片或文字很重要,你可能不想要其他的,但它不能忽視兩者。

我認爲這個想法很好,但可能會更好地處理javascript,因爲您要求它是動態的並且基於「最近」的間隔。這可以工作:

$(function() { 

$(div).each(function() { 
    var cur_width = $(this).width(); 
    var inverval_diff = cur_width % 10; 
    $(this).width(cur_width + inverval_diff); 
}); 

}); 

以上是在jQuery中,萬一你不使用它作爲你的js框架。