2013-07-26 33 views
2

的垂直順序與往常一樣,我有一見鍾情一個「簡單」的問題。CSS - 元素

我對含有一組按鈕我的網頁上一個div(鏈接,實際上,但是他們作爲按鈕)。簡單地說:

<div class="container"> 
<a href="#" id="1" class="link1 button">text</a> 
<a href="#" id="2" class="link2 button">text</a> 
<a href="#" id="3" class="link3 button">text</a> 
<a href="#" id="4" class="link4 button">text</a> 
</div> 

現在我需要做的是按照垂直順序排列它們。我的意思是:通常如果它們顯示爲內聯塊或內聯元素,它們將水平排列,當行結束時,下一個鏈接將出現以下鏈接。浮動:左邊也是一樣。 但我需要它們按照水平順序 - 換句話說,而不是行,會有設置高度的列。當列到達結尾時,下一個按鈕應出現在下一列中。

有沒有一種方法,使這種可能通過CSS?

唯一的其他辦法,我可以想像的是,我將在PHP或類似的東西的功能,但我不是真的好或知識淵博吧。但是我可以選擇把它放在那裏,所以如果你有這種解決方案,我也會很感激。

非常感謝。

+0

也許最初創建一個浮動到容器左側的列,添加塊元素直到它滿,然後在第一列之後追加另一列,重複。完全能夠用JQuery來做到這一點。 –

+0

正如我所知道的那樣,您希望鏈接從上到下垂直排列,直到結束,然後其餘鏈接應位於第二列的頂部。很難讓他們動態組織。但是,如果每個鏈接都具有指定的高度(如果鏈接是一個(或'n')行,則可以通過PHP或Javascript輕鬆計算。有鏈接靜態高度? –

回答

0

現在還沒有累,但希望它幫助。

$link_array = array(); 
$link_array[] = array('Google', 'http://google.com/'); 
$link_array[] = array('Yahoo', 'http://yahoo.com/'); 
$link_array[] = array('Bing', 'http://bing.com/'); 

$link_per_column = 10; 

foreach ($link_array as $position => $this_link) 
{ 
    if ($position % $link_per_column === 0 && ($position === 0)) 
    { 
     echo '<div class="column">'; 
     echo "<a href='{$this_link[1]}'>{$this_link[0]}</a>"; 
    } 
    elseif ($position % $link_per_column === 0 && ($position !== count($link_array))) 
    { 
     echo '</div><div class="column">'; 
     echo "<a href='{$this_link[1]}'>{$this_link[0]}</a>"; 
    } 
    elseif (($position === count($link_array))) 
    { 
     echo "<a href='{$this_link[1]}'>{$this_link[0]}</a>"; 
     echo '</div>'; 
    } 
    else 
    { 
     echo "<a href='{$this_link[1]}'>{$this_link[0]}</a>"; 
    } 
} 
+0

是的,這是一個有用的解決方案,因爲我的按鈕具有一定的寬度。非常感謝你。 –

+0

幸福的聽到':)'。在答案的左上方勾選勾號是很好的,這意味着您的問題已得到解答,並且不會再留在未答覆的問題列表中。 –