代码之家  ›  专栏  ›  技术社区  ›  Meep3D

使用Javascript/jQuery将HTML拆分为多列

  •  0
  • Meep3D  · 技术社区  · 17 年前

    注:这是解决此问题的另一种计划方法: Multiple column articles in Joomla

    使用JavaScript(和jQuery)从单个HTML块创建多列系统的可行性是什么?如果可能的话,我该怎么做呢?

    2 回复  |  直到 9 年前
        1
  •  1
  •   rnnbrwn    17 年前

    您可以使用带有负边距的无序列表。

    <ul>
       <li class="col1">Eggs</li>
       <li class="col1">Ham<li>
       <li class="col2 top">Bread<li>
       <li class="col2">Butter<li>
       <li class="col3 top">Flour<li>
       <li class="col3">Cream</li>
    </ul>
    
    ul {list-style:none;}
    li {line-height:1.3em;}
    .col2 {margin-left:100px;}
    .col3 {margin-left:200px;}
    .top {margin-top:-2.6em;} /* the clincher */
    

    Smashing Magazine - The Definitive Guide to Using Negative Margins .

        2
  •  1
  •   Eldar Djafarov    17 年前

    这只是一个你如何解决问题的例子。当然,这个解决方案是可以改进的。

    function textSplitter(){
    }
    
    textSplitter.prototype.LENGTH_TO_SPLIT=5000 //max chars in single line
    
    textSplitter.prototype.split=function(id){
        var contentDiv=document.getElementById(id); // get an element
        var text=contentDiv.innerHTML; 
        var length= text.length; 
        if(length){
            var div1sbstr=text.substring(0,this.LENGTH_TO_SPLIT); //take a substring
            var div1=document.createElement("div");
            contentDiv.appendChild(div1); // append it
        }
        if(length>this.LENGTH_TO_SPLIT){
            var div2sbstr=text.substring(this.LENGTH_TO_SPLIT,this.LENGTH_TO_SPLIT*2);
            var div2=document.createElement("div");
            contentDiv.appendChild(div2);
        }
        if(length>this.LENGTH_TO_SPLIT*2){
            var div3sbstr=text.substring(this.LENGTH_TO_SPLIT*2,this.LENGTH_TO_SPLIT*3);
            var div3=document.createElement("div");
            contentDiv.appendChild(div3);
        }
    }