比方說,我有這個針對第n列(由列數制)
<ul>
<li>test</li>
<li>test</li>
<li>test</li>
<li>test</li>
<li>test</li>
<li>test</li>
</ul>
ul {
column-count: 2;
}
,我想對齊第一列右側第二要離開了,有什麼辦法針對那些一列使用CSS選擇器?
比方說,我有這個針對第n列(由列數制)
<ul>
<li>test</li>
<li>test</li>
<li>test</li>
<li>test</li>
<li>test</li>
<li>test</li>
</ul>
ul {
column-count: 2;
}
,我想對齊第一列右側第二要離開了,有什麼辦法針對那些一列使用CSS選擇器?
截至目前,沒有辦法針對純CSS n列。
ul li:nth-child(1) {
text-align: right;
}
ul li:nth-child(2) {
text-align: left;
}
不行,我需要將第一列的所有元素對齊到右邊,第二列的所有元素都在左邊。這隻會對齊第一列的第一個和第二個元素。 – foxx
您可以使用column-gap
做你想做的,但因爲一個不能使用calc(100% - liWidth * colCount)
作爲column-count
一個值,你不得不使用一些JavaScript現在
function calcGap() {
var gap = window.innerWidth - (columnCount * listWidth) + "px";
ul.style.webkitColumnGap = gap;
ul.style.columnGap = gap;
}
calcGap(); // Fire on load
window.onresize = calcGap; // Fire on window resize
使用此方法ç一個有什麼text-align
你想要的以及不搞亂其他對齊屬性
嗯,我a)不想使用JavaScript b)兩列都在您的演示中左對齊...整點我做這個_experiment_因爲我試圖做到這一點http:// imgur .com/Bf6wPhW使用css列。這個想法是有50%的寬度,所以邊界看起來連接,左/右對齊將照顧對中。 – foxx
目前還不清楚,如果你想對齊整個列或內部的元素。
如果你想要第一個,Zach Saucier的答案就是這樣。
如果是後者,你想一個CSS唯一的解決辦法,這將是這樣的:
.container {
-webkit-column-count: 2;
-moz-column-count: 2;
-ms-column-count: 2;
column-count: 2;
}
li {
text-align: right;
}
li:nth-last-child(6) ~ li:nth-child(n+4) {
text-align: left;
background-color: lightblue;
}
li:nth-last-child(8) ~ li:nth-child(n+5) {
text-align: left;
background-color: lightblue;
}
li:nth-child(n+4) {
color: red;
}
li:nth-last-child(6) {
border: solid 1px green;
}
它是基於在asumption這三元素都具有相同的高度,所以第2列將從中間元素開始。
該解決方案有2個問題。
首先,編寫起來很麻煩,因爲您需要列表中每個元素的規則。
其次,它在瀏覽器,在那裏它不正確計算的元素(這就是爲什麼我添加了額外的樣式顯示是怎麼回事)
一個更好的當前版本中的錯誤演示
是否總是有一定數量的元素?或者它是動態的,這樣每列中的元素數量可能會發生變化? –
對我們而言的任何反饋? –
你走了... – foxx