多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jscript > 一周學會Mootools 1.4中文教程:(1)Dom選擇器

一周學會Mootools 1.4中文教程:(1)Dom選擇器

來源:程序員人生   發布時間:2014-05-08 21:58:01 閱讀次數:2660次

君欲善其事須先利其器,好吧因為我們的時間比較緊迫,只有六天而已,那么六天的時間用死記硬背的方式學會Mt猶如天方夜譚,因此我們需要借鑒一下Editplus的素材欄幫我們記憶就好了,當我們需要用到什么函數的時候直接從素材里找一下雙擊就行了.
Editplus的素材是允許我們自己進行配置的,下邊的文件是我已經配置好的Mt1.4的素材文件,大家可以直接下載,然后將此文件放入Editplus的素材文件夾底下就行了.

點擊下載:Mootools1.4.zip

看我的操作動畫:

看完動畫之后相信大家自己配置editplus的素材已經沒什么問題了吧,這個素材文件是我編輯的,如果大家感覺有什么錯誤或遺漏之處,可以自己使用editplus修改一下這個文件即可,修改完保存之后最好重新開啟一下editplus這個軟件.

在這個素材文件里我把Mt1.4的核心方法都放進來了,另外簡單放了幾個插件的用法,這個素材的內容即為我們接下來需要學習的內容.

Dom選擇器:
Mt的選擇器基本可以理解為兩類:這一點和jq不同(jq是$打天下),這兩類分別是:
$:id選擇器(只能針對id選擇).
$$:混合選擇器(和jq的$是一樣的).

我們先看一下id選擇器,在mt里$和document.id都能根據id選擇節點,通常$是最常用的.我們來看個例子:

<div id='a'></div>
$('a')...

注意:這種用法不需要用#號.

$$和jq的$是一樣的,可以混合選擇,但是通常我很少在用這個,雖然它功能很強,但是與id選擇器比起來實在算不上高效,當然了Mt有辦法取代它,別著急我們一會再講,我們先看$$的例子:

<div id='a' class='a1'></div>
<div id='b'><b>a</b></div>
<div id='c'></div>

$('#a')...//根據id選擇,需要#號
$('.a1')...//根據class選擇
$('div.a1')...//雙重條件
$('#b b')...//選擇<b>a</b>
$('#a,#b,#c')...//選擇多個

.....更多請看素材文件內的selector部分

用過jq的朋友應該知道,在jq內$選擇器如果寫的太復雜,那么效率是很低的,同樣,Mt的$$和jq的$神似,那么我們有沒有辦法來改善$$的效率呢,當然是有的,看下邊:

getElement:從上級節點開始匹配一個下級節點
getElements:從上級節點開始匹配多個下級節點(類似jq的find)
getElementById:從上級節點根據id開始匹配一個下級節點

.....更多請看素材文件內的selector部分

好了,那我簡單舉幾個例子給大家闡述一下他是如何取代$$的.

 

$(document.body).getElement('div');//在當前頁面內找尋第一個div
$('a').getElements('div');//在id='a'的容器里找尋所有的div
$('a').getElementById('b');//在id='a'的容器里找尋id='b'的節點

....還有更多的方式,大家可以看素材文件內的selector部分

這種迭代匹配的方式比復雜的css選擇器語句的效率要高.所以如果大家很在乎效率,那么我建議多使用$和迭代找尋方式,盡量少用$$,但是如果您已經習慣了jq的方式且不在乎效率,那么你就直接用$$就行了.$$和jq的$用法是完全相同的.

$$一些比較復雜的匹配方式在素材文件里都有,大家可以看看,如果記不住也沒關系,只要知道哪些能匹配哪些不能匹配,在實際應用中直接雙擊素材添加就行了.

完整的范例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>http://hi.baidu.com/see7di/home</title>
<script style="text/javascript" src="https://ajax.googleapis.com/ajax/libs/mootools/1.4.1/mootools-yui-compressed.js"></script>
</head>

<body id='a'>
<h2 class='a'>Single images</h2>
<p>
<a class='b' title="T1" href="http://www.digitalia.be/images/25.jpg"><img src="img/map1.png"></a>
<a class='c' title="B1" href="http://www.digitalia.be/images/24.jpg"><img src="img/map2.png"></a>
</p>
<script type='text/javascript'>
alert($('a').get('html'));
alert($('.a').get('tag'));
alert($('h2.a').get('text'));
$('h2.a').set('text','重新設置一下內容!');
alert($('h2.a').get('text'));

alert($('.b').get('href')+''+$('.b').getProperty('href'));
$('.b').setProperty('href','#')
alert($('.b').get('href')+''+$('.b').getProperty('href'));

console.log('此內容輸出值Firebug的控制臺!');
</script>
</body>
</html>

下邊是我找來的一篇關于css選擇器的文章,對我們學習選擇器很有幫助。
  

 1. *
* {margin: 0; padding: 0;}
星狀選擇符會在頁面上的每一個元素上起作用。web設計者經常用它將頁面中所有元素的margin和padding設置為0。
*選擇符也可以在子選擇器中使用。
#container * { border: 1px solid black;}
上面的代碼中會應用于id為container元素的所有子元素中。
除非必要,我不建議在頁面中過的的使用星狀選擇符,因為他的作用域太大,相當耗瀏覽器資源。
兼容瀏覽器:IE6+、Firefox、Chrome、Safari、Opera
2. #X
#container {width: 960px;margin: auto; }
井號作用域有相應id的元素。id是我們最常用的css選擇器之一。id選擇器的優勢是精準,高優先級(優先級基數為100,遠高于class的10),作為javascript腳本鉤子的不二選擇,同樣缺點也很明顯優先級過高,重用性差,所以在使用id選擇器前,我們最好問下自己,真的到了非用id選擇器的地步?
兼容瀏覽器:IE6+、Firefox、Chrome、Safari、Opera
3. .X
.error {color: red;}
這是一個class(類)選擇器。class選擇器與id選擇器的不同是class選擇器能作用于期望樣式化的一組元素。
兼容瀏覽器:IE6+、Firefox、Chrome、Safari、Opera
4. X Y
li a { text-decoration: none;}
這也是我們最常用的一種選擇器——后代選擇器。用于選取X元素下子元素Y,要留意的點是,這種方式的選擇器將選取其下所有匹配的子元素,無視層級,所以有的情況是不宜使用的,比如上述的代碼去掉li下的所有a的下劃線,但li里面還有個ul,我不希望ul下的li的a去掉下劃線。使用此后代選擇器的時候要考慮是否希望某樣式對所有子孫元素都起作用。這種后代選擇器還有個作用,就是創建類似命名空間的作用。比如上述代碼樣式的作用域明顯為li。
兼容瀏覽器:IE6+、Firefox、Chrome、Safari、Opera
5. X
a { color: red; }
ul { margin-left: 0; }
標簽選擇器。使用標簽選擇器作用于作用域范圍內的所有對應標簽。優先級僅僅比*高。
兼容瀏覽器:IE6+、Firefox、Chrome、Safari、Opera
6. X:visited和X:link
a:link { color: red; }
a:visted { color: purple; }
使用:link偽類作用于未點擊過的鏈接標簽。:hover偽類作用于點擊過的鏈接。
兼容瀏覽器:IE7+、Firefox、Chrome、Safari、Opera
7. X+Y
ul + p {color: red;}
相鄰選擇器,上述代碼中就會匹配在ul后面的第一個p,將段落內的文字顏色設置為紅色。(只匹配第一個元素)
兼容瀏覽器:IE7+、Firefox、Chrome、Safari、Opera
8. X>Y
div#container > ul { border: 1px solid black;}
<div id=”container”>
<ul>
<li> List Item
<ul>
<li> Child </li>
</ul>
</li>
<li> List Item </li>
<li> List Item </li>
<li> List Item </li>
</ul>
</div>
子選擇器。與后代選擇器X Y不同的是,子選擇器只對X下的直接子級Y起作用。在上面的css和html例子中,div#container>ul僅對container中最近一級的ul起作用。從理論上來講X > Y是值得提倡選擇器,可惜IE6不支持。
兼容瀏覽器:IE7+、Firefox、Chrome、Safari、Opera
9. X ~ Y
ul ~ p { color: red;}
相鄰選擇器,與前面提到的X+Y不同的是,X~Y匹配與X相同級別的所有Y元素,而X+Y只匹配第一個。
兼容瀏覽器:IE7+、Firefox、Chrome、Safari、Opera
10. X[title]
a[title] { color: green;}
屬性選擇器。比如上述代碼匹配的是帶有title屬性的鏈接元素。
兼容瀏覽器:IE7+、Firefox、Chrome、Safari、Opera
11. X[title="foo"]
a[href="http://blog.moocss.com"] { color: #1f6053; }
屬性選擇器。 上面的代碼匹配所有擁有href屬性,且href為http://blog.moocss.com的所有鏈接。
這個功能很好,但是多少又有些局限。如果我們希望匹配href包含css9.net的所有鏈接該怎么做呢?看下一個選擇器。
兼容瀏覽器:IE7+、Firefox、Chrome、Safari、Opera
12. X[href*="moocss"]
a[href*="moocss"] {color: #1f6053;}
屬性選擇器。正如我們想要的,上面代碼匹配的是href中包含”http://blog.moocss.com“的所有鏈接。
兼容瀏覽器:IE7+、Firefox、Chrome、Safari、Opera
13. X[href="http"]
a[href="http"] {background: url(path/to/external/icon.png) no-repeat; padding-left: 10px;}
屬性選擇器。上面代碼匹配的是href中所有以http開頭的鏈接。
兼容瀏覽器:IE7+、Firefox、Chrome、Safari、Opera
14. X[href$=".jpg"]
a[href="http"] { background: url(path/to/external/icon.png) no-repeat;padding-left: 10px;}
屬性選擇器。在屬性選擇器中使用$,用于匹配結尾為特定字符串的元素。在上面代碼中匹配的是所有鏈接到擴展名為.jpg圖片的鏈接。(注意,這里僅僅是.jpg圖片,如果要作用于所有圖片鏈接該怎么做呢,看下一個選擇器。)
兼容瀏覽器:IE7+、Firefox、Chrome、Safari、Opera
15. X[data-*="foo"]
在上一個選擇器中提到如何匹配所有圖片鏈接。如果使用X[href$=".jpg"]實現,需要這樣做:
a[href$=".jpg"],
a[href$=".jpeg"],
a[href$=".png"],
a[href$=".gif"] {
color: red;
}
看上去比較麻煩。另一個解決辦法是為所有的圖片鏈接加一個特定的屬性,例如‘data-file’
html代碼
圖片鏈接
css代碼如下:
a[data-filetype="image"] {
color: red;
}
這樣所有鏈接到圖片的鏈接字體顏色為紅色。
兼容瀏覽器:IE7+、Firefox、Chrome、Safari、Opera
16. X[foo~="bar"]
屬性選擇器。屬性選擇器中的波浪線符號可以讓我們匹配屬性值中用空格分隔的多個值中的一個??聪旅胬樱?br /> html代碼
<a href=”path/to/image.jpg” data-info=”external image”> Click Me, Fool </a>
css代碼
a[data-info~="external"] {
color: red;
}
a[data-info~="image"] {
border: 1px solid black;
}
在上面例子中,匹配data-info屬性中包含“external”鏈接的字體顏色為紅色。匹配data-info屬性中包含“image”的鏈接設置黑色邊框。
兼容瀏覽器:IE7+、Firefox、Chrome、Safari、Opera
17. X:checked
checked偽類用來匹配處于選定狀態的界面元素,如radio、checkbox。
input[type=radio]:checked {
border: 1px solid black;
}
上面代碼中匹配的是所有處于選定狀態的單選radio,設置1px的黑色邊框。
兼容瀏覽器:IE9+、Firefox、Chrome、Safari、Opera
18. X:after和X:before
這兩個偽類與content結合用于在元素的前面或者后面追加內容,看一個簡單的例子:
h1:after {content:url(/i/logo.gif)}
上面的代碼實現了在h1標題的后面顯示一張圖片。
我們也經常用它來實現清除浮動,寫法如下:
.clearfix:after {
content: “”;
display: block;
clear: both;
visibility: hidden;
font-size: 0;
height: 0;
}
.clearfix {
*zoom:1
}
19. X:hover
div:hover {
background: #e3e3e3;
}
:hover偽類設定當鼠標劃過時元素的樣式。上面代碼中設定了div劃過時的背景色。
需要注意的是,在ie 6中,:hover只能用于鏈接元素。
這里分享一個經驗,在設定鏈接劃過時出現下滑線時,使用border-bottom會比text-decoration顯得更漂亮些。代碼如下:
a:hover {
border-bottom: 1px solid black;
}
兼容瀏覽器:IE6+、Firefox、Chrome、Safari、Opera
20. X:not(selector)
div:not(#container) {
color: blue;
}
否定偽類選擇器用來在匹配元素時排除某些元素。在上面的例子中,設定除了id為container的div元素字體顏色為blue。
兼容瀏覽器:IE9+、Firefox、Chrome、Safari、Opera
21. X::pseudoElement
::偽對象用于給元素片段添加樣式。比如一個段落的第一個字母或者第一行。需要注意的是,這個::偽對象只能用于塊狀元素。
下面的代碼設定了段落中第一個字母的樣式:
p::first-letter {
float: left;
font-size: 2em;
font-weight: bold;
font-family: cursive;
padding-right: 2px;
}
下面的代碼中設定了段落中第一行的樣式:
p::first-line {
font-weight: bold;
font-size: 1.2em;
}
兼容瀏覽器:IE6+、Firefox、Chrome、Safari、Opera
(IE6竟然支持,有些意外啊。)
22. X:nth-child(n)
li:nth-child(3) {
color: red;
}
這個偽類用于設定一個序列元素(比如li、tr)中的第n個元素(從1開始算起)的樣式。在上面例子中,設定第三個列表元素li的字體顏色為紅色。
看一個更靈活的用法,在下面例子中設定第偶數個元素的樣式,可以用它來實現隔行換色:
tr:nth-child(2n) {
background-color: gray;
}
兼容瀏覽器:IE9+、Firefox、Chrome、Safari
23. X:nth-last-child(n)
li:nth-last-child(2) {
color: red;
}
與X:nth-child(n)功能類似,不同的是它從一個序列的最后一個元素開始算起。上面例子中設定倒數第二個列表元素的字體顏色。
兼容瀏覽器:IE9+、Firefox、Chrome、Safari、Opera
24. X:nth-of-type(n)
ul:nth-of-type(3) {
border: 1px solid black;
}
與X:nth-child(n)功能類似,不同的是它匹配的不是某個序列元素,而是元素類型。例如上面的代碼設置頁面中出現的第三個無序列表ul的邊框。
兼容瀏覽器:IE9+、Firefox、Chrome、Safari
25. X:nth-last-of-type(n)
ul:nth-last-of-type(3) {
border: 1px solid black;
}
與X:nth-of-type(n)功能類似,不同的是它從元素最后一次出現開始算起。上面例子中設定倒數第三個無序列表的邊框。
兼容瀏覽器:IE9+、Firefox、Chrome、Safari、Opera
26. X:first-child
:first-child偽類用于匹配一個序列的第一個元素。我們經常用它來實現一個序列的第一個元素或最后一個元素的上(下)邊框,如:
ul:nth-last-of-type(3) {
border: 1px solid black;
}
兼容瀏覽器:IE7+、Firefox、Chrome、Safari、Opera
27. X:last-child
ul > li:last-child {
border-bottom:none;
}
與:first-child類似,它匹配的是序列中的最后一個元素。
兼容瀏覽器:IE9+、Firefox、Chrome、Safari、Opera
28. X:only-child
div p:only-child {
color: red;
}
這個偽類用的比較少。在上面例子中匹配的是div下有且僅有一個的p,也就是說,如果div內有多個p,將不匹配。
<div><p> My paragraph here. </p></div>
<div>
<p> Two paragraphs total. </p>
<p> Two paragraphs total. </p>
</div>
在上面代碼中第一個div中的段落p將會被匹配,而第二個div中的p則不會。
兼容瀏覽器:IE9+、Firefox、Chrome、Safari、Opera
29. X:only-of-type
li:only-of-type {
font-weight: bold;
}
這個偽類匹配的是,在它上級容器下只有它一個子元素,它沒有鄰居元素。例如上面代碼匹配僅有一個列表項的列表元素。
兼容瀏覽器:IE9+、Firefox、Chrome、Safari、Opera
30. X:first-of-type
:first-of-type偽類與:nth-of-type(1)效果相同,匹配出現的第一個元素。我們來看個例子:
<div>
<p> My paragraph here. </p>
<ul>
<li> List Item 1 </li>
<li> List Item 2 </li>
</ul>
<ul>
<li> List Item 3 </li>
<li> List Item 4 </li>
</ul>
</div>
在上面的html代碼中,如果我們希望僅匹配List Item 2列表項該如何做呢:
方案一:
ul:first-of-type > li:nth-child(2) {
font-weight: bold;
}
p + ul li:last-child {
font-weight: bold;
}
方案三:
ul:first-of-type li:nth-last-child(1) {
font-weight: bold;
}
兼容瀏覽器:IE9+、Firefox、Chrome、Safari、Opera。

    總結:
    如果你正在使用老版本的瀏覽器,如IE 6,在使用上面css選擇器時一定要注意它是否兼容。不過,這不應成為阻止我們學習使用它的理由。在設計時,你可以參考瀏覽器兼容性列表,也可以通過腳本手段讓老版本的瀏覽器也支持它們。

 

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 男女污污的视频 | 亚洲福利片 | 日本高清www午色夜黄 | 国产婷婷高清在线观看免费 | 欧美午夜视频在线 | 日韩精品欧美精品中文精品 | 日韩视频一区二区三区 | 国产激情在线观看完整流畅 | 天天天做天天天天爱天天想 | 正在播放国产露脸做 | 高清在线精品一区二区 | 欧美激情亚洲一区中文字幕 | 日韩精品区 | 亚洲看片网站 | ak福利午夜在线观看 | 在线欧洲成人免费视频 | 欧美日韩一区二区三区麻豆 | 欧美专区视频 | 夜夜操狠狠干 | 国产亚洲精品激情一区二区三区 | 精品国产免费一区二区三区五区 | 国产淫视频| 樱花aⅴ一区二区三区四区 影视精品网站入口 | 国内免费视频成人精品 | 久久久久综合国产 | 欧美成人国产一区二区 | 国内精品久久久久影院嫩草 | 色综合久久中文 | 名优写真一区二区在线 | 自由成熟的性色视频免费观看 | 日韩专区亚洲综合久久 | 91福利国产在线观看香蕉 | 欧美最猛黑人xxxx黑人猛交黄 | 亚洲欧美色综合自拍 | 国语精品视频在线观看不卡 | jizzjizzjizz中国| 爽好舒服快奶水视频 | 曰韩一级 | 伊人色院成人蜜桃视频 | 国产资源中文字幕 | 欧美日韩综合一区 |