利用CSS3 columns 列模块显示两列无序列表实现两栏布局

  现代浏览器

  现代的浏览器可以使用Css3列模块来实现该功能。

  参考文档:http://www.w3schools.com/cssref/css3_pr_columns.asp

  CSS:

  ul {

  columns: 2;

  -webkit-columns: 2;

  -moz-columns: 2;

  }

  代码链接郑州妇科医院:http://jbk.39.net/yiyuanzaixian/sysdfkyy/郑州妇科医院哪家好:http://jbk.39.net/yiyuanzaixian/sysdfkyy/同济妇科好专家:http://jbk.39.net/yiyuanzaixian/sysdfkyy/郑州做无痛人流多少钱:http://jbk.39.net/yiyuanzaixian/sysdfkyy/

  老版本的浏览器

  很不幸的是出于对于IE支持,将需要使用JavaScript和dom操作的代码解决方案。这意味着,每当列表的内容发生更改时,你都需要执行将列表重新排序为列并重新打印的操作。

  为了简洁,下面的代码演示使用jQuery。

  代码链接

  HTML:

  A

  B

  C

  D

  E

  F

  G

  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

  当DOM发生变化的时候:

  A B

  C D

  E F

  G

  要完成此变化,只需将代码更改为以下代码:

  function updateColumns(){

  column = 0;

  columnItems.each(function(idx, el){

  if (column > columns.length){

  column = 0;

  }

  $(columns.get(column)).append(el);

  column += 1;

  });

  }

猜你喜欢

转载自blog.csdn.net/q2834560049/article/details/88420271