2011-04-09 62 views
1

我已經制作了一個類,可以產生多種不同的條碼類型的分配,例如: - 任何圖片格式,GIF,JPG,PNG,SVG等 - 壓縮的JavaScript(JS) - 帶內聯樣式的Html將內聯樣式轉換爲使用php的css

該類已經過優化,可通過「繪製」僅黑色信息儘可能減小條形碼的輸出。

由於條形碼的HTML版本可以是巨大的操作(雖然它已經優化),我不知道是否有一個類或函數,可以將內聯樣式轉換爲風格的標籤,例如:

輸出(只需要幾行):

<div id="mybarcode"> 
<div style="position:absolute;margin-left:26px;width:2px;height:128px;background:#000;"></div> 
<div style="position:absolute;margin-left:34px;width:2px;height:128px;background:#000;"></div> 
<div style="position:absolute;margin-left:36px;width:2px;height:48px;background:#000;"></div> 
...... 
...... 

這就是我想要的:

<style> 
    #mybarcode div {position:absolute;width:2px;height:128px;background:#000;} 
    </style> 
    .... 
    .... 

    <div id="mybarcode"> 
    <div style="margin-left:26px;"></div> 
    <div style="margin-left:34px;"></div> 
    <div style="margin-left:36px;height:48px;"> 
    .... 
    .... 

如果發現了一類,可以做我想做的對立面,但不是我的情況。有人知道是否有類可以做這樣的事情與HTML?用內聯樣式將其他頁面轉換爲具有外部CSS的html也很有用。

謝謝你的回答!親切的問候。

+0

這應該首先作爲條形碼類的HTML生成部分的一部分來完成,而不是之後應用的部分。 *您可以控制*標記生成。 – thirtydot 2011-04-09 21:51:08

+0

你的聲明絕對正確,但由於格式繁多,課程已經非常複雜。將這種優化整合到代碼中並不容易,事後做起來更容易。內容將被緩存,因此只能運行一次。 – Codebeat 2011-06-25 19:16:46

+0

什麼是相反的類? – Jrgns 2011-08-17 09:36:32

回答

1

不應該太難。

算法的概要:

  • 看看每個元素提取內嵌樣式規則
  • 找出所有元素的共同點
  • 樣式提取這些樣式到下一個style標籤一個類(即common
  • 刪除多餘的內聯樣式並將common類添加到元素

您可以使用Simple HTML Dom Parser來執行實際的元素操作。 CSS規則本身很容易解析,所以正則表達式就是我要用的。特別是在你的情況下,因爲你編寫了生成HTML的代碼,所以你會知道你可能遇到的CSS規則。

+0

感謝您的快速回答,但是我想要一個像css-in-inline-styles類一樣的通用解決方案(但只能以相反的方式)。我喜歡知道這樣的課是否在爲了避免我開始重新發明輪子。我也知道你建議的DOM解析器,我的CMS是建立在它之上的,它很棒。但我也有一個函數suGetTextBetween(),它可以一次獲取所有樣式。但是,就像我之前說過的,如果已經有解決方案,我想知道。 – Codebeat 2011-04-09 21:38:58

+0

我無法找到預製解決方案。 – 2011-04-09 22:31:38