探究 CSS 如何在HTML中工作

2025/3/28?

向全棧工程師邁進!

一、CSS的作用

簡單一句話——美化網頁

<p>Let's use:<span>Cascading</span><span>Style</span><span>Sheets</span>
</p>

?對于如上代碼來說,其顯示效果如下:

當加上CSS樣式之后如下所示:(這里不需要明白CSS怎么寫,怎么運作,只需要明白加了CSS后,網頁會變的好看

二、CSS究竟如何工作

當瀏覽器展示一個文件的時候,它必須兼顧文件的內容(HTML)文件的樣式信息(CSS),下面我們會了解到它處理文件的標準的流程。需要知道的是,下面的步驟是瀏覽加載網頁的簡化版本,而且不同的瀏覽器在處理文件的時候會有不同的方式,但是下面的步驟基本都會出現。

2.1 載入 HTML 文件

瀏覽器會首先載入HTML文件(比如向服務器訪問,網絡獲取等)

2.2 構建HTML對應的DOM樹

<!DOCTYPE html>
<html>
<head><title>示例頁面</title>
</head>
<body><h1>歡迎來到我的網站</h1><p>這是一個示例段落。</p>
</body>
</html>其對應的DOM樹如下:Document||---<html>---||            |---<head>---||                         |---<title>||---<body>---||---<h1>|---<p>

所以首先,會將html文件構建成一個DOM樹,然后根據樹結構的每個節點依次的添加CSS樣式。以下是上面的一個案例:

<p>Let's use:<span>Cascading</span><span>Style</span><span>Sheets</span>
</p>

在這個 DOM 中,<p>元素對應了父節點,它的子節點是一個 text 節點和三個對應了<span>元素的節點,<SPAN>節點同時也是他們中的 Text 節點的父節點。

P
├─ "Let's use:"
├─ SPAN
|  └─ "Cascading"
├─ SPAN
|  └─ "Style"
└─ SPAN└─ "Sheets"

上圖就是瀏覽器怎么解析之前那個 HTML 片段——它生成上圖的 DOM 樹形結構,然后解析 CSS,其CSS如下:

span {border: 1px solid black;background-color: lime;
}

可以看到唯一的選擇器就是span元素選擇器,瀏覽器會非常快速的把同樣的規則直接使用在三個<span>標簽上,然后渲染出圖像到屏幕。

三、如果CSS編寫出錯,會怎么樣??

其實現在瀏覽器并不會實現所有新的CSS樣式,使用新CSS樣式開發了一個炫酷網頁,然后是一個版本特別老的瀏覽器訪問的話,其CSS樣式是會顯示不出來的,當瀏覽器遇到無法解析的 CSS 選擇器或聲明的時候會發生什么呢?答案就是瀏覽器什么也不會做,繼續解析下一個 CSS 樣式!即直接忽略。

相似的,當瀏覽器遇到無法解析的選擇器的時候,他會直接忽略整個選擇器規則,然后解析下一個 CSS 選擇器。

四、何為選擇器?

如下圖中的 span 就是一個選擇器,他是用來告訴瀏覽器HTML元素應當是被選為應用規則中的CSS屬性值的方式。

所以上述的span選擇器的作用就是選中html的span標簽,將span標簽的樣式按著如下設計。當然選擇器不止這一種方式,在后面我們會單獨的用一篇文章來講解CSS中的選擇器種類,以及其使用規則。這里以探究CSS如何工作為目的解析CSS。

Life is not a track, you can do whatever you want to do.

2025/3/28

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/899360.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/899360.shtml
英文地址,請注明出處:http://en.pswp.cn/news/899360.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

硬件老化測試方案的設計誤區

硬件老化測試方案設計中的常見誤區主要包括測試周期不足、測試條件過于單一、樣品選擇不當等方面。其中&#xff0c;測試周期不足尤為突出&#xff0c;容易導致潛在缺陷未被完全暴露。老化測試本質上是通過加速產品老化來模擬長期使用狀況&#xff0c;因此測試周期不足會嚴重削…

無錫零碳園區“三年突圍”安科瑞源網荷儲充系統如何破解“綠電難、儲能貴、調度亂”困局?

零碳園區建設如火如荼&#xff0c;為何企業“不敢投、不會用”&#xff1f; 無錫市政府3月27日發布《零碳園區建設三年行動方案》&#xff0c;目標到2027年建成10家以上零碳園區、20家零碳工廠、10個源網荷儲一體化項目。但企業仍存疑慮&#xff1a; 綠電消納難&#xff1a;光…

docker torcherve打包mar包并部署模型

使用Docker打包深度網絡模型mar包到服務端 參考鏈接&#xff1a;Docker torchserve 部署模型流程——以WSL部署YOLO-FaceV2為例_class myhandler(basehandler): def initialize(self,-CSDN博客 1、docker拉取環境鏡像命令 docker images出現此提示為沒有權限取執行命令&…

Redis 分布式鎖實現深度解析

Redis 分布式鎖是分布式系統中協調多進程/服務對共享資源訪問的核心機制。以下從基礎概念到高級實現進行全面剖析。 一、基礎實現原理 1. 最簡實現&#xff08;SETNX 命令&#xff09; # 加鎖 SET resource_name my_random_value NX PX 30000# 解鎖&#xff08;Lua腳本保證原…

kubernetes》》k8s》》 kubeadm、kubectl、kubelet

kubeadm 、kubectl 、kubelet kubeadm、kubectl和kubelet是Kubernetes中不可或缺的三個組件。kubeadm負責集群的快速構建和初始化&#xff0c;為后續的容器部署和管理提供基礎&#xff1b;kubectl作為命令行工具&#xff0c;提供了與Kubernetes集群交互的便捷方式&#xff1b;而…

linux 硬盤擴展

場景&#xff1a; [rootlocalhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 40G 0 disk ├─sda1 8:1 0 1M 0 part ├─sda2 8:2 0 1G 0 part /boot └─sda3 …

Docker Desktop 界面功能介紹

Docker Desktop 界面功能介紹 左側導航欄 Containers(容器): 用于管理容器,包括查看運行中或已停止的容器,檢查容器狀態、日志,執行容器內命令,啟動、停止、刪除容器等操作。Images(鏡像): 管理本地 Docker 鏡像,可查看鏡像列表、從 Docker Hub 拉取新鏡像、刪除鏡…

C++細節知識for面試

1. linux上C程序可用的棧和堆大小分別是多少&#xff0c;為什么棧大小小于堆&#xff1f; 1. 棧&#xff08;Stack&#xff09;大小 棧默認為8MB&#xff0c;可修改。 為什么是這個大小&#xff1a; ?安全性&#xff1a;限制棧大小可防止無限遞歸或過深的函數調用導致內存…

數據設計(范式、步驟)

文章目錄 數據設計1.數據庫設計的三大范式2、數據庫設計的具體步驟 數據設計 1.數據庫設計的三大范式 關系型數據庫的三大范式&#xff0c;指導如何設計一個關系型數據庫。 1NF&#xff1a; 關系表的每個字段&#xff0c;都應該是不可再分的&#xff0c;——保證原子性。 字…

PhotoShop學習03

1.更改圖像大小 通常情況下&#xff0c;如果我們想在某些上傳圖片&#xff0c;會發現我們的圖片可能會過大或者過小&#xff0c;為此&#xff0c;我們需要調整圖像的大小&#xff0c;使之符合網站的規則。 首先打開photoshop&#xff0c;打開一張圖片。首先我們需要了解這張圖…

Vue 項目中使用$refs來訪問組件實例或 DOM 元素,有哪些注意事項?

大白話Vue 項目中使用$refs來訪問組件實例或 DOM 元素&#xff0c;有哪些注意事項&#xff1f; 在 Vue 項目里&#xff0c;$refs 是個超實用的工具&#xff0c;它能讓你直接訪問組件實例或者 DOM 元素。不過使用的時候&#xff0c;有一些地方可得注意&#xff0c;下面咱就詳細…

【安全運營】關于攻擊面管理相關概念的梳理(二)

CYNC&#xff08;持續可見性和網絡控制&#xff09; CYNC&#xff08;Continuous Visibility and Network Control&#xff09;即“持續可見性和網絡控制”&#xff0c;是一個與網絡安全和IT運營管理相關的概念。它強調的是在一個組織的數字環境中&#xff0c;確保對所有資產、…

【區塊鏈安全 | 第二篇】區塊鏈概念詳解

文章目錄 概述1. 區塊鏈類型2 區塊鏈五層架構3 賬本模型4. 節點&#xff08;Node&#xff09;5. 區塊&#xff08;Block&#xff09;6. 區塊鏈&#xff08;Blockchain&#xff09;7. 區塊鏈工作流程 核心技術1. 共識機制2. 智能合約 主要組件1. 交易&#xff08;Transaction&am…

Redisson - 分布式鎖和同步器

文章目錄 鎖&#xff08;Lock&#xff09;公平鎖&#xff08;Fair Lock&#xff09;聯鎖&#xff08;MultiLock&#xff09;紅鎖&#xff08;RedLock&#xff09; 【已廢棄】讀寫鎖&#xff08;ReadWriteLock&#xff09;信號量&#xff08;Semaphore&#xff09;可過期許可信號…

HarmonyOS:GridObjectSortComponent(兩個Grid之間網格元素交換)

一、概述 網格對象的編輯排序是用于網格對象的編輯、拖動排序、新增和刪除。 說明 該組件從API Version 11開始支持。后續版本如有新增內容&#xff0c;則采用上角標單獨標記該內容的起始版本。 二、導入模塊 import { GridObjectSortComponent, GridObjectSortComponentItem…

RFID技術在機器人中的核心應用場景及技術實現

一、機器人定位與導航 1. 地標定位系統 實現方式: 在環境關鍵點部署無源RFID標簽(如UHF Tag),機器人攜帶讀寫器通過讀取標簽ID實現絕對定位# 偽代碼:RFID地標定位 def get_robot_position():detected_tags = reader.read_tags()known_positions = {tag1: (x1,y1), tag2: …

uv 命令用conda命令解釋

uv&#xff1a;安裝 | uv-zh-cn 功能 | uv-zh-cn #showkey -a 可看按鍵的"\eOP"轉義序列是啥# 綁定快捷鍵 f1 到 source .venv/bin/activate函數 bind "\eOP": "source .venv/bin/activate " #conda activate# 綁定快捷鍵 f2 到uv add函數 …

《探秘SQL的BETWEEN:解鎖數據范圍查詢的深度奧秘》

在數據的廣袤宇宙中&#xff0c;結構化查詢語言&#xff08;SQL&#xff09;宛如一座精密的導航系統&#xff0c;引導我們穿越數據的浩瀚星河&#xff0c;精準定位所需信息。其中&#xff0c;BETWEEN作為SQL的關鍵工具之一&#xff0c;以其獨特的能力&#xff0c;在數據的海洋里…

大型語言模型的秘密:思考鏈長度與提示格式的魔力

嘿&#xff0c;朋友們&#xff01;今天我要和大家聊聊一個超級酷的話題——大型語言模型&#xff08;LLMs&#xff09; 它們在“思考”和回答問題時的一些“小秘密”。你可能已經聽說過**“思考鏈”&#xff08;Chain of Thought, COT** 這個概念&#xff0c;它是一種讓模型在回…