css選擇器和權值計算,dom操作?
文檔對象模型( DOM, Document Object Model )主要用于對HTML和XML文檔的內容進行操作。DOM描繪了一個層次化的節點樹,通過對節點進行操作,實現對文檔內容的添加、刪除、修改、查找等功能。
一、DOM樹
DOM樹有兩種,分別為節點樹和元素樹。
節點樹:把文檔中所有的內容都看成樹上的節點;
元素樹:僅把文檔中的所有標簽看成樹上的節點。
二、DOM常用操作
2.1 查找節點
document.getElementById('id屬性值');
返回擁有指定id的第一個對象的引用
document/element.getElementsByClassName('class屬性值');
返回擁有指定class的對象集合
document/element.getElementsByTagName('標簽名');
返回擁有指定標簽名的對象集合
document.getElementsByName('name屬性值');
返回擁有指定名稱的對象結合
document/element.querySelector('CSS選擇器');
僅返回第一個匹配的元素
document/element.querySelectorAll('CSS選擇器');
返回所有匹配的元素
document.documentElement
獲取頁面中的HTML標簽
document.body
獲取頁面中的BODY標簽
document.all['']
獲取頁面中的所有元素節點的對象集合型
2.2 新建節點
document.createElement('元素名');
創建新的元素節點
document.createAttribute('屬性名');
創建新的屬性節點
document.createTextNode('文本內容');
創建新的文本節點
document.createComment('注釋節點');
創建新的注釋節點
document.createDocumentFragment( );
創建文檔片段節點
2.3 添加新節點
parent.appendChild( element/txt/comment/fragment );
向父節點的最后一個子節點后追加新節點
parent.insertBefore( newChild, existingChild );
向父節點的某個特定子節點之前插入新節點
element.setAttributeNode( attributeName );
給元素增加屬性節點
element.setAttribute( attributeName, attributeValue );
給元素增加指定屬性,并設定屬性值
css派生選擇器有幾種?
基本選擇器
1.標簽選擇器:直接用元素的標簽來進行選擇
span { // 直接選擇span標簽
size:16px;
}
1
2
3
1
2
3
2.ID選擇器:通過設置id名字,進行精確的選擇,用#來定義
# div1 { //通過id名字來進行選擇
color:red;
}
<div id="div1">1</div>
1
2
3
4
1
2
3
4
3.類選擇器:通過類名來進行選擇,選擇范圍比id選擇器大,用’.'來定義
.div1 { //所有類名為div1的都被選擇了
color:red;
}
<div id="div1">1</div>
<div id="div1">1</div>
<div id="div1">1</div>
1
2
3
4
5
6
1
2
3
4
5
6
4.通配符選擇器:范圍更大,作用于所有標簽,用*來定義
不建議使用,對頁面加載負擔大
高級選擇器
1.后代選擇器:定義用空格隔開
div span { //選擇的是div標簽下的span標簽,當然后代顧名思義可以不止隔一代,可以隔多代進行選擇
color:red;
}
<div><span>1</span></div>
1
2
3
4
1
2
3
4
2.交集選擇器:與后代選擇器定義的不同是,沒有空格隔開,兩個元素緊挨著
span#a1 { //選擇的是兩個條件1.既是span標簽的 2.id名是a1的元素,兩個條件缺一不可
color:red;
}
<span id=“a1”>1</span>
<span >1</span>
1
2
3
4
5
1
2
3
4
5
3.并集選擇器:定義用逗號隔開
span,#a1 { //選擇的是1.是span標簽的 2.id名是a1的元素,兩個條件滿足一個即可
color:red;
}
<span id=“a1”>1</span>
<span >1</span>
1
2
3
4
5
1
2
3
4
5
4.偽類選擇器:
1.靜態偽類:點擊連接之前(link),點擊連接之后(visited)這樣的
2.動態偽類:鼠標移入(hover),點擊之后(focus)
css選擇器中后代選擇器與子選擇器的區別?
css后代選擇器和子選擇器的區別介紹:
1 css后代選擇器語法:h1 em {color:red;} 表示的是從h1開始里面包含的所有的em元素變成紅色,h1為祖先,其他的em都是后代,即選中后代,不管是兒子還是孫子,只要是都會被選中,為后代選擇器。2、css子元素選擇器語法:h1>em{color:red;} 表示的是從h1開始里面的第一層em元素變成紅色,h1為祖先,em為兒子,就像世襲制一樣,只能傳給兒子,孫子和其他堂親都不行
css怎么設置class的優先級?
樣式權值設定
1. 內聯樣式表的權值最高 1000;
2. ID 選擇器的權值為 100
3. Class 類選擇器的權值為 10
4. HTML 標簽選擇器的權值為 1
5 繼承樣式的權值為0.1
舉例
< class a>
< class b>
<class c >
直接用 .c(類)選擇器 它的權值只有10 ,
用 .a .b .c來選擇,則它的權值為10+10+10。