이 질문은 특히 표시용으로 두 열에 걸쳐 순서 없는 목록을 표시하는 방법을 탐구합니다. Internet Explorer와 같은 레거시 브라우저에서.
최신 브라우저에서 CSS3 열 모듈은 열 생성을 지원합니다. 이 모듈을 활용하면 다음과 같이 원하는 레이아웃을 얻을 수 있습니다.
ul { columns: 2; -webkit-columns: 2; -moz-columns: 2; }
레거시 브라우저의 경우 콘텐츠 변경 시 DOM 조작과 관련된 JavaScript 기반 솔루션이 필요합니다. 이 솔루션은 jQuery를 사용합니다. 간결함:
HTML:
<div> <ul class="columns" data-columns="2"> <li>A</li> <li>B</li> <li>C</li> <li>D</li> <li>E</li> <li>F</li> <li>G</li> </ul> </div>
JavaScript:
(function($){ var initialContainer = $('.columns'), columnItems = $('.columns li'), columns = null, column = 1; // account for initial column function updateColumns(){ column = 0; columnItems.each(function(idx, el){ if (idx !== 0 && idx > (columnItems.length / columns.length) + (column * idx)){ column += 1; } $(columns.get(column)).append(el); }); } function setupColumns(){ columnItems.detach(); while (column++ < initialContainer.data('columns')){ initialContainer.clone().insertBefore(initialContainer); column++; } columns = $('.columns'); } $(function(){ setupColumns(); updateColumns(); }); })(jQuery);
CSS:
.columns{ float: left; position: relative; margin-right: 20px; }
참고:
처음에는 이 솔루션은 다음과 같이 열의 순서를 지정합니다.
A E B F C G D
원래 질문에서는 대신 다음과 같은 순서를 요청했습니다.
A B C D E F G
이 변형의 경우 다음 JavaScript 코드를 조정합니다.
function updateColumns(){ column = 0; columnItems.each(function(idx, el){ if (column > columns.length){ column = 0; } $(columns.get(column)).append(el); column += 1; }); }
위 내용은 최신 브라우저와 레거시 브라우저에서 순서가 지정되지 않은 목록을 두 열에 표시하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!