1、 css選擇器權(quán)重的計算,css的命名規(guī)則?
一、網(wǎng)頁制作中規(guī)范使用DIV+CSS命名規(guī)則,可以改善優(yōu)化功效特別是團(tuán)隊合作時候可以提供合作制作效率。
所有的命名最好都小寫
屬性的值一定要用雙引號("")括起來,且一定要有值如class="DIVcss",id="divcss"
每個標(biāo)簽都要有開始和結(jié)束,且要有正確的層次,排版有規(guī)律工整
空元素要有結(jié)束的tag或于開始的tag后加上"/"
表現(xiàn)與結(jié)構(gòu)完全分離,代碼中不涉及任何的表現(xiàn)元素,如style、font、bgColor、border等
<h1>到<h5>的定義,應(yīng)遵循從大到小的原則,體現(xiàn)文檔的結(jié)構(gòu),并有利于搜索引擎的查詢。
給每一個表格和表單加上一個唯一的、結(jié)構(gòu)標(biāo)記id
給圖片加上alt標(biāo)簽
盡量使用英文命名原則
盡量不縮寫,除非一看就明白的單詞
二、相對網(wǎng)頁外層重要部分CSS樣式命名:
外套 wrap ----------------用于最外層
頭部 header --------------用于頭部
主要內(nèi)容 main ------------用于主體內(nèi)容(中部)
左側(cè) main-left ------------左側(cè)布局
右側(cè) main-right -----------右側(cè)布局
導(dǎo)航條 nav -----------------網(wǎng)頁菜單導(dǎo)航條
內(nèi)容 content ---------------用于網(wǎng)頁中部主體
底部 footer -----------------用于底部
DIV+CSS命名小結(jié):
無論是使用“.”(小寫句號)選擇符號開頭命名,還是使用“#”(井號)選擇符號開頭命名都無所謂,但我們最好遵循。
主要的、重要的、特殊的、最外層的盒子用“#”(井號)選擇符號開頭命名,其它都用“.”(小寫句號)選擇符號開頭命名,同時考慮命名的CSS選擇器在HTML中重復(fù)使用調(diào)用。
通常我們最常用主要命名有:
wrap(外套、最外層)、header(頁眉、頭部)、nav(導(dǎo)航條)、menu(菜單)、title(欄目標(biāo)題、一般配合h1\h2\h3\h4標(biāo)簽使用)
、content (內(nèi)容區(qū))、footer(頁腳、底部)、logo(標(biāo)志、可以配合h1標(biāo)簽使用)、banner(廣告條,一般在頂部)、copyRight(版權(quán))。
2、 CSS中有哪些常用選擇器?
一、CSS選擇器有哪些
CSS中的選擇器很多,比如:ID選擇器,類選擇器,通配符選擇器,偽類選擇器等等,接下來主要介紹常用的幾個。
1.標(biāo)簽選擇器
語法:標(biāo)簽名{},eg:h1{}//為所有的h1元素設(shè)置樣式。
2.ID選擇器
語法:#id名{}//id值唯一不能重復(fù),eg:#top{}//為id為top的元素設(shè)置樣式。
3.類選擇器
語法:.class{},eg:.box{}//為所有的class值為box的元素設(shè)置樣式。
4.組選擇器
語法:選擇器1,選擇器2,選擇器N{},eg:#box1,.box2,p{}//為id為box1,class為box2和p的元素共同設(shè)置樣式。
5、通配符選擇器
語法:*{},eg:*{font-size:16px}//將整個頁面字體大小設(shè)為16px。
6.后代選擇器
語法:選擇器1選擇器2{},eg:p.aa{}//選中指定祖先元素p的指定后代.aa。
7.子元素選擇器
語法:父元素>子元素{},eg:p>.box{}//選中父元素p的指定子元素.box。注意與后代元素選擇器的區(qū)別
8.偽類選擇器
偽類可以用來表示一些特殊的狀態(tài),如:
:link-未訪問過的超鏈接。
:visited-已訪問過的超鏈接。
:hover-鼠標(biāo)經(jīng)過的元素。
:active-正在點擊的元素。
eg:a:hover{color:red}//鼠標(biāo)經(jīng)過a標(biāo)簽時,顏色變?yōu)榧t色。
二、CSS選擇器的優(yōu)先級順序
當(dāng)同一屬性的不同值都作用到了同一個元素時,如果定義的屬性之間有沖突,那么應(yīng)該用誰的值的,這個時候就涉及到CSS的優(yōu)先級順序了。
1.在屬性后面使用!important會覆蓋頁面內(nèi)任何位置定義的元素樣式。
2.作為style屬性寫在元素內(nèi)的內(nèi)部樣式
3.id選擇器
4.類選擇器
5.標(biāo)簽選擇器
6.通配符選擇器
7.瀏覽器自定義或繼承的
3、 CSS選擇器權(quán)重如何計算?
很古老的話題了
id=100
class=10
tag(標(biāo)簽)=1
按照這個規(guī)律去計算,比如
#qietu div{}
100+1 = 101
.qietu .box{}
10+10=20
可以得出第一個的權(quán)重要比第二個要高。另外關(guān)于權(quán)重的擴(kuò)展知識面,我推薦了解下BEM命名規(guī)則,這個觀念很好,可以從側(cè)面杜絕權(quán)重問題的產(chǎn)生,還有一個就是提高權(quán)重的方法 !important;
4、 dom操作?
文檔對象模型( DOM, Document Object Model )主要用于對HTML和XML文檔的內(nèi)容進(jìn)行操作。DOM描繪了一個層次化的節(jié)點樹,通過對節(jié)點進(jìn)行操作,實現(xiàn)對文檔內(nèi)容的添加、刪除、修改、查找等功能。
一、DOM樹
DOM樹有兩種,分別為節(jié)點樹和元素樹。
節(jié)點樹:把文檔中所有的內(nèi)容都看成樹上的節(jié)點;
元素樹:僅把文檔中的所有標(biāo)簽看成樹上的節(jié)點。
二、DOM常用操作
2.1 查找節(jié)點
document.getElementById('id屬性值');
返回?fù)碛兄付╥d的第一個對象的引用
document/element.getElementsByClassName('class屬性值');
返回?fù)碛兄付╟lass的對象集合
document/element.getElementsByTagName('標(biāo)簽名');
返回?fù)碛兄付?biāo)簽名的對象集合
document.getElementsByName('name屬性值');
返回?fù)碛兄付Q的對象結(jié)合
document/element.querySelector('CSS選擇器');
僅返回第一個匹配的元素
document/element.querySelectorAll('CSS選擇器');
返回所有匹配的元素
document.documentElement
獲取頁面中的HTML標(biāo)簽
document.body
獲取頁面中的BODY標(biāo)簽
document.all['']
獲取頁面中的所有元素節(jié)點的對象集合型
2.2 新建節(jié)點
document.createElement('元素名');
創(chuàng)建新的元素節(jié)點
document.createAttribute('屬性名');
創(chuàng)建新的屬性節(jié)點
document.createTextNode('文本內(nèi)容');
創(chuàng)建新的文本節(jié)點
document.createComment('注釋節(jié)點');
創(chuàng)建新的注釋節(jié)點
document.createDocumentFragment( );
創(chuàng)建文檔片段節(jié)點
2.3 添加新節(jié)點
parent.appendChild( element/txt/comment/fragment );
向父節(jié)點的最后一個子節(jié)點后追加新節(jié)點
parent.insertBefore( newChild, existingChild );
向父節(jié)點的某個特定子節(jié)點之前插入新節(jié)點
element.setAttributeNode( attributeName );
給元素增加屬性節(jié)點
element.setAttribute( attributeName, attributeValue );
給元素增加指定屬性,并設(shè)定屬性值