Pour les navigateurs modernes, la principale approche pour afficher une liste non ordonnée sur deux colonnes consiste à utiliser l'option Module de colonnes CSS3. Cependant, pour les navigateurs existants tels qu'Internet Explorer, une solution basée sur JavaScript est nécessaire.
À l'aide du module de colonnes CSS3, vous pouvez simplement ajouter les règles CSS suivantes pour obtenir l'objectif souhaité. effet :
ul { columns: 2; -webkit-columns: 2; -moz-columns: 2; }
Pour les navigateurs existants, vous pouvez utiliser une solution JavaScript qui implique DOM manipulations. Voici un exemple de code JavaScript utilisant jQuery :
$(function(){ var initialContainer = $('.columns'), columnItems = $('.columns li'), columns = null, column = 1; function updateColumns(){ column = 0; columnItems.each(function(idx, el){ if (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'); } setupColumns(); updateColumns(); });
Et voici le CSS correspondant :
.columns{ float: left; position: relative; margin-right: 20px; }
Le code fourni ci-dessus donne la colonne suivante disposition :
A E B F C G D
Pour réaliser la variante d'aménagement demandée par le OP :
A B C D E F G
Modifiez la fonction updateColumns() comme suit :
function updateColumns(){ column = 0; columnItems.each(function(idx, el){ if (column > columns.length){ column = 0; } $(columns.get(column)).append(el); column += 1; }); }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!