2017-08-16 169 views
0

我在Typo3中有一個節點,裏面有很多頁面,我想在4列中顯示爲一個菜單。列的排序應該從左到右,然後環繞。如何在Typo3中將菜單分成多列?

像這樣:

Col1  Col2  Col3  Col4 
A   B   C   D 
E   F   G 
+1

這應該在CSS來進行,而不是在CMS/HTML(例如由於可維護性,可訪問性和不同的視口大小),特別是大多數視口不允許使用4列。引導組件可以幫助,否則像http://lea.verou.me/2011/01/styling-children-based-on-their-number-with-css3/應該做的伎倆。 – NextThursday

+0

是的,我完全同意 - 但客戶的願望並不總是反映最佳實踐。在這種情況下,客戶給出的html結構將被打印錯誤地重現。我自己總是試圖讓東西浮到原地,這樣減少的空間只會導致更少的列。 –

回答

0

在我的解決方案(在Typo3的LTS 6.2已完成,但應與所有當前版本以及工作),我用這個方法來實現的列。請注意,格式化考慮與引導來完成:

# Menu with 4 columns 
lib.columnMenu = COA 
lib.columnMenu { 

    10.wrap = <div class="col-sm-3"><ul> | </ul></div> 
    10 = HMENU 
    10.special = directory 
    10.special.value = INSERT YOUR PAGE ID HERE 

    10.1 = TMENU 
    10.1.NO{ 
    allWrap=<li>|</li> 

    stdWrap.if.isFalse.prioriCalc=1 
    stdWrap.if.isFalse.cObject=TEXT 
    stdWrap.if.isFalse.cObject.insertData=1 
    stdWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+3)%4 

    allWrap.if.isFalse.cObject=TEXT 
    allWrap.if.isFalse.prioriCalc=1 
    allWrap.if.isFalse.cObject.insertData=1 
    allWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+3)%4 
    } 

    20 < .10 
    20.wrap = <div class="col-sm-3"><ul> | </ul></div> 

    20.1.NO{ 
    allWrap = <li>|</li> 
    stdWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+2)%4 
    allWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+2)%4 
    } 

    30 < .10 
    30.wrap = <div class="col-sm-3"><ul> | </ul></div> 

    30.1.NO{ 
    allWrap = <li>|</li> 
    stdWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+1)%4 
    allWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ}+1)%4 
    } 

    40 < .10 
    40.wrap = <div class="col-sm-3"><ul> | </ul></div> 

    40.1.NO{ 
    allWrap = <li>|</li> 
    stdWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ})%4 
    allWrap.if.isFalse.cObject.value=({register:count_HMENU_MENUOBJ})%4 
    }  
    } 
} 
# End Menu 

然後你只包括一些流體模板菜單部分是這樣的:

<div class="row mb-20"> 
    <f:cObject typoscriptObjectPath="lib.columnMenu"/> 
</div>