在大家查看HTML時,經常會看到data-role、data-theme等的使用,比如:通過如下代碼即可實現頁眉的效果: 為什麼寫一個data-role="header"就能實現底部為黑色、文字居中顯示的效果呢? 本文提供一種最簡單的實現辦法,讓大家對這些用法有個直觀的瞭解。 我們寫一個html頁面 ...
在大家查看HTML時,經常會看到data-role、data-theme等的使用,比如:通過如下代碼即可實現頁眉的效果:
1 <div data-role="header">
2 <h1>我是標題</h1>
3 </div>
為什麼寫一個data-role="header"就能實現底部為黑色、文字居中顯示的效果呢?
本文提供一種最簡單的實現辦法,讓大家對這些用法有個直觀的瞭解。
我們寫一個html頁面,自定義一個data-chb="header"的屬性,希望具備這個屬性的div區域背景顏色為黑色,文字為白色,居中顯示;不具備data-chb自定義屬性的div按照預設方式顯示,html代碼如下:
1 <body>
2 <div data-chb="header">
3 <h1>我是使用了data-chb自定義屬性的div</h1>
4 </div>
5 <br/>
6 <div>
7 我沒有使用data-chb自定義屬性,該怎麼展現就怎麼展現;
8 </div>
9 </body>
要想實現"背景顏色為黑色,文字為白色,居中顯示"的顯示效果,我們定義如下的css:
1 <style>
2 .ui_header {
3 background-color: black;
4 text-align: center;
5 color:white;
6 border:1px solid #000;
7 }
8 </style>
然後我們通過如下js方法實現在頁面載入時,動態添加css定義,改變具備data-chb屬性的div的顯示樣式:
1 <script type="text/javascript">
2 window.onload=function(){
3 var elems = document.getElementsByTagName("div");
4 if(elems!=null&&elems.length>0){
5 var length = elems.length;
6 //遍歷所有DIV控制項
7 for(var i=0;i<length;i++){
8 var elem = elems[i];
9 //獲取該控制項的自定義屬性
10 var customAttr = elem.dataset.chb;
11 //也可以通過如下方式獲得自定義屬性
12 //var customAttr = elem.dataset["chb"];
13 //如果是我們預先定義好的header值,表示需要處理
14 if(customAttr=="header"){
15 //添加樣式
16 elem.setAttribute("class","ui_header");
17 }
18 }
19 }
20 }
21 </script>
當然此屬性除了以上作用外,還有其他作用,如通過JS來構造數據,填充數據等;
轉載鏈接:http://blog.csdn.net/yongxiaokang1/article/details/41644469