前端基礎 —— B / CSS基礎

一、CSS 基礎概述

定義:層疊樣式表(Cascading Style Sheets)

作用:美化頁面、實現樣式與結構分離

二、CSS 基本語法與引入方式

1. 語法規范

選擇器 +?{一條/N條聲明}

選擇器決定針對誰修改 (找誰)
聲明決定修改啥. (干啥)

<style>
p {
/* 設置字體顏色 */
color: red;
/* 設置字體大小 */
font-size: 30px;
}
</style>
<p>hello</p>

寫在 `<style>` 標簽中,通常放在 `<head>`

2. 引入方式

內部樣式表:寫在 HTML 的 `<style>` 標簽中

行內樣式表:通過元素的 `style` 屬性設置

外部樣式表:通過 `<link>` 標簽引入 `.css` 文件(推薦)

1. 創建一個 css 文件.
2. 使用 link 標簽引入 css

<link rel="stylesheet" href="[CSS文件路徑]">

創建 demo.html

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>外部樣式</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div>上帝為你關上一扇門, 然后就去睡覺了</div>
</body>

創建 style.css

div {
color: red;
}

注意: 不要忘記 link 標簽調用 CSS, 否則不生效.

三、代碼風格

格式風格:展開風格(推薦)、緊湊風格

緊湊風格
p { color: red; font-size: 30px;}展開風格
p {
color: red;
font-size: 30px;
}

大小寫:統一小寫

空格規范:冒號后加空格,選擇器與 `{` 之間加空格

四、選擇器

1. 基礎選擇器

標簽選擇器

選中所有同名標簽,能快速為同一類型的標簽都選擇出來.但是不能差異化選擇

<style>
p {
color: red;
}
div {
color: green;
}
</style>
<p>咬人貓</p>
<p>咬人貓</p>
<p>咬人貓</p>
<div>阿葉君</div>
<div>阿葉君</div>
<div>阿葉君</div>

類選擇器

可復用,差異化選擇?? ?

<style>
.blue {
color: blue;
}
</style>
<div class="blue">咬人貓</div>
<div>咬人貓</div>

語法細節:
類名用 . 開頭的
下方的標簽使用 class 屬性來調用.
一個類可以被多個標簽使用, 一個標簽也能使用多個類(多個類名要使用空格分割, 這種做法可以讓
代碼更好復用)
如果是長的類名, 可以使用 - 分割.
不要使用純數字, 或者中文, 以及標簽名來命名類名

<style>
.box {
width: 200px;
height: 150px;
}
.red {
background-color: red;
}
.green {
background-color: green;
}
</style>
<div class="box red"></div>
<div class="box green"></div>
<div class="box red"></div>

ID 選擇器

唯一,不能重復?? ?

CSS 中使用 # 開頭表示 id 選擇器
id 選擇器的值和 html 中某個元素的 id 值相同
html 的元素 id 不必帶 #
id 是唯一的, 不能被多個標簽使用 (是和 類選擇器 最大的區別)

<style>
#ha {
color: red;
}
</style>
<div id="ha">蛤蛤蛤</div>

通配符選擇器

選中所有元素?? ?頁面的所有內容都會被改成 紅色 .不需要被頁面結構調用

* {
color: red;
}

2. 復合選擇器

后代選擇器:`父 子`

元素 1 和 元素 2 要使用空格分割
元素 1 是父級, 元素 2 是子級, 只選元素 2 , 不影響元素 1

代碼示例1: 把 ol 中的 li 修改顏色, 不影響 ul

<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
<ol>
<li>ddd</li>
<li>eee</li>
<li>fff</li>
</ol>
ol li {
color: red;
}

代碼示例2: 元素 2 不一定非是 兒子, 也可以是孫子

<ul>
<li>aaa</li>
<li>bbb</li>
<li><a href="#">ccc</a></li>
</ul>
ul li a {
color: yellow;
}
或者
ul a {
color: yellow;
}

代碼示例3: 可以是任意基礎選擇器的組合. (包括類選擇器, id 選擇器)

<ol class="one">
<li>ddd</li>
<li>eee</li>
<li><a href="#">fff</a></li>
<li><a href="#">fff</a></li>
<li><a href="#">fff</a></li>
</ol>.one li a {
color: green;
}

子選擇器:`父 > 子`

元素1>元素2 { 樣式聲明 }

使用大于號分割
只選親兒子, 不選孫子元素

1. 把以下代碼中的 "小貓" 改成紅色

<div class="cat">
<ul>
<li><a href="#">小貓</a></li>
<li><a href="#">小貓</a></li>
<li><a href="#">小貓</a></li>
</ul>
</div>

CSS 結果:

.cat ul li a {
color: red;
}

2. 把以下代碼中的 "小貓" 改成紅色

<div class="cat">
<a href="#">小貓</a>
<ul>
<li><a href="#">小狗</a></li>
<li><a href="#">小狗</a></li>
</ul>
</div>
.cat>a {
color: red;
}

并集選擇器:`元素1, 元素2`

偽類選擇器:


鏈接偽類:`:link`, `:visited`, `:hover`, `:active`

焦點偽類:`:focus`

五、常用屬性

1. 字體屬性

font-family:字體類型

body {
font-family: '微軟雅黑';
font-family: 'Microsoft YaHei';
}
<style>
.font-family .one {
font-family: 'Microsoft YaHei';
}
.font-family .two {
font-family: '宋體';
}
</style>
<div class="font-family">
<div class="one">
這是微軟雅黑
</div>
<div class="two">
這是宋體
</div>
</div>

font-size:字體大小

p {
font-size: 20px;
}
<style>
.font-size .one {
font-size: 40px;
}
.font-size .two {
font-size: 20px;
}
</style>
<div class="font-size">
<div class="one">
大大大
</div>
<div class="two">
小小小
</div>
</div>

font-weight:字體粗細

p {
font-weight: bold;
font-weight: 700;
}

可以使用數字表示粗細.
700 == bold, 400 是不變粗, == normal
取值范圍是 100 -> 900

<style>
.font-weight .one {
font-weight: 900;
}
.font-weight .two {
font-weight: 100;
}
</style>
<div class="font-weight">
<div class="one">
粗粗粗
</div>
<div class="two">
細細細
</div>
</div>

font-style:斜體/正常

/* 設置傾斜 */
font-style: italic;
/* 取消傾斜 */
font-style: normal;
<style>
.font-style em {
font-style: normal;
}
.font-style div {
font-style: italic;
}
</style>
<div class="font-style">
<em>
放假啦
</em>
<div class="one">
聽說要加班
</div>
</div>

2. 文本屬性

color:顏色

color: red;
color: #ff0000;
color: rgb(255, 0, 0);

RGB、十六進制、預定義色,鼠標懸停在 vscode 的顏色上, 會出現顏色選擇器, 可以手動調整顏色.十六進制形式表示顏色, 如果兩兩相同, 就可以用一個來表示.#ff00ff => #f0f

<style>
.color {
color: red;
/* color: rgb(255, 0, 0); */
/* color: #ff0000; */
}
</style>
<div class="color">這是一段話</div>

text-align:水平對齊

控制文字水平方向的對齊.不光能控制文本對齊, 也能控制圖片等元素居中或者靠右

<style>
.text-align .one {
text-align: left;
}
.text-align .two {
text-align: right;
}
.text-align .three {
text-align: center;
}
</style>
<div class="text-align">
<div class="one">左對齊</div>
<div class="two">右對齊</div>
<div class="three">居中對齊</div>
</div>

text-decoration:下劃線、刪除線

text-decoration: [值];

underline 下劃線. [常用]
none 啥都沒有. 可以給 a 標簽去掉下劃線.
overline 上劃線. [不常用]
line-through 刪除線 [不常用]

<style>
.text-decorate .one {
text-decoration: none;
}
.text-decorate .two {
text-decoration: underline;
}
.text-decorate .three {
text-decoration: overline;
}
.text-decorate .four {
text-decoration: line-through;
}
</style>
<div class="text-decorate">
<div class="one">啥都沒有</div>
<div class="two">下劃線</div>
<div class="three">上劃線</div>
<div class="four">刪除線</div>
</div>

text-indent:首行縮進

text-indent: [值];

單位可以使用 px 或者 em.
使用 em 作為單位更好. 1 個 em 就是當前元素的文字大小.
縮進可以是負的, 表示往左縮進. (會導致文字就冒出去了)

<style>
.text-indent .one {
text-indent: 2em;
}
.text-indent .two {
text-indent: -2em;
}
</style>
<div class="text-indent">
<div class="one">正常縮進</div>
<div class="two">反向縮進</div>
</div>

line-height:行高

3. 背景屬性

background-color:背景顏色

background-image:背景圖片

background-repeat:平鋪方式

background-position:背景位置

background-size:背景尺寸(contain/cover)

六、圓角與邊框

?border-radius:圓角矩形、圓形

復合寫法:四個角分別設置

border` 簡寫:寬度、樣式、顏色

七、元素顯示模式

類型?? ?特點描述?? ?
塊級元素?? ?獨占一行,可設寬高,如 div、p、h1h6?? ?
行內元素?? ?不獨占一行,不能設寬高,如 span、a?? ?
行內塊元素?? ?可設寬高且不獨占一行,如 img、input?? ?

- `display` 屬性可改變顯示模式:
- `block` / `inline` / `inline-block`

八、盒模型

?組成:`content + padding + border + margin`
- `box-sizing: border-box`:防止 padding/border 撐大盒子
- `margin: 0 auto`:塊級元素水平居中
- 清除默認樣式:`* { margin: 0; padding: 0; }`

九、彈性布局(Flex)

1. 基本概念
- 父元素設為 `display: flex` → 成為 flex 容器
- 子元素 → flex 項目
- 主軸與交叉軸方向

2. 常用屬性

屬性名?? ?作用描述?? ?
`justify-content`?? ?主軸對齊方式(如居中、兩端對齊)?? ?
`align-items`?? ?交叉軸對齊方式(如垂直居中)?? ?
`flex-direction`?? ?設置主軸方向(橫向/縱向)?? ?

十、Chrome 調試工具

- 打開方式:F12 或右鍵“檢查”
- Elements 面板:
- 查看結構
- 實時修改樣式
- 檢查錯誤(黃色感嘆號)

如需進一步細化某一部分(如 flex 布局實例、選擇器練習等),可繼續展開子模塊。

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

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

相關文章

智能農機無人駕駛作業套圈路徑規劃

國產輕量級桌面GIS軟件Snaplayers實踐&#xff1a;智能農機無人駕駛作業套圈路徑規劃1、選擇地塊角點坐標文件2、加載地塊到地圖中3、設置套圈作業路徑規劃參數4、生成套圈作業路徑5、查看套圈路徑6、查看套圈路徑8、完成本算法已經在國內外等農場已經使用多年。Snaplayers研發…

Java Collection集合框架:體系、核心與選型

目錄 一、集合框架的頂層設計&#xff1a;接口與層次 1. 兩大核心接口&#xff1a;Collection 和 Map 2. Collection接口的三大派系 二、核心實現類詳解 1. List家族實現 2. Set家族實現 3. Queue/Deque家族實現 PriorityQueue&#xff1a; ArrayDeque&#xff1a; 三…

“計算機基礎、軟件工程、設計模式、數據結構算法、操作系統、數據庫、網絡、法律法規”是計算機領域從基礎理論到工程實踐

“計算機基礎、軟件工程、設計模式、數據結構算法、操作系統、數據庫、網絡、法律法規”是計算機領域從基礎理論到工程實踐、再到合規規范的核心知識體系&#xff0c;覆蓋了軟件開發、系統架構、技術合規等關鍵維度。以下將對每個領域進行系統拆解&#xff0c;包括核心內容、學…

利用Rancher平臺搭建Swarm集群

一、Rancher概述1、rancher平臺Rancher是一個開源的企業級容器管理平臺&#xff0c;它可以幫助企業在生產環境中輕松快捷地部署和管理容器&#xff0c;也可以輕松管理各種環境的Kubernetes&#xff0c;并提供對DevOps的支持。Rancher目前已經具備全棧化一鍵部署應用、各種編排調…

Debezium日常分享系列之:MongoDB 新文檔狀態提取

Debezium日常分享系列之&#xff1a;MongoDB 新文檔狀態提取變更事件結構行為配置數組編碼嵌套結構展平MongoDB $unset 處理確定原始操作添加元數據字段選擇性應用轉換的選項配置選項已知限制Debezium MongoDB 連接器會發出數據變更消息&#xff0c;以表示 MongoDB 集合中發生的…

OpenCV:圖像透視變換

文章目錄一、透視變換是什么&#xff1f;二、透視變換的核心原理1. 關鍵概念&#xff1a;透視變換矩陣2. 核心條件&#xff1a;4對對應點三、OpenCV實現透視變換的關鍵步驟步驟1&#xff1a;讀取并預處理圖像步驟2&#xff1a;尋找目標物體的4個頂點步驟3&#xff1a;計算透視變…

commons-csv

maven依賴<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-csv --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-csv</artifactId><version>1.14.1</version></dependency…

LeetCode 1446.連續字符

給你一個字符串 s &#xff0c;字符串的「能量」定義為&#xff1a;只包含一種字符的最長非空子字符串的長度。 請你返回字符串 s 的 能量。 示例 1&#xff1a; 輸入&#xff1a;s “leetcode” 輸出&#xff1a;2 解釋&#xff1a;子字符串 “ee” 長度為 2 &#xff0c;只包…

CTFHub SSRF通關筆記9:302跳轉 Bypass 原理詳解與滲透實戰

目錄 一、SSRF與302跳轉 1、SSRF 2、302響應 3、SSRF與302結合 &#xff08;1&#xff09;SSRF源碼分析 &#xff08;2&#xff09;攻擊鏈條&#xff08;Flow of Exploit&#xff09; 二、滲透實戰 1、打開靶場 2、嘗試127.0.0.1訪問 3、file協議分析源碼 &#xff…

Windows-Use實戰:AI驅動的Windows自動化

Windows-Use實戰:AI驅動的Windows自動化 前言 項目介紹與準備工作 Windows-Use是什么? 系統要求 必需環境 步驟一:安裝Python和基礎環境 1.1 安裝Python 檢查Python版本 Python安裝步驟 1.2 創建項目目錄 步驟二:安裝Windows-Use 2.1 使用pip安裝(推薦) 步驟三:運行和基…

STM32-FreeRTOS操作系統-二值信號量與計數信號量

引言在嵌入式開發領域&#xff0c;任務同步與通信是系統穩定運行的核心。STM32配合FreeRTOS操作系統&#xff0c;為開發者提供了強大的工具支持。其中&#xff0c;二值信號量和計數信號量作為FreeRTOS的關鍵同步機制&#xff0c;分別用于任務間的簡單同步和資源計數控制。二值信…

MarTech營銷技術全景解析:概念、圖譜與最新實踐案例

一、引言&#xff1a;為什么企業越來越依賴MarTech&#xff1f;在數字化浪潮下&#xff0c;企業營銷環境正發生深刻變化&#xff1a;客戶觸點增加&#xff1a;從官網、社交媒體到短視頻、展會&#xff0c;信息渠道呈指數級增長。決策鏈條復雜&#xff1a;B2B客戶通常需要多輪調…

服務器 - 從一臺服務器切換至另一臺服務器(損失數十條訪客記錄)

服務器 - 從一臺服務器切換至另一臺服務器(損失數十條PV記錄為代價) 看著四年的服務器正式到期&#xff0c;沒什么轟轟烈烈的告別&#xff0c;就像目送老朋友轉身走遠&#xff0c;只默默記下&#xff1a;哦&#xff0c;原來它陪了我這么久啊。 前言 一臺陪伴了我4年的服務器昨…

《云原生邊緣與AI訓練場景:2類高頻隱蔽Bug的深度排查與架構修復》

在云原生技術向邊緣計算與AI訓練場景滲透的過程中&#xff0c;基礎設施層的問題往往會被場景特性放大——邊緣環境的弱網絡、異構硬件&#xff0c;AI訓練的高資源依賴、分布式協作&#xff0c;都可能讓原本隱藏的Bug以“業務故障”的形式爆發。這些問題大多不具備直觀的報錯信息…

【51單片機】【protues仿真】基于51單片機數控直流穩壓電源系統

目錄 一、主要功能 二、使用步驟 三、硬件資源 四、軟件設計 五、實驗現象 一、主要功能 1、數碼管顯示輸出電壓值 2、滑動電阻調節輸出電壓 3、電壓輸出范圍0-15V&#xff0c;步進值1 二、使用步驟 基于51單片機的數控直流穩壓電源是一種通過數字控制實現電壓調節的智…

xtuoj Rectangle

題目思路將矩形間的相交情況通過投影轉化為x、y兩個方向下的線段是否相交&#xff0c;即前面的題目&#xff0c;判斷兩個區間是否相交&#xff0c;x投影的每個區間的左端點是每個矩形x的min&#xff0c;右端點是每個矩形的x的max&#xff0c;y投影情況同理&#xff0c;只要x軸的…

【深度學習踩坑實錄】從 Checkpoint 報錯到 TrainingArguments 精通:QNLI 任務微調全流程復盤

作為一名深度學習初學者&#xff0c;最近在基于 Hugging Face Transformers 微調 BERT 模型做 QNLI 任務時&#xff0c;被Checkpoint 保存和TrainingArguments 配置這兩個知識點卡了整整兩天。從磁盤爆滿、權重文件加載報錯&#xff0c;到不知道如何控制 Checkpoint 數量&#…

Java面試小冊(3)

21【Q】: 什么是Java的SPI機制&#xff1f;【A】&#xff1a;SPI 是一種插件機制&#xff0c;用于在運行時動態加載服務的實現。它通過定義接口&#xff08;服務接口&#xff09;并提供一種可擴展的方式來讓服務的提供著&#xff08;實現類&#xff09;在運行時注入&#xff0c…

P1150 Peter 的煙

記錄20#include <bits/stdc.h> using namespace std; int main(){int n,k;cin>>n>>k;int cnt0;while(n>k){cntk;nn-k1;}cntn;cout<<cnt;return 0; }突破口每吸完一根煙就把煙蒂保存起來&#xff0c;k&#xff08;k>1&#xff09;個煙蒂可以換一個…

Cursor和Hbuilder用5分鐘開發微信小程序

分享一個5分鐘搞定微信小程序開發的技能&#xff0c;需要用到兩個工具&#xff1a;Cursor和Hbuilder。 第1步、下載HBuilder。Hbuilder可以實現一套代碼直接生成安卓、蘋果、鴻蒙各個平臺APP。訪問Hbuilder的官方網站&#xff0c;HBuilderX-高效極客技巧&#xff0c;選擇適合…