国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 web前端 html教學(xué) CSS之旅(2):如何更深入的理解各種選擇器_html/css_WEB-ITnose

CSS之旅(2):如何更深入的理解各種選擇器_html/css_WEB-ITnose

Jun 24, 2016 am 11:42 AM

原文出處: 一線碼農(nóng)



上篇我們說了為什么要使用css,這篇我們就從選擇器說起,大家都知道瀏覽器會把遠(yuǎn)端過來的html解析成dom模型,有了dom模型,html就變成了xml格式,否則的話就是一堆“雜亂無章”的string,這樣的話沒人知道是什么鳥東西,js也無法什么各種getElementById,所以當(dāng)瀏覽器解析成dom結(jié)構(gòu)后,瀏覽器才會很方便的根據(jù)css各種規(guī)則的選擇器在dom結(jié)構(gòu)中找到相應(yīng)的位置,那下一個問題自然就嚴(yán)重了,那就是必須深入的理解dom模型。

一:理解Dom模型

首先我們看下面的代碼。

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title></head><body>    <p>有名的公司一欄</p>    <hr />    <ul>        <li>百度</li>        <li>新浪</li>        <li>阿里</li>    </ul></body></html>

用這個代碼我們很容易的畫出dom樹。

當(dāng)你看到這個dom樹的時(shí)候,是不是頓時(shí)感到信息量特別大,很簡單,因?yàn)槭菢?,所以就具有了一些樹的特性,比?“孩子節(jié)點(diǎn)”,“父親節(jié)點(diǎn)”,

“兄弟節(jié)點(diǎn)”,“第一個左孩子”,“最后一個左孩子”等等,對應(yīng)著后續(xù)我要說的各種情況,一起來看看html被脫了個精光的感覺是不是很爽~~~~

1:孩子節(jié)點(diǎn)

找孩子節(jié)點(diǎn),本質(zhì)上來說分兩種,真的只找“孩子節(jié)點(diǎn)”,“找到所有孩子(包括子孫)“

<1> 后代選擇器

首先看下面的html,我想你可以輕而易舉的繪制出dom樹了,那下面的問題就是怎么將body中所有的后代span都繪上red。

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <style type="text/css">        body span {            color: red;        }    </style></head><body>    <span>我是span1</span>    <ul>        <li>            <ul><span>我是span2</span></ul>        </li>    </ul></body></html>

2. 孩子選擇器

<1> ”>”玩法

這個也是我說的第二種情況,真的只找孩子節(jié)點(diǎn),在css中也很簡單,用 > 號就可以了,是不是很有意思,跟jquery一樣的玩法,對不對。

<html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <style type="text/css">        body > span {            color: red;        }    </style></head><body>    <span>我是span1</span>    <ul>        <li>            <ul><span>我是span2</span></ul>        </li>    </ul></body></html>

<2> ”偽選擇器”玩法

除了上面這種玩法,在css3中還可以使用”偽選擇器”玩法,真tmd的強(qiáng)大,下一篇會專門來講解,這里只介紹一個:nth-child用法,如果

你玩過jquery,一切都不是問題。

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <style type="text/css">        body > span:nth-child(1) {            color: red;        }    </style></head><body>    <span>我是span1</span>    <span>我是span2</span>    <ul>        <li>            <ul><span>我是span3</span></ul>        </li>    </ul></body></html>

3. 兄弟節(jié)點(diǎn)

兄弟節(jié)點(diǎn)也是很好理解的,在css中用 “+”就可以解決了,可以看到下面我成功將第二個p繪制成了紅色。

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <style type="text/css">        .test + p {            color:red;        }    </style></head><body>    <p class="test">我是第一個段落</p>    <p>我是第二個段落</p></body></html>

4. 屬性選擇器

如果玩過jquery,這個屬性選擇器我想非常清楚,首先看個例子,我想找到name=test的p元素,將其標(biāo)紅。

<html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <style type="text/css">        p[name='test'] {            color: red;        }    </style>    <script src="Scripts/jquery-1.10.2.js"></script></head><body>    <p name="test">我是第一個段落</p>    <p>我是第二個段落</p></body></html>

到現(xiàn)在為止,有沒有感覺到和jquery的玩法一模一樣,而且感覺越來越強(qiáng)烈,已經(jīng)到了 ”你懂的“ 的境界。

二:css內(nèi)部機(jī)制的猜測

文章開頭也說了,瀏覽器會根據(jù)css中定義的”標(biāo)簽”,然后將這個標(biāo)簽的樣式應(yīng)用到dom中指定的”標(biāo)簽“上,就比如說,我在css中定義了一個

p樣式,但瀏覽器怎么就能找到dom中的所有的p元素呢??? 因?yàn)殚]源的原因,我們無法得知其內(nèi)部機(jī)制,不過在jquery上面,或者我們可以窺知一

二,因?yàn)閏ss能展示的選擇器用法,在jquery中都能做得到,然后我就很迫不及待的去看看jquery如何提取我的各種選擇器寫法,下面我們看看源碼。

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <title></title>    <style type="text/css">        p[name='test'] {            color: red;        }    </style>    <script src="Scripts/jquery-1.10.2.js"></script>    <script type="text/javascript">        $(document).ready(function () {            $("p[name='test']").hide();        });    </script></head><body>    <p name="test">我是第一個段落</p>    <p>我是第二個段落</p></body></html>

在jquery里面經(jīng)過一番查找,最后可以看到僅僅是調(diào)用了queryselectorAll這個dom的原生方法,你也可以在console中清楚的看到,最后的

results就是找到的p元素,為了驗(yàn)證,我在taobao page下開一個console。

到現(xiàn)在,我大概粗略的猜測,也許至少在chrome瀏覽器下,瀏覽器為了找到dom中指定的元素,或許也是調(diào)用了queryselectAll方法。。。

好了,大概也就說這么多了,理解dom模型是關(guān)鍵,這樣的話才能理解后續(xù)瀏覽器的渲染行為。

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1600
29
PHP教程
1502
276
使用HTML按鈕元素實(shí)現(xiàn)可點(diǎn)擊按鈕 使用HTML按鈕元素實(shí)現(xiàn)可點(diǎn)擊按鈕 Jul 07, 2025 am 02:31 AM

要使用HTML的button元素實(shí)現(xiàn)可點(diǎn)擊按鈕,首先需掌握其基本用法與常見註意事項(xiàng)。 1.使用標(biāo)籤創(chuàng)建按鈕,並通過type屬性定義行為(如button、submit、reset),默認(rèn)為submit;2.通過JavaScript添加交互功能,可內(nèi)聯(lián)寫法或通過ID綁定事件監(jiān)聽器以提升維護(hù)性;3.利用CSS自定義樣式,包括背景色、邊框、圓角及hover/active狀態(tài)效果,增強(qiáng)用戶體驗(yàn);4.注意常見問題:確保未啟用disabled屬性、正確綁定JS事件、避免佈局遮擋,並藉助開發(fā)者工具排查異常。掌握這

在HTML頭部元素中配置文檔元數(shù)據(jù) 在HTML頭部元素中配置文檔元數(shù)據(jù) Jul 09, 2025 am 02:30 AM

HTMLhead中的元數(shù)據(jù)對SEO、社交分享和瀏覽器行為至關(guān)重要。 1.設(shè)置頁面標(biāo)題與描述,使用和並保持簡潔唯一;2.添加OpenGraph與Twitter卡片信息以優(yōu)化社交分享效果,注意圖片尺寸並使用調(diào)試工具測試;3.定義字符集與視口設(shè)置確保多語言支持與移動端適配;4.可選標(biāo)籤如作者版權(quán)、robots控制及canonical防止重複內(nèi)容也應(yīng)合理配置。

2025年初學(xué)者的最佳HTML教程 2025年初學(xué)者的最佳HTML教程 Jul 08, 2025 am 12:25 AM

TolearnHTMLin2025,chooseatutorialthatbalanceshands-onpracticewithmodernstandardsandintegratesCSSandJavaScriptbasics.1.Prioritizehands-onlearningwithstep-by-stepprojectslikebuildingapersonalprofileorbloglayout.2.EnsureitcoversmodernHTMLelementssuchas,

HTML用於電子郵件模板教程 HTML用於電子郵件模板教程 Jul 10, 2025 pm 02:01 PM

如何製作兼容性好的HTML郵件模板?首先要用表格(table)搭建結(jié)構(gòu),避免使用div flex或grid佈局;其次所有樣式必須內(nèi)聯(lián)化,不可依賴外部CSS;接著圖片要加alt說明並使用公網(wǎng)URL,按鈕應(yīng)使用帶背景色的table或td模擬;最後務(wù)必在多個客戶端測試並調(diào)整細(xì)節(jié)。

如何使用HTML圖和Figcaption元素將字幕與圖像或媒體關(guān)聯(lián)? 如何使用HTML圖和Figcaption元素將字幕與圖像或媒體關(guān)聯(lián)? Jul 07, 2025 am 02:30 AM

使用HTML的和可以直觀且語義清晰地為圖片或媒體添加說明文字。 1.用於包裹獨(dú)立的媒體內(nèi)容,如圖片、視頻或代碼塊;2.則作為其說明文字,置於內(nèi)部,可位於媒體上方或下方;3.它們不僅提升頁面結(jié)構(gòu)清晰度,還增強(qiáng)可訪問性和SEO效果;4.使用時(shí)應(yīng)注意避免濫用,適用於需強(qiáng)調(diào)並附帶說明的內(nèi)容,而非普通裝飾圖;5.不可忽視的alt屬性,它與figcaption的作用不同;6.figcaption位置靈活,可根據(jù)需要放在figure內(nèi)頂部或底部。正確使用這兩個標(biāo)籤,有助於構(gòu)建語義清晰、易於理解的網(wǎng)頁內(nèi)容。

如何在沒有服務(wù)器的情況下處理HTML中的表單提交? 如何在沒有服務(wù)器的情況下處理HTML中的表單提交? Jul 09, 2025 am 01:14 AM

沒有後端服務(wù)器時(shí),仍可通過前端技術(shù)或第三方服務(wù)處理HTML表單提交。具體方法包括:1.使用JavaScript攔截表單提交以實(shí)現(xiàn)輸入驗(yàn)證和用戶反饋,但數(shù)據(jù)不會持久化;2.借助如Formspree等第三方無服務(wù)器表單服務(wù)收集數(shù)據(jù)並提供郵件通知和重定向功能;3.利用localStorage進(jìn)行客戶端臨時(shí)數(shù)據(jù)存儲,適合保存用戶偏好或管理單頁應(yīng)用狀態(tài),但不適合敏感信息的長期保存。

HTML中最常用的全局屬性是什麼? HTML中最常用的全局屬性是什麼? Jul 10, 2025 am 10:58 AM

class、id、style、data-、title是HTML中最常用的全局屬性。 class用於指定一個或多個類名以方便樣式設(shè)置和JavaScript操作;id為元素提供唯一標(biāo)識符,適用於錨點(diǎn)跳轉(zhuǎn)和JavaScript控制;style允許添加內(nèi)聯(lián)樣式,適合臨時(shí)調(diào)試但不推薦大量使用;data-屬性用於存儲自定義數(shù)據(jù),便於前後端交互;title用於添加鼠標(biāo)懸停提示,但其樣式和行為受限於瀏覽器。合理選擇這些屬性可提升開發(fā)效率和用戶體驗(yàn)。

在HTML中實(shí)現(xiàn)圖像的本機(jī)懶負(fù)荷 在HTML中實(shí)現(xiàn)圖像的本機(jī)懶負(fù)荷 Jul 12, 2025 am 12:48 AM

原生懶加載是一種瀏覽器內(nèi)置功能,通過在標(biāo)籤中添加loading="lazy"屬性實(shí)現(xiàn)延遲加載圖片。 1.它無需JavaScript或第三方庫,直接在HTML中使用;2.適合用於頁面下方非首屏顯示的圖片、圖片畫廊滾動加載項(xiàng)和大型圖片資源;3.不適合首屏圖片或display:none的圖片;4.使用時(shí)應(yīng)設(shè)置合適的佔(zhàn)位空間以避免佈局抖動;5.應(yīng)結(jié)合srcset和sizes屬性優(yōu)化響應(yīng)式圖片加載;6.需要考慮兼容性問題,部分舊瀏覽器不支持,可通過特性檢測並結(jié)合JavaScript方案作

See all articles