元素,顧名思意,就是用來宣告是「模板元素」。
看下下面四種巢狀html,同時內容不顯示,不會有請求的寫法:
1. 標籤內容隱藏性
這個很討厭的。
為文字域,裡面巢狀的html片段會被當做文字域的值。但,文字域本身是可見的,因此需要額外的設定
display: none;
是個很老很特殊的屬性,語義為
example
,示例。據說後來被標籤取代而廢止,實際上,目前,所有的瀏覽器都是支援的。但是,其跟
標籤不能劃等號。
裡面有個
標籤,顯示的則是一張,而
呈現的就是一段html**。不過,與
一樣,內容不顯示的話,還需要額外的設定
display: none;
上面這個標籤上沒有設定
display: none;
,注意到了沒有。為何?這只是發揮了標籤元素的原本特性,天生
display:none
,同時模板元素內部內容是死活不會呈現的。因此,無需設定隱藏。這就是html5 標籤元素特徵之一:標籤內容隱藏性.
2. 標籤位置任意性
除了上面子元素天然隱藏外,
標籤還有乙個特性,就是位置任意性,這非常類似
或者
標籤,可以在
中,也可以在
或者
中。
3. childnodes無效性
雖然,肉眼看上去是標籤裡面還有很多子標籤,這種慣性思維在這裡是不受用的。假設變數
template
是我們獲得的乙個標籤dom(裡面一大堆html**),你會發現:
template.childnodes
是個空大屁。我們可以使用template.innerhtml
獲取完整的html片段。如果你非得獲取「偽子元素」。也是有辦法的,ok,睜大眼睛,要使用content
屬性。
template.content
會返回乙個文件片段,你可以理解為另外乙個document
,然後,使用document
下的一些查詢api就可以獲得標籤裡面的「偽子元素」了。例如,獲得第一張元素則是:
var image_first = template.content.queryselector("img");
模板元素與css
如果瀏覽器有眼不識泰山,認為就是個普通的自定義元素,則顯示的就會使下面這個樣子,內部的標籤按照一般的標籤渲染了,例如ie11:
如果瀏覽器與時俱進,則顯示會是下面這樣,自身css渲染,內部標籤直接異空間不渲染,例如chrome:
也就是說,雖然從css的角度看,就是個跟css打得火熱的普通元素,但是,從html角度看,其猶如帶土的寫輪眼,可以讓內部標籤轉移到異空間,血跡界限般稀有。
預設情況下,是隱藏的,實際是預設其
display
屬性為none
. 使用下面的**一測便知:
window.getcomputedstyle(template).display; // 結果是"none"
因此,demo中才設定了如下的css宣告:
template模板的轉殖如果你是在html字串上處理,類似於現在流行的mvc框架或模板技術,則
template.innerhtml
足矣。然,
比
強大之處在於,
內部內容只能當做字串來獲取,而
雖然存在於異空間,但是,依然可以節點獲取(上面有展示),以及完整轉殖,語法類似下面:
var clone = document.importnode(template.content, true);
html5標籤屬性大全 HTML5
音訊格式 屬性 值描述 屬性 值描述 屬性值描述 屬性值描述 gz bjsh 屬性值 描述 required required 表單擁有該屬性表示其內容不能為空,必填 placeholder 提示文字 表單的提示資訊,存在預設值將不顯示 autofocus autofocus 自動聚焦屬性,頁面載入...
HTML5的學習(二)HTML5標籤
3.按功能排列標籤 標籤 描述 html4 html5 定義注釋。定義文件型別。定義文件的主體。定義文件中的節。定義section或page的頁尾。to定義html標題。定義html文件。定義關於文件的資訊。定義section或page的頁首。定義關於html文件的元資訊。定義針對不支援客戶端指令碼...
Html5標籤頁面
新增加的html5標籤 html5 新增加的html5標籤 定義 article 定義頁面內容之外的內容。定義聲音內容。定義影象。定義命名按鈕 定義數列 tree list 中的資料 定義下拉列表。定義外部互動內容或外掛程式 定義section或page的頁尾。html5 ios中忽略將數字變為 號...