2013-12-11 18 views
0

例如,我有這樣一個清單:如何使一個具有固定高度的UL列表項目顯示爲列?

1 
2 
3 
4 
5 
6 
7 
8 

,我想它看起來像

1 5 
2 6 
3 7 
4 8 

那麼,怎樣度過,即使沒有任何JavaScript的工作嗎?

我有這樣的代碼:

<ul> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
    <li>4</li> 
    <li>5</li> 
    <li>6</li> 
    <li>7</li> 
    <li>8</li> 
</ul> 

而且

ul{ 
    height:200px; 
} 

,我也需要的代碼通過IE8和IE9

更新支持在我看來,我明白了。它看起來有點奇怪,但無論如何。

<ul> 
    <li>1</li> 
    <li>2</li> 
    <li>3</li> 
    <li>4</li> 
    <li>5</li> 
    <li>6</li> 
    <li>7</li> 
    <li>8</li> 
</ul> 

和CSS

ul{ 
    border:1px solid; 
    position:relative; 
    height:100px; 
} 
li{ 
    height:20px; 
} 
li:nth-child(4)~li{ 
    left:100px; 
    top:-80px; 
    position:relative; 
} 
+0

html,css ...你做的任何事情???? – NoobEditor

+0

你可以通過硬編碼絕對位置(或內嵌CSS)來實現這一點,但是在這一點上,更好的解決方案實際上就是使用JavaScript。 – Wex

+0

這就是我要找的!我已經按照你描述的方式制定了它,但是失去了解決方案。你能擴展一下你的想法嗎?我的意思是絕對定位。 – Zeihlis

回答

2

你需要的是CSS3相對欄的屬性,如列數等 我做出的jsfiddle一個example。我對這一點不太瞭解,所以我通過精確計算身高來達到結果,但我認爲你可以用自己的方式得到結果。

reference可能會有所幫助。

HTML代碼:

<div class="newspaper"> 
    <div class="unit">1</div> 
    <div class="unit">2</div> 
    <div class="unit">3</div> 
    <div class="unit">4</div> 
    <div class="unit">5</div> 
    <div class="unit">6</div> 
</div> 

CSS代碼:

.newspaper { 
    -moz-column-count:3; 
    /* Firefox */ 
    -webkit-column-count:3; 
    /* Safari and Chrome */ 
    column-count:3; 
    height: 300px; 
} 
.unit { 
    height:50px; 
    width:100%; 
    border:1px solid gray; 
} 

注:的Internet Explorer 9,和更早的版本,不支持的列數屬性。

+0

IE9和更早版本支持什麼? – Zeihlis

+0

@Zeihlis對不起,我不認爲以前的瀏覽器會支持這個CSS屬性,在這種情況下,使用javascript代碼來調整元素位置可能是實現它的唯一方法。 – Merlin

+0

@Zeihlis你好,我發現一個博客談論列計數的替代方案。檢查它,希望它會幫助http://pterkildsen.com/2012/12/08/css3-columns-in-internet-explorer-7-8-and-9/ – Merlin

0

,你可以不喜歡它

HTML

<ul> 
    <li class="column1"><a href="#">1</a></li> 
    <li class="column1"><a href="#">2</a></li> 
    <li class="column1"><a href="#">3</a></li> 
    <li class="column1"><a href="#">4</a></li> 
    <li class="column1"><a href="#">5</a></li> 
    <li class="column2 reset"><a href="#">5</a></li> 

    <li class="column2"><a href="#">6</a></li> 
    <li class="column2"><a href="#">7</a></li> 
    <li class="column2"><a href="#">8</a></li> 
    <li class="column2"><a href="#">9</a></li> 

    <li class="column3 reset"><a href="#">10</a></li> 
    <li class="column3"><a href="#">11</a></li> 
    <li class="column3"><a href="#">12</a></li> 
    <li class="column3"><a href="#">13</a></li> 
    <li class="column3"><a href="#">14</a></li> 
    <li class="column3"><a href="#">15</a></li> 
</ul> 

並檢查以下CSS

ul 
{ 
    margin: 0 0 1em 2em; 
    padding: 0; 
    list-style-type: none; 
} 

    ul li 
    { 


    line-height: 1.2em; 



    margin: 0; 
    padding: 0; 
} 



* html ul li 
{ 
         position: relative; 
} 


ul li.column1 { margin-left: 0em; } 
ul li.column2 { margin-left: 10em; } 
ul li.column3 { margin-left: 20em; } 



li.reset 
{ 
     margin-top: -6em; 
} 


ul li a 
{ 
     display: block; 
     width: 7em; 
     text-decoration: none; 
} 
ul li a:hover 
{ 
     color: #FFF; 
     background-color: #A52A2A; 
} 

並檢查此琴:

http://jsfiddle.net/9RcVr/

相關問題