前端入門知識分享:如何在HTML或CSS文件中引用CSS文件。

閱讀提示:本文僅僅僅適用于剛剛接觸HTML和CSS的小白從業者,新人愛好者。自覺身份不符的老鳥們,盡快繞行吧!

什么是CSS?什么是CSS文件。

CSS,全稱為Cascading Style Sheets(層疊樣式表),是一種用于描述網頁上的信息格式化和顯示方式的語言。它的主要功能是控制網頁的視覺表現,包括字體、顏色、布局等樣式結構。通過CSS,開發者可以將文檔的內容與其表現形式分離,這樣不僅提高了網頁的可維護性,還使得樣式更加靈活和多樣化。

CSS的應用非常廣泛,它可以用來控制網頁中幾乎所有可見元素的樣式,包括但不限于文本的字體、大小、顏色,元素的位置、大小、背景色,以及各種交互效果等。CSS屬性的具體書寫不是本文討論的內容。如果您還需要了解更多關于css的基礎知識,請自行上網學習。

CSS樣式可以直接寫在HTML文檔中,也可以單獨存儲在樣式文件(.css類型的文件)中,這樣可以被多個頁面共享使用。 單獨存儲的樣式表文件,就是我們常說的CSS文件(樣式表文件)。

如何在HTML中使用CSS?

在HTML中使用css,有下面四種方法:

  • 行內樣式:使用 HTML 標簽的 style 屬性定義 CSS 樣式;
  • 內嵌樣式:使用 style 標簽在 HTML 文檔頭部( 通常在 head 之間)定義 CSS 樣式;
  • 鏈接式:使用 link 標簽引入外部 CSS 樣式表文件。
  • 導入式:使用 @import 命令導入外部 CSS 樣式表文件。

接下來,我來分別舉例說明一下具體方法。

行內樣式:

行內樣式的寫法:

所謂行內樣式,就是把樣式直接寫在HTML的行中。比如:

<p style='color:red;font-size:14px;'>這就是一個典型的行內樣式寫法。顏色:紅,字號大小:14像素。</p>
行內樣式的語法:
style="";

在引號中間,書寫css代碼,在需要書寫多個樣式時,使用 ' ; ' 分號分隔。 在HTML頁面涉及到的大部分情況下:單引號和雙引號均可使用,但注意一定要成對使用。

行內樣式的特點:
  • 代碼短小,應用靈活:當你的頁面只需要極少的樣式,或者,這個樣式不需要再做調整,或可能通過 JS 進行動態調整的時候,采用這樣的寫入方式。
  • 優先級高:直接寫在行內的樣式,優先級高于其他方式書寫的樣式表。
  • 效率低下:因為樣式表寫在行內,即使使用相同標簽的樣式,也要重復的寫在每行內。這樣產生大量的冗余代碼,增加了大量的前端工作量,占用了大量服務器資源和流量。
  • 難讀與易錯:頁面中大量的style,降低了頁面的結構清晰度,導致頁面不容易辨識,不方便修改,增加后期維護成本。
  • 沒有實現內容與變現分離,與CSS設計的初衷相悖。

內嵌樣式:

內嵌樣式的寫法:

內嵌樣式,與行內樣式既有相同也有不同。相同點:都是在HTML頁面直接寫樣式表。區別是:內嵌樣式是把本頁用到的樣式幾種寫在一個或幾個style標簽中間。而style標簽可以出現在HTML頁面的任何地方。但通常,它會出現在 head 標簽之間。比如:

<head>
<style>.btn-img{  background: #eace00;  }.btn-img span{display: block;transform-style: preserve-3d;transition: all .5s;}    
</style>
</head>
內嵌樣式的語法和作用優先級:
<style>.classA{······    }.classB{······    }······
</style>

在內嵌樣式的書寫過程中,可以為使用相同樣式的標簽設置統一的class名,然后通過在html的標簽內添加class,實現樣式表應用。比如:

<p class='classA' > 
<p class='classA classB' >

在class的語法中,可以使用 “”,‘’ 雙引號 或者 單引號 引用class類名,當一個標簽需要使用多個class類時,在引用內使用空格間隔。注意,當 classB 與 classA 的樣式表中存在定義的樣式沖突的情況,比如:

.classA{color:red;  }
.classB{color: blue;   }

上面這樣的寫法 在下面這樣引用時:

<p class='classA classB' >

起作用的是 color:blue 。注意,這里不是因為在樣式表文件中 classB寫在了classA的后面。但是,當你在同個樣式表中書寫了兩個相同類名的相同屬性時:

.classA{ color: blue; } 
.classA{ color:red; }

是書寫在后面的 color:blue 起作用。這取決于 css的優先級原則:作用在后面的樣式 會覆蓋前面的樣式,換句話說:在渲染過程中后起作用的樣式優先。

當然,熟悉CSS同學會說,我們還可以通過!important 改變優先級。注意:在書寫樣式表時使用 !important 的權重最高(但這并不是W3C推薦的寫法)。 !important 不是改變了css樣式的優先級,而是脫離了優先級規則,使用一個 !important 規則時,此聲明將覆蓋任何其他聲明。

比如下面的寫法,即使 color:red 寫在后面,但因為 important的作用,依然是前面的 color:blue 起作用。

.classA{ color: blue !important; } 
.classA{ color:red; }
  • !important的引入主要是為了處理瀏覽器兼容性問題。在早期的瀏覽器版本中,如IE6不識別!important,而IE7及其他瀏覽器則支持。通過使用!important,開發者可以為特定瀏覽器提供它認識的樣式寫法,以達到在所有瀏覽器中顯示一致的效果。這種做法在CSS中被稱為hack。
  • 然而,雖然!important在某些情況下非常有用,但它也可能導致CSS代碼的混亂和難以維護。因此,建議僅在必要時使用它,并盡量通過其他方式(如調整選擇器的特異性或重新組織規則)來避免使用!important。
  • 總的來說,!important是CSS中一個強大的工具,用于確保特定樣式的應用,尤其是在需要覆蓋其他沖突樣式時。但使用時需要謹慎,以避免引入不必要的復雜性和維護問題。
  • 使用 !important 是一個壞習慣,應該盡量避免。

另外一個非常值得新手注意的是,當你的標簽需要同時使用 一個以上的class類時,下面這樣書寫是錯誤的:

<p class='classA' class='classB' >

上面的書寫方式,將導致classA失效。正確的打開方式是:

<p class='classA classB' >
內嵌樣式的特點:
  • 內容與表現進行了簡單的分離。
  • 提高了頁面樣式的復用性。
  • 沒有脫離頁面,在需要修改樣式表的時候,還是需要在頁面上進行修改,使前端工程師與程序工程師同時在頁面上工作,提高了出錯的幾率。

鏈接式:

鏈接式引用CSS文件的寫法:

鏈接式通過 HTML 的 link 標簽,將外部樣式表文件鏈接到 HTML 文檔中,這也是網絡上網站應用最多的方式,同時也是最實用的方式。比如:

<link href="style.css" type="text/css" rel="stylesheet" />

當你有多個CSS文件時,你可以這寫:

<link href="reset.css" type="text/css" rel="stylesheet"/> 
<link href="style.css" type="text/css" rel="stylesheet"> 
<link href="index.css" type="text/css" rel="stylesheet">

使用上面的寫法,CSS編寫可以非常清晰的管理項目的樣式表,比如:

  • reset.css --- 清除瀏覽器默認樣式
  • style.css --- 全站通用的控件,字體,布局等樣式
  • index.css --- 首頁涉及到的樣式

需要特別注意的是,頁面渲染時,也同樣遵循了寫在后面的樣式覆蓋前面樣式的規則。所以,要記得把清除瀏覽器樣式放在最前面,不把首頁的樣式表放在最下面:越局部的,越靠后。

接著以上述書寫順序為例,假設你在style.css 的 H1 標簽中,寫了如下樣式:

/* style.css */ 
h1 { color:red; font-size:1.8rem; }

而你在index.css 中,需要將 h1 的顏色變成 綠色,但不調整文字的大小,那么你不需要去 style.css 中去修改 h1 的樣式,你只需要在 index.css 中這樣寫:

/* index.css */ 
h1{ color:green; }

這時候,你的首頁的H1 的文字樣式就改變成綠色了。而其他頁面的H1依然還是紅色的。這個例子,體現了樣式表拆分管理的優點,也體現了樣式表在頁面中的優先級規則。

鏈接式引用CSS文件的特點:
  • HTML 文檔和 CSS 文件完全分離,實現結構層和表示層的徹底分離。
  • 提高了網頁結構的擴展性和 CSS 樣式的可維護性,當你需要修改某個頁面的樣式時,你只需要將某個樣式表從服務器上下載到本地,修改完成后上傳即可。
  • 使從事樣式表編寫的工作者,專注于樣式表本身。

導入式:

使用 @import 命令導入外部樣式表。

導入式引用樣式表的的寫法:
@import url(css/daoru.css);
@import url('style/daoru.css');
@import url("daoru.css");

上面的例子展示了位于相同或不同路徑下的頁面和樣式表文件的導入方法。如果兩個文件位于同一目錄,也可以省略URL路徑,直接使用文件名:

@import daoru.css; 
@import 'daoru'; 
@import "daoru.css";

如你所見,這個寫法是非常不嚴謹的。你可以和靈活的將css文件通過上述方式引用到HTML文件中。其實,這是一種在HTML頁面中不太常見的引用樣式表文件的方法。至于優先級規則,@import 與

受前后順序的規則限制一模一樣。這里就不再做討論了。

在CSS文件中引用CSS文件:

在CSS文件中引用另一個CSS文件,可以使用CSS的@import規則。這個規則必須在其他CSS規則之前使用,所以通常放在文件的最開始。

例如,假設你有兩個CSS文件:base.css和theme.css。你想要在theme.css中引入base.css,可以在theme.css文件的最開始添加以下代碼:

@import url('base.css'); 
/* 其他theme.css的樣式規則 */

同前面所說的在頁面中導入樣式表的方法一樣,如果兩個樣式表文件位于同一目錄,也可以省略URL路徑,直接使用文件名:

@import 'base.css'; 
/* 其他theme.css的樣式規則 */

請注意:@import規則可能會導致性能問題,因為它可能增加額外的HTTP請求,從而影響頁面加載性能。因此,在包含內容較多的站點上,應謹慎使用或考慮使用其他技術如預處理器(如Sass或Less)來合并CSS文件。

樣式表優先級:

基于前面所有陳述總結,樣式表的優先規則可以歸納為:

  • 內聯樣式 > 內部樣式 和 外部樣式比較:標簽上面使用的style屬性優先級最高。
  • 內部樣式 和 外部樣式 的優先級比較:后讀取的樣式優先級更高,即:哪個最后定義,就使用哪個樣式,也可以理解為后定義的樣式,會覆蓋前面定義的樣式。在渲染過程中,最后起作用的樣式優先級最高。
  • 最近祖先樣式的優先級:?如果一個元素嵌套在另一個元素內,?那么內部元素的直接樣式將優先于外部元素的祖先樣式。?例如,?如果一個類名為son的div的顏色被設置為藍色,?而它的祖先div的顏色被設置為紅色,?那么son這個div的顏色將是藍色2。?
  • 權重:?權重是決定CSS規則如何被瀏覽器解析并最終顯示的關鍵。?權重越高的樣式優先級越高。?每個選擇器都有一個特定的權重值,?當多個樣式被應用到同一個元素上時,?權重決定了哪種樣式將被采用。!important 的權重最高。

說了這么多,相信對于新手來說會有所幫助!別看我文章不收費,但是內容卻是實實在在的。所以,看完了的同學,請幫忙點贊+關注+評論!謝謝!

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

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

相關文章

分布式IO模塊軟件配置

組態接口模塊 1、打開網絡視圖 2、拖拽出ET200SP 3、雙擊ET200SP的圖片&#xff0c;進入從站配置 總線適配器的組態更換 關于IO地址分配&#xff0c;需要建立好子網通信后&#xff0c;在主機上配置。 可以看到IP 和設備名 設備與控制器的Profinet連接 先找到設備名稱再找…

HarmonyOS鴻蒙DevEco Studio無法連接本地模擬器

使用DevEcoStudio 5.0.3.403版本 發現無法選擇模擬器 解決方法&#xff1a; 1、打開模擬器 2、關閉DevEco Studio&#xff0c;&#xff08;不要關閉模擬器&#xff09; 3、重新打開DevEco Studio。

EXCEL VBA發郵件,實現自動化批量發送

EXCEL VBA發郵件&#xff0c;實現自動化批量發送 以GET方式上傳數據 Public Function uploadData_GET(ByVal url As String)Dim httpSet http CreateObject("Microsoft.XMLHTTP")http.Open "GET", url, Falsehttp.sendDebug.Print http.getAllResponseHea…

四道經典算法JAVA

1.爬樓地 爬20個臺階的爬法:f(19)f(18) 經典斐波拉契數列問題 public class demo4 {//爬樓梯問題public static void main(String[] args) {System.out.println(getSum(20));}public static int getSum(int n) {if (n 1)return 1;if (n 2)return 2;return getSum(n - 1) …

SpringBoot:SpringBoot中如何實現對Http接口進行監控

一、前言 Spring Boot Actuator是Spring Boot提供的一個模塊&#xff0c;用于監控和管理Spring Boot應用程序的運行時信息。它提供了一組監控端點&#xff08;endpoints&#xff09;&#xff0c;用于獲取應用程序的健康狀態、性能指標、配置信息等&#xff0c;并支持通過 HTTP …

jdk1.8 ConcurrentHashMap 源碼分析

ConcurrentHashMap 1.8 使用synchronized 和CAS 實現 記住&#xff1a;1.8沒有分段鎖不要混淆了&#xff0c;分段鎖是1.7中的 final V putVal(K key, V value, boolean onlyIfAbsent) {if (key null || value null) throw new NullPointerException();//計算hashint hash…

關于Python的類的一些理解

才發現python的類對象只能調用類方法 我想使用對類對象a使用系統調用的len方法就會報錯 2.類對象a是什么&#xff1f; 答&#xff1a;是所有的帶有self的成員變量 舉例說明&#xff1a;紅色的就是a里面的東西 class A:def __init__(self,data):self.datadataself.b1self.d{a…

發表EI會議論文-對考研生和研究生都有好處!

EI論文對考研和保研的幫助主要體現在以下幾個方面&#xff1a; 對考研的幫助 1.復試加分&#xff1a;在考研過程中&#xff0c;復試階段是關鍵&#xff0c;擁有EI論文可以證明考生具備一定的科研能力&#xff0c;給考官留下深刻印象&#xff0c;有助于提高復試通過率。 2.學…

解讀‘‘不要卷模型,要卷應用‘‘

前言 2024 年 7 月 4 日&#xff0c;世界人工智能大會暨人工智能全球治理高級別會議全體會議在上海世博中心舉行。百度創始人李彥宏在產業發展主論壇上發言&#xff0c;呼吁不要卷模型&#xff0c;要卷應用。 目錄 四個要點 積極的觀點 不合理性 總結 四個要點 李彥宏的呼吁…

多模態:Nougat詳解

文章目錄 前言一、模型結構1. encoder2. decoder3. set 二、數據增強三、數據splitting the pages 四、實驗評估repetitions during inference 五、代碼1. 環境安裝2. Dataset&#xff08;dataset.py&#xff09;3. Model&#xff08;model.py&#xff09; 總結 前言 科學知識…

一網統管/視頻匯聚/安防監控平臺EasyCVR啟動后無法訪問是什么原因?

智慧城市/一網統管/視頻匯聚/安防監控平臺EasyCVR兼容性強&#xff0c;支持多協議接入&#xff0c;包括國標GB/T 28181協議、GA/T 1400協議、部標JT808協議、RTMP、RTSP/Onvif協議、海康Ehome、海康SDK、大華SDK、華為SDK、宇視SDK、樂橙SDK、螢石云SDK等&#xff0c;并能對外分…

接口測試課程結構

課程大綱 如圖&#xff0c;接下來的階段課程&#xff0c;依次專項講解如下專題&#xff0c;能力級別為中級&#xff0c;進階后基本為中高級&#xff1a; 1.接口基礎知識&#xff1b; 2.抓包工具&#xff1b; 3.接口工具&#xff1b; 4.mock服務搭建&#xff08;數據模擬服務&am…

虛擬化技術的標準化

虛擬化技術的標準化是一個復雜而系統的過程&#xff0c;它旨在通過制定統一的接口、協議和規范來確保不同虛擬化產品之間的兼容性和互操作性。以下是虛擬化技術標準化的一些具體步驟&#xff1a; 1. 需求分析與標準制定 需求收集&#xff1a;首先&#xff0c;需要廣泛收集來自…

Git使用——首次創建本地倉庫、配置、初始化、關聯遠程倉庫

1、安裝 Git軟件 官網&#xff1a;git-scm.com 有時候官網打不開&#xff0c;這里留存個之前下載過的安裝包&#xff1a; https://download.csdn.net/download/weixin_43908355/89502977 2、配置本地倉庫 在準備建倉庫的文件夾里&#xff0c;右鍵點擊&#xff1a;Git Bash …

鴻蒙系統創建簽名文件及使用創建簽名文件打包并安裝

* 第一步 第二步&#xff1a;創建.p12文件&#xff0c;點擊New如果有的話就Choose Existing 填好下面信息 點擊Next進入到下面界面 開始生成csr文件如下圖 點擊OK–>Finish 文件保存在了下面目錄 第三步 1.訪問華為開發者平臺&#xff0c;登錄開發者賬號&#xff0c;進…

【linux服務器篇】-Redis-RDM遠程連接redis

redis desktop manager 使用遠程連接工具RDM連接redis 市面上比較常見的其中一款工具redis desktop manager 簡單的說&#xff1a; Redis Desktop Manager 簡單的來講就是Redis可視化工具&#xff0c;可以讓我們看到Redis中存儲的內容。 redis desktop manager是一款功能強…

環境構建大師:精通Conda中的conda create命令

環境構建大師&#xff1a;精通Conda中的conda create命令 引言 Conda是一個開源的包管理系統和環境管理系統&#xff0c;廣泛用于Python和其他科學計算語言的依賴管理。conda create命令是Conda中最核心的命令之一&#xff0c;它允許用戶快速創建新的隔離環境&#xff0c;確保…

金絲雀部署的藝術:在Eureka中實現漸進式服務更新

金絲雀部署的藝術&#xff1a;在Eureka中實現漸進式服務更新 引言 在微服務架構中&#xff0c;金絲雀部署是一種逐漸將新版本的服務引入生產環境的策略&#xff0c;以測試新版本在小規模用戶群中的表現&#xff0c;并減少更新風險。Eureka作為Netflix開源的服務發現框架&…

【面試八股總結】面向對象三大特性、虛函數、純虛函數、虛繼承

參考資料&#xff1a;阿秀 一、面向對象三大特性 封裝&#xff1a;將數據和代碼捆綁在一起&#xff0c;避免外界干擾和不確定性訪問 繼承&#xff1a;讓某種類型對象獲得另一個類型對象的屬性和方法 多態&#xff1a;同一種事務表現出不同事務的能力&#xff0c;即&#xf…

紅黑樹,B+樹,B樹的結構原理及對比

紅黑樹 結構原理&#xff1a; 紅黑樹是一種自平衡的二叉搜索樹&#xff0c;它通過在每個節點上增加一個顏色屬性&#xff08;紅色或黑色&#xff09;來確保樹的平衡性。紅黑樹的平衡是通過一系列旋轉和重新著色操作來實現的&#xff0c;這些操作在插入、刪除節點時進行&#…