2017-10-21 56 views
0

有了這個HTML:使1噸不等,4 TD的行爲,如:2 TR在每個1倍的TD和1 TR 2 TD的,只有用CSS

<table> 
    <tr> 
     <td>1</td> 
     <td>2</td> 
     <td>3</td> 
     <td>4</td> 
    </tr> 
</table> 

我得到這樣的輸出:

1 2 3 4 

但我想要的是:

1 
2 3 
4 

我怎樣才能做到這一點不改變HTML,只能用CSS?

如果我這樣做:

td { display: table-row; } 
td:nth-child(2), td:nth-child(3) { display: table-cell; } 

它不工作。但是,如果我去掉「顯示:表芯」我只需要進行2和3 TD到1 TR

例子:https://jsfiddle.net/1h3eyLqk/

回答

1

你可以在這裏使用Flexbox,使第一和最後一個單元格採取100%的寬度。

tr { 
 
    display: inline-flex; 
 
    flex-wrap: wrap; 
 
} 
 
td { 
 
    flex: 1; 
 
    text-align: center; 
 
} 
 
td:first-child, 
 
td:last-child { 
 
    flex: 0 0 100%; 
 
}
<table> 
 
    <tr> 
 
    <td>1</td> 
 
    <td>2</td> 
 
    <td>3</td> 
 
    <td>4</td> 
 
    </tr> 
 
</table>

+0

不知怎的,這AINT在IE11的工作,無論是在新的iPhone,爲什麼呢? – user2192013

+0

不確定,看看這裏的已知問題http://caniuse.com/#search=flexbox和這裏https://stackoverflow.com/questions/35137085/flexbox-code-working-on-all-browsers-except -safari-爲什麼/ 35137869#35137869 –