横向布局情况下,页面左右自适应文章内容的问题

自从平板出现后,页面左右布局的越来越多。尤其是看文章,估计都觉得翻书的体验很好用。css也适应变化,出现了许多新的属性(或者是之前就有,本人木有用过。。。)

需求

首先我们分析下大概的需求:

  • 1
    <div>
  • 2
        <p>....</p>
  • 3
    </div>

p标签中是详细内容,这里的内容可能会比较多,div就是其容器了。比如这个div宽度是320,高度是从头到底部,然后,就是在页面内容比较多的时候,在右面第二列显示余下内容。。。

这个需求在以前是很奇怪的,但在平板上这个需求就看起来很正常了。

css

我们找找对应的一些css写法:

column-count:这是指布局分几列;
column-fill:每一列的填充方式,auto是填满一列,再填下一列,balance是平均填充,就是没列的高度差不多一样。

实现

好了,知道了css如何使用,我们就可以动态控制页面的css来实现。实现方案呢,当然是先判断p标签的高度是不是高于容器div,然后。。。废话太多了,上代码吧(jquery):

  • 1
    function Auto(){
  • 2
        var width=320;
  • 3
         if($("div>p").height()>$("div").height())
  • 4
         {
  • 5
              var count=parseInt($(".description").css("column-count"));
  • 6
              if(isNaN(count))count=1;
  • 7
              count++;
  • 8
              $("div").width(320*count);
  • 9
              $("div").css("column-count",count);
  • 10
              $("div").css("-webkit-column-count",count);
  • 11
              $("div").css("-moz-column-count",count);
  • 12
              $("div").css("column-fill","auto");
  • 13
              if(count<3){
  • 14
                      Auto();
  • 15
              }                                
  • 16
         }
  • 17
         return false;
  • }

这是一个递归了,当然这里谨慎的设置了最多只支持三次递归。

评论

此博客中的热门博文

搜索即服务平台searchify的基本概念

部分开放平台url分享统计api

域名从sinaapp转到这里来了