Sütunlara büyük metin bölmek için

3 Cevap php

Problem:

Metnin büyük bir parça var:

<div class="cont">
    <p>
        Sed ut perspiciatis, unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, 
        totam rem aperiam eaque ipsa, quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt, 
        explicabo. Nemo enim ipsam voluptatem, quia voluptas sit, aspernatur aut odit aut fugit, sed quia consequuntur 
        magni dolores eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, qui dolorem ipsum, quia 
        dolor sit, amet,
    </p> 
    <p>
        consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt, ut labore et dolore magnam 
        aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit 
        laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit, qui in ea 
        voluptate velit esse, quam nihil molestiae consequatur, vel illum, qui dolorem eum fugiat, quo voluptas 
        nulla pariatur? At vero eos et 
    </p>
    <p>
        accusamus et iusto odio dignissimos ducimus, qui blanditiis praesentium voluptatum deleniti atque 
        corrupti, quos dolores et quas molestias excepturi sint, obcaecati cupiditate non provident, similique sunt 
        in culpa, qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis 
        est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio, cumque nihil impedit, 
        quo minus id, quod maxime placeat, 
    </p>
    <p>
        facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam 
        et aut officiis debitis aut rerum necessitatibus saepe eveniet, ut et voluptates repudiandae sint et 
        molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus
         maiores alias consequatur aut perferendis doloribus asperiores repellat.
    </p>
    <p>
        Sed ut perspiciatis, unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, 
        totam rem aperiam eaque ipsa, quae ab illo inventore veritatis et quasi architecto beatae vitae dicta 
        sunt, explicabo. Nemo enim ipsam voluptatem, quia voluptas sit, aspernatur aut odit aut fugit, sed quia 
        consequuntur magni dolores eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, qui 
        dolorem ipsum, quia dolor sit, amet,
    </p> 
    <p>
        consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt, ut labore et dolore 
        magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis 
        suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit, 
        qui in ea voluptate velit esse, quam nihil molestiae consequatur, vel illum, qui dolorem eum fugiat, 
        quo voluptas nulla pariatur? At vero eos et 
    </p>
    <p>
        accusamus et iusto odio dignissimos ducimus, qui blanditiis praesentium voluptatum deleniti atque 
        corrupti, quos dolores et quas molestias excepturi sint, obcaecati cupiditate non provident, similique 
        sunt in culpa, qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem 
        rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi 
        optio, cumque nihil impedit, quo minus id, quod maxime placeat, 
    </p>
    <p>
        facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam 
        et aut officiis debitis aut rerum necessitatibus saepe eveniet, ut et voluptates repudiandae sint et 
        molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis 
        voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
    </p>
</div>

It is necessary: To divide it on two columns. On page it should be divided on two about identical (on height) columns.

alt text

If it is possible: metnin kabın boyutlarda değişiminde, sütun aynı yükseklik kalmalıdır. İster muhtemelen sayı "n" ayarlamak için - metnin büyük bir kısmını bölmek için kaç sütun üzerine. Yani herhangi bir sayıda sütun içine metni bölmektir.

Is available: php, XSLT, css, (jQuey olmadan) saf javascript. Ne aracı kullanmak için daha iyidir? Bu karar uyumlu сross tarayıcı olduğunu, yapmak gibi.

3 Cevap

Böyle bir başvuru bulduk.

The decision suits me. http://www.csscripting.com/css-multi-column/.

Buradan aldı: http://www.alistapart.com/articles/css3multicolumn/.

Minus: yeterince ağır js dosyası.

One more decision (works with onResize too): http://randysimons.nl/125,english/129,multi-column-text/#paragraaf_1

Eğer IE bazı sürümlerinde çalışmıyor sakıncası yoksa, sen uygulamak için çocuk oyuncağı olduğunu görmek, yeni CSS3 çoklu sütunları kullanabilirsiniz:

http://www.css3.info/preview/multi-column-layout/

Bu, bazı Javascript ile mümkündür. Aşağıdaki algoritma now Columns_Fit,

  1. İlk olarak, en büyük boy ile en küçük boy ve sütun ile sütun bulabilirsiniz.
  2. Adım # 1 bulundu büyük sütunun birinci fıkrasında bir kelimeyi kaldırmak ve adım # 1 üzerinde bulunan küçük sütuna bu kelimeyi ekleyin.
  3. İki sütun yüksekliğini karşılaştırın.
  4. Onların hala farklı adımı yineleyin 2. eğer.

Bu algoritma ilkedir. Örneğin, yaklaşımı "orta giderek" her sütun için tekrarlamak gerekir:

<div id="col1"></div>
<div id="col2"></div>
<div id="col3"></div>
<div id="col4"></div>

The above columns are order from the smallest one (col1) to the highest one (col4). Start with col1 and col4, and perform on them Columns_Fit algorithm. Later, perform the Columns_Fit algorithm on the next two column: col2 and col3. This is why I call this approach "going to the middle".

Tüm sütunlar exactly yüksekliği eşit yükseklikte bir sapma olması gerektiğini olabileceğini unutmayın. Sapma hattı yüksekliğine eşit ya da hat yüksekliğinden fazladır. (Sapma> = satır yüksekliği)

İlginç Referans: Cross-Column Pull-Outs Daniel M. Frommelt@alistapart.com tarafından