2011-12-24 23 views
2

如何根據div寬度添加html標籤?php根據div寬度添加html標籤

PHP代碼輸出HTML:

echo '<div>'; 
$json = json_decode($json_data); 
foreach ($json as $data){ 
    echo '<p>'.$data->title.'</p>'; 
} 
echo '</div>'; 

這將出認沽:

<div> 
<p>TWELFTH NIGHT</p> 
<p>MERRY CHRISTMAS</p> 
<p>CHRISTMAS GIFT</p> 
<p>XMAS</p> 
<p>HARD CANDY CHRISTMAS</p> 
<p>GOD REST YE MERRY, GENTLEMEN</p> 
<p>GOD SPEED THE PLOUGH; PLOUGH MONDAY</p> 
<p>CHRISTMAS CARDS </p> 
</div> 

CSS

div{padding:0;margin:0;width:500px;overflow:hidden;float:left;} 
p{float:left;font-size:12px;font-family:arial sans-serif;padding:0 10px 0 10px} 
h2{padding:0 10px 0 10px;} 

見綜述IN http://jsfiddle.net/sRVsP/

一些p會轉行,因爲div的寬度只有500px。我想在http://jsfiddle.net/sRVsP/1/

插入<h2>toggle</h2>後,在第一行的末尾添加<h2>toggle</h2><h2>toggle</h2>包括500px

看到它可能容易做到與jQuery,但難以在PHP。可能是我應該算每個字的寬度是這樣的:

$json = json_decode($json_data); 
foreach ($json as $data){ 
    echo (strlen($data->title)*7+20).'<br />'; 
} 

6px-7pxfont-size:12px;font-family:arial sans-serif;字體寬度,20px爲左,右填充,然後做一些法官寬度words width plus,也應該考慮插入<h2>toggle</h2>寬度...

所以任何人都可以給我一些很好的方法來解決我的問題嗎?在第一行的末尾自動插入<h2>toggle</h2>,如果太多的p會在div中轉行?

可能是我的想法是不正確的......謝謝。

+1

PHP沒有關於在某人的瀏覽器中看起來像什麼頁面的概念。它也無法像CSS那樣解析CSS,因此它無法獲取信息,比如你設置div的寬度。我認爲你唯一的選擇可能是重新考慮你的頁面設計。 – GordonM 2011-12-24 07:44:12

+0

@GordonM,是的,我也知道PHP不能解析CSS,所以你有一些建議重新設計我的情況?謝謝。 – 2011-12-24 09:19:29

回答

0

這顯然是在PHP中做的矯枉過正。我建議使用像this one這樣的jQuery插件來限制div的高度,並在div下放置一個「show more」按鈕。