Web前端新人筆記之CSS結構和層疊

来源:http://www.cnblogs.com/cn-co/archive/2016/04/12/5383194.html
-Advertisement-
Play Games

上一篇文章介紹瞭如何利用CSS選擇器為元素應用各種豐富的樣式,每個合法的文檔都會生成一個結構樹,瞭解這一點,就能根據元素的祖先、屬性、兄弟等元素穿件選擇器選擇元素。 本篇文章將討論3中機制之間的關係:特殊性、繼承和層疊 特殊性 有的時候我們為同一個元素設置了不同的CSS樣式代碼,那麼元素會啟用哪一個 ...


上一篇文章介紹瞭如何利用CSS選擇器為元素應用各種豐富的樣式,每個合法的文檔都會生成一個結構樹,瞭解這一點,就能根據元素的祖先、屬性、兄弟等元素穿件選擇器選擇元素。

本篇文章將討論3中機制之間的關係:特殊性、繼承和層疊

特殊性

有的時候我們為同一個元素設置了不同的CSS樣式代碼,那麼元素會啟用哪一個CSS樣式呢?

我們來看一下麵的代碼:

<style type="text/css">
    p{
    color:red;
   } .first{
    color:green;
   }
</style>

<p class="first">這是第一個段落</p>
在樣式中p.first都匹配到了p這個標簽上,那麼會顯示哪種顏色呢?
green是正確的顏色,那麼為什麼呢?
是因為瀏覽器是根據權值來判斷使用哪種css樣式的,權值高的就使用哪種css樣式。
那接下來講解權值的規則:
標簽的權值為:1;
類的權值為:10;
ID的權值為最高:100;
p{color:red;} /*權值為1*/
p span{color:green;} /*權值為1+1=2*/
.warning{color:white;} /*權值為10*/
p span.warning{color:purple;} /*權值為1+1+10=12*/
#footer .note p{color:yellow;} /*權值為100+10+1=111*/

重要性

有時某個聲明可能非常重要,超過了其他聲明。CSS2.1稱之為重要聲明,並允許在這些聲明的結束分號之前插入!important來標示
<style type="text/css">
    p{
       color:red!important;
     }
    p{
       color:green;
     }    
</style>
<p class="first">這是第一個段落</p>        

這時p段落中的文本會顯示的red紅色。
繼承

特殊性對於理解如何向文檔應用聲明很重要,同樣還有個很重要的概念就是繼承,基於繼承機制,樣式不僅應用到指定的元素,還會應用到其後代元素。

<script type="text/css">
    p{
        color:red;
    }
</script>
<p>這是一個<span>悲傷地故事</span></p>
這裡spanp的子元素。那麼p的顏色改變那麼其span的顏色也會相應改變;
註:有些CSS樣式是不具有繼承性的。例如border;
<script type="text/css">
    p{
        border:1px solid red
    }
</script>
<p>這是一個<span>悲傷地故事</span></p>
在上面例子中它代碼的作用只是給p標簽設置了邊框為1像素、紅色、實心邊框線,而對於子元素span是沒用起到作用的。一般的,大多數框模型屬性(包括外邊距、內邊距、背景和邊框)都不能繼承。

層疊性

<script type="text/css">
  p{
    color:red;
   }   p{
    color:green;
   }
</script> <p class="first">這是一個<span>悲傷的故事</span></p>
最後 p中的文本會設置為green,這個層疊很好理解,理解為後面的樣式會覆蓋前面的樣式。
所以css樣式優先順序就不難理解了:
內聯樣式表(標簽內部)> 嵌入樣式表(當前文件中)> 外部樣式表(外部文件中)。

 


 

 

 

 

 

 

 


 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 組合模式(Composite) 定義 組合模式(Composite),將對象組合成樹形結構以表示“部分-整體”的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有一致性。 組合模式有兩種形式:透明方式的組合模式和安全方式的組合模式。 類圖 描述 Component:它可以是介面或抽象類,為葉子 ...
  • 乾貨|建議初創團隊起初也要構建分散式應用 本文內容整理自W-Time技術分享沙龍-天津站現場演講《一切都是分佈的》,演講者:李傲,問啊聯合創始人,前中交車聯網總架構。 好多人都會問什麼是架構師?其實架構師的定義很寬泛,前端後端的定義都不一樣。作為後端出身的架構師,我認為後端並不是大家想的封裝組件,它 ...
  • 網頁可見區域寬: document.body.clientWidth網頁可見區域高: document.body.clientHeight網頁可見區域寬: document.body.offsetWidth (包括邊線的寬)網頁可見區域高: document.body.offsetHeight (包 ...
  • 頁面如下: 我們現在想實現這樣的功能,在div1 點擊的時候,彈出 "你好,我是最外層div。",點擊div2 的時候,彈出 "你好,我是第二層div";點擊span 的時候,彈出"您好,我是span。"。 但是當點擊span時,三個對話框會先後彈出來,無論是body,body 的子元素div1,還 ...
  • 一、前言 上章我們提到過開發一個插件所需要的步驟: 瀏覽器插件-自動登錄淘寶(-) 並且還介紹瞭如何在頁面上面註入腳本代碼,並且成功的完成用戶名和密碼的自動輸入功能。 本章將會以一些案例來介紹插件的一些新的開發技巧。案例將包括: 關於案例 涉及的技術點包括: 如何使用popup.html popup ...
  • 本篇主要介紹HTML5增加的語義元素中關於頁面結構方面的,包含: <article>、<aside>、<figure>、<figcaption>、<footer>、<header>、<main>、<nav>、<section>等元素。 目錄 1. 語義元素介紹 1.1 何為語義元素 1.2 特點 2 ...
  • 什麼是web app? WebApp是指基於Web的系統和應用,其作用是向廣大的最終用戶發佈一組複雜的內容和功能。 說的淺顯易懂點兒就是因為移動互聯網特別火爆,很多企業公司也都想擁有一個屬於自己的app,但是因為原生app開發的成本比較高,而且後期維護比較困難,這些開發成本和後期維護成本對於個人創業 ...
  • function db_connect()//連接資料庫 { @$db =mysql_connect('localhost','root','test'); if(!$db) throw new Exception('連接資料庫失敗!請重試!'); mysql_select_db('book'); ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...