2016-01-05 2 views
0

В моем приложении groovy/grails я могу получить свой список с флажками (и спасибо за советы).Как отобразить список на несколько столбцов в gsp

Но я не могу понять, как отобразить список в нескольких столбцах.

Вот код в моем GSP:.

<ul class="columns" column-count="3"> 
     <g:each in="${name}" var="fileName"> 
       <g:checkBox checked="false" name="${ 'fileName'}"/> ${fileName <br> 
     </g:each> 
</ul> 

я думал, что класс = «уль класс =» столбцы»столбец подсчета =„3“будет работать как прямой HTML, но я был неправ, я до сих пор получить один (длинный) список.

Что такое правильный способ сделать этот список в несколько колонок в GSP с помощью заводной тегов или правильный код HTML?

Спасибо!

ИК onmantis7x

***** Успешное ОБНОВЛЕНИЕ !!! *****

на основе ответа я принял, вот код, который я написал:

<style> 
    .columns2 { 
    -webkit-column-count: 2; 
    -moz-column-count: 2; 
    column-count: 2; } 
    </style> 

     <ul class="columns2"> 
      <g:each in="${name}" var="fileName"> 
       <g:checkBox checked="false" name="${ 'fileName'}"/> ${fileName}<br> 
      </g:each> 
     </ul> 
    </div> 

Благодаря шайка! Вы всегда помогаете мне расширять свою базу знаний и быть более успешными в том, что я люблю делать, и это программное обеспечение!

ironmantis7x

+0

'' ul' ожидает li' детей, но вы делаете единый многострочный текст –

+0

спасибо @Igor Артамонов. Как это исправить? Извините за этот простой элементарный вопрос. – ironmantis7x

+1

также, я не думаю, что 'column-count' является стандартным атрибутом html (все еще возможно, что поддерживается сторонним js). но есть css3 с тем же именем, может быть, вы что-то упустили? –

ответ

1

Насколько мне известно, column-count это свойство CSS, а не атрибут, который может быть применен к ul тега. Вы должны иметь column-count, определенный через style= или в отдельный файл css (предпочтительный способ из-за SoC).

.columns { 
    -webkit-column-count: 3; 
    -moz-column-count: 3; 
    column-count: 3; 
} 

Кроме того, у вас есть список CheckBox входов в пределах вашего ul тега. Вы должны иметь список li (элемент списка) теги вместо:

<ul class="columns"> 
    <g:each in="${name}" var="fileName"> 
     <li><g:checkBox checked="false" name="${ 'fileName' }"/> ${fileName} </li> 
    </g:each> 
</ul> 
+0

Очевидно,' column- count' не очень хорошо поддерживается в старых браузерах (особенно IE); вы можете захотеть взглянуть на решение JavaScript вместо этого (пример - [Плагин jQuery для Columnizer] (http://welcome.totheinter.net/columnizer-jquery-plugin/)). – tylerwal

+0

Это было лучшее решение для этой задачи! – ironmantis7x

0

HTML-код в GSP производит точно такой же HTML, как вы написали, будет отправлен в браузер, как есть. Таким образом, <ul class="columns" column-count="3"> будет таким же <ul class="columns" column-count="3"> в вашем браузере.

Но вам не хватает элементов списка и помещается только один многострочный (разделенный на
) текстовый блок. Вы, вероятно, хотите:.

<ul class="columns" column-count="3"> 
    <g:each in="${name}" var="fileName"> 
     <li><g:checkBox checked="false" name="${ 'fileName' }"/> ${fileName </li> 
    </g:each> 
</ul> 

или, скорее всего, это (потому что вы не закрывал } в вашем коде, и ${ 'fileName'} не имеет никакого смысла, и вы should't поместить значения, как есть, это потенциальная уязвимость):

<ul class="columns" column-count="3"> 
    <g:each in="${name}" var="fileName"> 
     <li><g:checkBox checked="false" name="${fileName.encodeAsHTML()}"/> ${fileName.encodeAsHTML()}</li> 
    </g:each> 
</ul> 
+0

ни один из них не работал. Он просто сделал длинный маркированный список .... – ironmantis7x

+0

, скорее всего, потому что 'column-count' не является стандартным атрибутом html, вам, вероятно, понадобится настраиваемый js для обработки такого атрибута (вы упомянули в своем вопросе, что он работает в прямом html - это не так) –

Смежные вопросы