我們早已習慣了使用大量的div來給頁面布局,把具體的樣式交給class屬性來指配。但我們到底為什麼非要用div不可呢?我覺得大堆的div堆砌是一種毫無語義的糟糕設計,在html自帶的標籤不夠用時可以試試自定義標籤,而且這可以有全瀏覽器相容方案的。
在切圖時候經常會遇到標籤不夠用的情況,非得給元素加class才能解決,而且class的命名總是想不出合適的。這時候如果使用自定義標籤就可以解決這些問題。雖然自定義標籤也需要命名,但它的定義不再侷限於「樣式」,可以突破「樣式」的侷限使用更多詞彙。
在html5中,標籤名帶連線符「-」的標籤是用於自定義的。雖然在api中提供了document.registerelement方法用於為這些自帶標籤指派具體的型別,但即使沒有指派,它也會被作為乙個htmlunknownelement存在。而這個htmlunknownelement也同樣是繼承於htmlelement的,所以它依然是乙個標籤。
也就是說,我們可以在現代瀏覽器中使用任何標籤,它只是被作為htmlunknownelement處理而已。但我們也不能那麼隨便,為了相容考慮,自定義標籤的命名還是應該加入連線符「-」,至於registerelement步驟,如果沒有特殊需求是可以省略的,反正firefox目前也沒支援。
當然低版本瀏覽器不會直接支援這個,但我想很多人都已經知道如何讓這些奇怪的標籤在版本瀏覽器上生效了,因為一些html5新入的標籤在低版本瀏覽器上本身就是不支援的,我們通常使用document.createelement的方法來使其相容,對這些自定義標籤也是同樣的做法。
我們使用的標籤名是規範的自定義標籤名,絕對不會於預設標籤衝突,而且瀏覽器可以正常解析。低版本瀏覽器上的相容確實有點粗暴,但是html5自帶的新入標籤也同樣是這麼粗暴的相容下去的,所以這麼做也完全不會內疚。
綜合這些因素,自定義標籤是完全可以使用的,即使在商業專案上用也沒問題。唯一需要注意的是團隊開發時使用自定義標籤的統一性。
自定義標籤
由於字典的緣故,當前表中資料存的是字典表的code,所以在頁面顯示的時候需要再次進行轉換。於是我就想到了用標籤來解決這個問題。1.建立自己的標籤 public class displaytag extends tagsupport override public int doendtag throw...
自定義標籤
1 前段時間由於系統需要使用到資料字典,簡而言之就是用下拉將字典的內容顯示出來。我也是參考了一下別人的例項結合自己的業務需求,才將此功能實現。在此將大楷實現步奏記錄下來,以方便以後翻閱。2 在我們專案中使用了2張表來實現此功能。a csms t baseinfo 字典名稱 b csms t base...
自定義標籤
1 建立沒有標籤體的標籤 1 首先建立乙個jva類,去繼承 tagsupport,下面我們說一下 tagsupport 中的方法的作用 void setjspcontext jspcontext pc 這個方法中的引數就是pagecontext的父類,這個方法是由伺服器最先被呼叫的,然後我們得到我們...