Web-CSS入門

WEB前端,三部分:HTML部分、CSS部分、Javascript部分。

1.HTML部分:主要負責網頁的結構層

2.CSS部分:主要負責網頁的樣式層

3.JS部分:主要負責網頁的行為層


**基本概念**

層疊樣式表,Cascading Style Sheet (CSS) 也叫級聯樣式表,主要用來控制網頁樣式和布局。實現網頁內容與樣式分離,提高網頁開發效率和可維護性,便于統一管理網頁風格。

**引入方式**

- 行內樣式:主要就是通過標簽的style屬性來進行設置。每個標簽都要寫,且可能出現大量重復的問題。優先級高。
- 內部樣式:將CSS代碼寫在網頁內,在head標簽的style標簽內。規避了一些重復的行內樣式,作用進在于當前頁面。
- 外部樣式:將CSS代碼以一個獨立的文件存在`xxx.css`,在HTML中用`link`標簽來進行引入。


目錄

一.CSS選擇器:

1.基礎選擇器

2.復合選擇器

3.屬性選擇器

4.偽類選擇器

????????1. 鏈接偽類選擇器

????????2.結構偽類選擇器

????????3.目標偽類選擇器

????????4.表單相關偽類選擇器

????????5.否定偽類選擇器

????????6.焦點相關偽類選擇器

5.偽元素選擇器

6.優先級的計算規則

二.CSS的常見樣式

1.形狀相關

2.陰影效果

3.文本效果

4.超出處理方案

5.隱藏和顯示

6.背景樣式

7.定位問題

8.CSS3新特性

9.媒體查詢

10.@font-face 字體

11.過渡效果

12.變幻效果


一.CSS選擇器:

1.基礎選擇器

-?標簽選擇器:通過HTML的標簽名進行選擇;

????????標簽名稱{樣式代碼}

- 類選擇器:通過標簽的class屬性進行選擇;(可以重名的ID)

?????????typeA {

? ? ? ? ? ? ? ????????? background-color: aqua;

? ? ? ????????? ? ? }

- ID選擇器:通過標簽的id屬性進行選擇;

????????<p id = "p1">一個帶有ID的段落</p>

- 通配符選擇器(不用)清除所有的標簽的邊距

????????<style>*{color:red;}? ?<style>

優先級:ID選擇器>類選擇器>標簽選擇器(有相同屬性時 如果沒有相同屬性 則共同作用)

2.復合選擇器

- 后代選擇器:選擇某個元素內部的所有層級的子元素 `祖先選擇器 后代選擇器`

- 子選擇器:選擇某個元素內部的下一級特定子元素 `父選擇器 > 子選擇器`

- 相鄰兄弟選擇器:選擇緊接著某一個元素的且同時具有相同父元素的兄弟元素 `前一個 + 后一個`

- 后續兄弟選擇器:選擇某一個元素之后且同時具有相同父元素的所有兄弟元素 `前一個元素 ~ 后一個元素`

- 交集選擇器:選擇同時滿足多個選擇器的元素,多個選擇器之間沒有分隔連著寫即可

- 并集選擇器:選擇滿足任意一個選擇器條件的元素,多個選擇器之間用逗號分隔即可 `選擇器,選擇器,選擇器`

## 優先級的計算規則

CSS選擇器優先級的計算遵循 **特殊性** 規則:

- 選擇器的特殊性由四個值表示(從左到右重要性依次遞減) `[0,0,0,0]`

- 內聯樣式:一個內聯樣式提供一個 `[1,0,0,0]`

- ID選擇器:一個ID選擇器提供一個 `[0,1,0,0]`

- 類選擇器、屬性選擇器、偽類選擇器:每一個提供 `[0,0,1,0]`

- 標簽選擇器:一個標簽選擇器提供一個 `[0,0,0,1]`

- 通配符選擇器:`[0,0,0,0]`

- 繼承屬性:比上述所有更低,最低的

舉例子來看:

- `body div p`:`[0,0,0,3]`

- `ol p`:`[0,0,0,2]`

- `.type p`:`[0,0,1,1]`

- `#main ~ p`:`[0,1,0,1]`

- `div.text ~ p `:`[0,0,1,2]`

- 按照特殊性從左到右比較 `[0,1,0,0]` > `[0,0,0,1000]`

- 如果優先級一樣的話,后定義的覆蓋先定義的(相同屬性,不相同則共同作用)

3.屬性選擇器

允許根據元素的屬性或屬性值來進行選擇

- 存在屬性選擇器:選擇具有指定屬性的元素,無論元素的值是什么 `[屬性名]`

- 精確屬性值選擇器:選擇具有指定屬性名和指定屬性值的元素 `[屬性名="屬性值"]`

- 包含單詞屬性選擇器:選擇具有指定屬性名,但該屬性的值是一個以空格分隔的單詞列表(多屬性值),其中包含指定單詞的元素。`[屬性名~="屬性值"]`

- 以指定字符串開頭的屬性值選擇器:選擇具有指定屬性名,并且該屬性值以指定字符串開頭的元素 `[屬性名^="屬性值"]`

- 以指定字符串結尾的屬性值選擇器:選擇具有指定屬性名,并且該屬性值以指定字符串結尾的元素 `[屬性名$="屬性值"]`

- 包含指定字符串屬性選擇器:選擇具有指定屬性名,并且該屬性值包含指定字符串的元素 `[屬性名*="屬性值"]`

4.偽類選擇器

????????1. 鏈接偽類選擇器
主要用于處理鏈接元素在不同交互狀態下的樣式。

- `:link`:用于選擇未被訪問的狀態

- `:visited`:用于選擇被訪問的狀態

- `:hover`:用于選擇鼠標懸停時的狀態

- `:active`:用于選擇正在被激活(鼠標點擊)的元素的狀態

????????2.結構偽類選擇器
根據元素在文檔樹(document)中的位置來選擇的。

- `:first-child`:選擇作為其父元素中第一個子元素的元素

- `:last-child`:選擇作為其父元素中最后一個子元素的元素

- `:nth-child(n)`:選擇作為其父元素中第n個子元素,n可以是數字,可以是關鍵字(even偶數 odd奇數)、也可以是公式(`2n+1`)

- `:nth-last-child(n)`:將上面這個`:nth-child(n)`倒過來。

- `:first-of-type`:選擇作為其父元素中第一個指定類型的子元素

- `:last-of-type`:選擇作為其父元素中最后一個指定類型的子元素

- `:nth-of-type(n)`:選擇作為其父元素中第n個指定類型的子元素

- `:nth-last-of-type(n)`:將上面這個`:nth-of-type(n)`倒過來。

- `:only-child`:選擇作為其父元素中唯一一個的子元素

- `:only-of-type`:選擇作為其父元素中唯一一個指定類型的子元素

????????3.目標偽類選擇器
選擇當前活動的目標元素,通常用于URL的錨點鏈接
????????4.表單相關偽類選擇器
用于選擇表單元素的不同狀態

- `:enable`:選擇可用的表單元素

- `:disable`:選擇不可用的表單元素

- `:checked`:選擇被選中的表單元素

- `:required`:選擇具有`required`屬性的元素

- `:optinal`:選擇沒有`required`屬性的元素

- `:valid`:選擇符合表單驗證的元素

- `:invalid`:選擇不符合表單驗證的元素

- `:in-range`:選擇數據在表單范圍內的元素

- `:out-of-range`:選擇數據不在表單范圍內的元素

????????5.否定偽類選擇器
選擇不匹配的選擇器的元素
????????6.焦點相關偽類選擇器

- `:focus`:選擇當前獲得焦點的元素

- `:focus-within`:選擇包含獲得焦點的子元素的父元素

- `:focur-visible`:選擇當前獲得焦點且焦點可見的元素

5.偽元素選擇器
用于選取元素中的特定部分,這些部分在文檔樹中并不真實存在,只是通過CSS來進行的虛擬創建和樣式化的內容。

- `::before` 和 `::after`:在選定元素的內容之前或之后添加額外的內容,content屬性指定添加的內容。

- `::first-letter`:選定元素的內容的第一個字符

- `::first-line`:選定元素的內容的第一行文字

- `::selection`:選定元素的內容被選中時

- `::placeholder`:設置表單輸入框提示文字的樣式


二.CSS的常見樣式

## css常見樣式參考表

1.形狀相關

寬、高、邊線、字體相關的樣式

2.陰影效果

陰影效果主要有文本陰影和盒子陰影

3.文本效果

4.超出處理方案

5.隱藏和顯示

針對本身,可以實現標簽的隱藏和顯示。

在CSS中,`display`屬性控制標簽的隱藏和顯示。

`display`不僅僅能夠隱藏或者顯示標簽,而且可以修改標簽默認屬性,如將塊標簽修改為行內標簽,或者將行內標簽修改為塊標簽。

6.背景樣式

7.定位問題

?定位:css的定位效果是,重新調整標簽的位置關系

? ? ? ? ? ? ? ? position:static 默認效果

? ? ? ? ? ? ? ? 絕對定位:將標簽確定在某一個位置 ?

? ? ? ? ? ? ? ? 父相子絕(如果某一個子元素需要做絕對定位,參照的父元素必須做相對定位)

8.CSS3新特性

CSS3誕生于2010年前后,W3C在12年左右發布了C3標準。

????????+ 媒體查詢

????????+ 字體設置

????????+ 動畫、過渡、變換等動畫效果

????????+ avg等icon的使用

????????+ ……

9.媒體查詢

媒體查詢在CSS2時,就已經存在了。

媒體查詢:指的是CSS對于當前展示頁面的設備的查詢能力,**適配對應的屏幕分辨率。**

CSS2:
@media 查詢,在css2就出現了,最開始用來指定對應的設備,如tv表示電視(tv)、screen表示電腦、print表示打印機,后來隨著移動端的發展,設備的更新,為了響應現在日異月新的顯示屏設備展示數據,css3提供了媒體查詢,主要針對不同分辨率的屏幕。在2010年前,移動互聯網的發展,促使大量各種分辨率的屏幕出現。CSS2提供的媒體就不滿足時代的發展了,因此C3正式推出了符合當前時代發展的媒體查詢,是以分辨率為媒體的查詢標準了。

10.@font-face 字體

可以使用@font-face,通過自定義的字體文件,實現任意字體在頁面文字中的使用。

11.過渡效果

過渡,是CSS3提供的,用來讓CSS樣式,實現補間動畫的一種手段,在規定的時間內,從開始到結束這個區間內,實現動畫的自動補齊。

12.變幻效果

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

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

相關文章

2025年PMP 學習十六 第11章 項目風險管理 (總章)

2025年PMP 學習十六 第11章 項目風險管理 &#xff08;總章&#xff09; 第11章 項目風險管理 序號過程過程組1規劃風險管理規劃2識別風險規劃3實施定性風險分析規劃4實施定量風險分析規劃5規劃風險應對執行6實施風險應對執行7監控風險監控 目標: 提高項目中積極事件的概率和…

基于SpringBoot的小區停車位管理系統

作者&#xff1a;計算機學姐 開發技術&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源碼”。 專欄推薦&#xff1a;前后端分離項目源碼、SpringBoot項目源碼、Vue項目源碼、SSM項目源碼、微信小程序源碼 精品專欄&#xff1a;…

HTML常用標簽用法全解析:構建語義化網頁的核心指南

HTML作為網頁開發的基石&#xff0c;其標簽的合理使用直接影響頁面的可讀性、SEO效果及維護性。本文系統梳理HTML核心標簽的用法&#xff0c;結合語義化設計原則與實戰示例&#xff0c;助你構建規范、高效的網頁結構。 一、基礎結構與排版標簽 1.1 文檔結構 <!DOCTYPE htm…

國產linux系統(銀河麒麟,統信uos)使用 PageOffice自定義Word模版中的數據區域

? PageOffice 國產版 &#xff1a;支持信創系統&#xff0c;支持銀河麒麟V10和統信UOS&#xff0c;支持X86&#xff08;intel、兆芯、海光等&#xff09;、ARM&#xff08;飛騰、鯤鵬、麒麟等&#xff09;、龍芯&#xff08;Mips、LoogArch&#xff09;芯片架構。 在實際的Wor…

.NET Core liunx二進制文件安裝

最近遇見個尷尬的事情&#xff0c;都2025年了。我需要部署一個自己多年前寫的項目。由于時間緊、任務重&#xff0c;我懶得去升級到8.0了。于是計劃在Ubuntu20.04上安裝.NET Core3.1項目。可以使用包管理器卻安裝不上了。于是&#xff0c;我就嘗試二進制文件安裝。 實際上二進…

【python基礎知識】Day 27 函數專題2:裝飾器

知識點&#xff1a; 裝飾器的思想&#xff1a;進一步復用函數的裝飾器寫法注意內部函數的返回值 裝飾器教程 作業&#xff1a; 編寫一個裝飾器 logger&#xff0c;在函數執行前后打印日志信息&#xff08;如函數名、參數、返回值&#xff09; def logger(func):def wrapper(*ar…

MGX:多智能體管理開發流程

MGX的多智能體團隊如何通過專家混合系統采用全新方法,徹底改變開發流程,與當前的單一智能體工具截然不同。 Lovable和Cursor在自動化我們的特定開發流程方面取得了巨大飛躍,但問題是它們僅解決軟件開發的單一領域。 這就是MGX(MetaGPT X)的用武之地,它是一種正在重新定…

【未完】【GNN筆記】EvolveGCN:Evolving Graph Convolutional Networks for Dynamics Graphs

Evolving Graph Convolutional Networks for Dynamics Graphs 視頻鏈接&#xff1a;《圖神經網絡》 相關系列&#xff1a; 《Dynamic Graph的分類》《動態圖網絡之Dynamic Self-Attention Network》 文章目錄 Evolving Graph Convolutional Networks for Dynamics Graphs一、…

Go語言之路————并發

Go語言之路————并發 前言協程管道SelectsyncWaitGroup鎖 前言 我是一名多年Java開發人員&#xff0c;因為工作需要現在要學習go語言&#xff0c;Go語言之路是一個系列&#xff0c;記錄著我從0開始接觸Go&#xff0c;到后面能正常完成工作上的業務開發的過程&#xff0c;如…

Gmsh劃分網格|四點矩形

先看下面這段官方自帶腳本 /*********************************************************************** Gmsh tutorial 1** Variables, elementary entities (points, curves, surfaces), physical* entities (points, curves, surfaces)********************************…

leetcode0215. 數組中的第K個最大元素-medium

1 題目&#xff1a;數組中的第K個最大元素 官方標定難度&#xff1a;中 給定整數數組 nums 和整數 k&#xff0c;請返回數組中第 k 個最大的元素。 請注意&#xff0c;你需要找的是數組排序后的第 k 個最大的元素&#xff0c;而不是第 k 個不同的元素。 你必須設計并實現時…

rocketmq 環境配置[python]

因本人是 python 開發&#xff0c;macbook 開發。windows 可以采取配置遠程 linux 解釋器或者 pycharm 專業版的 docker 解釋器進行開發 M1 芯片 本地運行 rocketmq rocketmq Python 開源地址&#xff1a; https://github.com/apache/rocketmq-client-python 因為需要 linu…

OCCT知識筆記之OCAF框架詳解

OCAF框架在OCCT項目中的構建與使用指南 Open CASCADE Application Framework (OCAF)是Open CASCADE Technology (OCCT)中用于管理CAD數據的核心框架&#xff0c;它提供了一種結構化方式來組織和管理復雜的CAD數據&#xff0c;如裝配體、形狀、屬性(顏色、材料)和元數據等。本文…

go-數據庫基本操作

1. 配置數據庫 package mainimport ("gorm.io/driver/mysql""gorm.io/gorm" ) #配置表結構 type User struct {ID int64 json:"id" gorm:"primary_key" // 主鍵ID自增長Username stringPassword string } #配置連接接信息 func…

【含文檔+PPT+源碼】基于大數據的交通流量預測系統

技術棧說明 技術棧&#xff1a; 后端&#xff1a;Django&#xff08;后端是前后端分離的&#xff09; 前端&#xff1a;Vue.js ElementUI 開發工具&#xff1a; Python3.9以上 Pycharm MySQL5.7/MySQL8 VSCode 項目演示視頻 基于大數據的交通流量預測系統

海盜王3.0的數據庫3合1并庫處理方案

原版的海盜王數據庫有3個accountserver&#xff0c;gamedb&#xff0c;tradedb&#xff0c;對應到是賬號數據庫&#xff0c;游戲數據庫&#xff0c;商城數據庫。 一直都有個想法&#xff0c;如何把這3個庫合并到一起&#xff0c;這樣可以實現一些功能。 涉及到sqlserver的數據庫…

Apollo Client 1.6.0 + @RefreshScope + @Value 刷新問題解析

問題描述 在使用 Apollo Client 1.6.0 結合 Spring Cloud 的 RefreshScope 和 Value 注解時&#xff0c;遇到以下問題&#xff1a; 項目啟動時第一次屬性注入成功后續配置變更時&#xff0c;Value 屬性會刷新&#xff0c;但總是刷新為第一次的舊值&#xff0c;而不是最新的配…

LearnOpenGL --- 你好三角形

你好&#xff0c;三角形的課后練習題 文章目錄 你好&#xff0c;三角形的課后練習題一、創建相同的兩個三角形&#xff0c;但對它們的數據使用不同的VAO和VBO 一、創建相同的兩個三角形&#xff0c;但對它們的數據使用不同的VAO和VBO #include <glad/glad.h> #include &…

STM32F407VET6實戰:CRC校驗

CRC校驗在數據傳輸快&#xff0c;且量大的時候使用。下面是STM32F407VET6HAL庫使用CRC校驗的思路。 步驟實現&#xff1a; CubeMX配置 c // 在CubeMX中啟用CRC模塊 // AHB總線時鐘自動啟用 HAL庫代碼 c // 初始化&#xff08;main函數中&#xff09; CRC_HandleTypeDef …

Vue3中實現輪播圖

目錄 1. 輪播圖介紹 2. 實現輪播圖 2.1 準備工作 1、準備至少三張圖片&#xff0c;并將圖片文件名改為數字123 2、搭好HTML的標簽 3、寫好按鈕和圖片標簽 ?編輯 2.2 單向綁定圖片 2.3 在按鈕里使用方法 2.4 運行代碼 3. 完整代碼 1. 輪播圖介紹 首先&#xff0c;什么是…