【CSS學習筆記3】css特性

1css三大特性

1.1層疊性:就近原則,最新定義的樣式

1.2繼承性:子標簽集成父標簽的樣式,如文本和字號

行高的繼承:不加單位指的是當前文字大小的倍數

body {font: 12px/1.5  'Microsoft YaHei';color: #be1313;}
div {/* 子元素繼承父元素body的行高1.5 *//* 這個1.5是當前元素大小font-size的1.5倍 當前行高為21px*/font-size:14px;
}
p {/* 這個1.5是當前元素大小font-size的1.5倍 當前行高為24px */font-size: 16px;
}

優先級:選擇器相同-》層疊性,選擇器不同根據選擇器權重

權重分為四組 權重疊加時不會有組間進位


依次遞增

div {

color:pink !important;

}

最后會顯示這個樣式

注意:

繼承的權重是0 對于繼承的標簽我們用元素選擇器修改樣式 這個權重是1 最后會顯示元素選擇器的樣式

不管父元素的權重多高,子元素得到的權重都是0,除非單獨選定該元素設置樣式

這里p是繼承的但是繼承的權重是0 p的權重是1 1>0所以最后p的顏色是綠色

#father {color:#be1313}
p {color:aqua ;
}
<div id="father"><p>你本身就很好</p>
</div>

另外鏈接a在瀏覽器中默認是藍色下劃線央視, 想要修改必須單獨指定

如:

a{

color:green;

}

在父選擇器中設置無效

1.3權重疊加-復合選擇器

復合選擇器有權重疊加

ul {color:aliceblue}
ul li {/* 這里ul li兩個選擇的權重疊加了為0002 */color: aqua;
}
.nav li {/* 這里.nav li兩個選擇的權重疊加了為0011 */color: #be1313;
}
.nav li {/* 這里.nav li兩個選擇的權重疊加了為0011 */color: #be1313;} 
pink {/* 這里pink的權重為1 */color: #df5ccdf6;
}.nav .pink {/* 這里.nav .pink兩個選擇的權重疊加了為0020 */color: #df5ccdf6; 
}
<ul class="nav"><li class="pink">大豬頭</li><li>小豬頭</li><li>豬頭</li>
</ul>

組間不會有進位

0,0,0,10

四組為一個單位 不會有進位

練習題

想要給第一個小li單獨添加顏色 可以利用權重疊加 給第一個li設置一個類 這樣兩個類的權重疊加是0020超過了類和元素的疊加0011

2.盒子模型

網頁布局的三大核心:盒子模型、浮動和定位

網頁布局的三個過程:用box 裝好網頁元素,利用css設置好盒子樣式擺到相應位置(核心),在盒子里裝內容

2.1盒子模型 box

css盒子用來封裝周圍的html元素 包括邊框、外邊距 內邊距和實際內容

2.2border

1)

border-width:粗細 px單位

border-style: 記住三個 實線 、虛線、點線,solid、dashed、dotted

none : 無邊框。與任何指定的border-width值無關 hidden : 隱藏邊框。IE不支持 dotted : 在MAC平臺上IE4+與WINDOWS和UNIX平臺上IE5.5+為點線。否則為實線 dashed : 在MAC平臺上IE4+與WINDOWS和UNIX平臺上IE5.5+為虛線。否則為實線 solid : 實線邊框 double : 雙線邊框。兩條單線與其間隔的和等于指定的border-width值 groove : 根據border-color的值畫3D凹槽 ridge : 根據border-color的值畫菱形邊框 inset : 根據border-color的值畫3D凹邊 outset : 根據border-color的值畫3D凸邊

border-color:

簡寫:border:1px solid red;//沒有順序要求

邊框四邊可以分別設置

border-top:1px solid red;

border-bottom:5px dashed red;

2)實例:200*200的盒子上邊框為紅色其余為藍色

div {width:200px;height:200px;border:5px solid blue;border-top:5px solid red;  /*層疊性、反過來不行*/}

3)css實現細邊框表格

使用css 來優化表格樣式

設置表格細邊框的關鍵

?border-collapse: collapse; 繪制表格邊框的方式控制相鄰單元格的邊框

4)邊框影響表格尺寸

邊框會為影響實際盒子的大小比如一個盒子外面加上10pc的邊框 盒子的尺寸就會變大

如果想要最終的盒子不變大 需要改變盒子原本的尺寸使得盒子+邊框滿足最終的要求

5)內邊距padding

內容與盒子的邊距

padding:10px;

都要記住

padding也會影響盒子的大小 跟邊框一樣 可以修改width和height來調整,

但如果不特殊指定width和height的大小就不會撐大盒子 width=100%也算指定

父親設置尺寸 孩子沒有設置尺寸 給孩子加padding 不會撐大盒子

使用padding來靈活設置導航欄

.nav {height: 41px;border-top: 3px solid #ff8500;border-bottom: 1px solid #edeef0;background-color: #fcfcfc;line-height: 41px;}.nav a {/* a屬于行內元素 此時必須要轉換 行內塊元素 */display: inline-block;height: 41px;padding: 0 20px;//只要左右邊距font-size: 12px;color: #4c4c4c;text-decoration: none;//不要下劃線}.nav a:hover {//單獨設置鏈接的顏色background-color: #eee;color: #ff8500;}

6)外邊距margin

控制兩個盒子之間的距離

可以讓塊級盒子實現水平居中:盒子必須指定寬度 盒子的左右邊距都設置成auto

.header{ width:960px; margin:0 auto;}

margin:0 auto;

上、右、下、左

如果想讓行內元素或者行內塊元素水平居中 需要給其父元素添加text-align:center既可

對應嵌套關系(父子關系)的塊元素,父子同時有外邊距的情況下,父元素會他先較大的外邊距值 而子元素不會有外邊距 只對標準流是這樣 浮動的不會有影響

三種解決方法:

給父元素加上邊框border:1px sloid transparent、內邊距padding:1px、添加overflow:hidden

7)清除內外邊距

這是css設置格式的第一行

* {

padding:0;

margin:0;

}

注意:行內內元素為了照顧兼容性,盡量值設置作于內外邊距不要上下的 但轉化為塊級和行內元素就可以

3.彈性盒子flexbox

父盒子控制子盒子如何排列

彈性盒子核心:
1.父控子 (親父子)
父盒子控制子盒子如何排列布局
父盒子稱為容器,子盒子稱為項目
2.主軸和交叉軸(側軸)
主軸默認水平方向,交叉軸默認垂直方向,可以更改

父容器屬性

容器(父盒子)設置display:flex;可以讓子盒子按照主軸方式排列。主軸默認水平
如果子元素有大小,則按照給定大小來顯示。
如果子元素沒有大小,則拉伸充滿父容器
若子元素總寬度超過容器寬度,默認會壓縮子元素。


<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>彈性布局-容器flex</title><style>* {margin: 0;padding: 0;}.box {/* 添加彈性布局 */display: flex;width: 500px;height: 100px;border: 1px solid red;}.box .item {width: 100px;/* height: 100px; */background-color: pink;border-radius: 10px;}</style>
</head><body><div class="box"><div class="item">1</div><div class="item">2</div><div class="item">3</div><div class="item">4</div></div>
</body></html>

justify-content定義主軸上的對齊方式


<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>彈性布局-容器flex</title><style>* {margin: 0;padding: 0;}.box {/* 添加彈性布局 */display: flex;/* 主軸的對齊方式 *//* justify-content: flex-start; *//* justify-content: flex-end; *//* justify-content: center; *//* 兩端對齊 *//* justify-content: space-between; *//* justify-content: space-around; *//* 平均分配 */justify-content: space-evenly;width: 500px;height: 100px;border: 1px solid red;margin: 20px 0 0 10px;}.box .item {width: 100px;height: 100px;background-color: pink;border-radius: 10px;}</style>
</head><body><div class="box"><div class="item">1</div><div class="item">2</div><div class="item">3</div><div class="item">4</div></div>
</body></html>

開發中大部分情況下子元素大小是設定的

align-items定義交叉軸上的對齊方式 垂直居中


<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>彈性布局-容器flex</title><style>* {margin: 0;padding: 0;}.box {/* 添加彈性布局 */display: flex;/* 交叉軸的對齊方式 *//* align-items: flex-start; *//* align-items: flex-end; */align-items: center;/* align-items: stretch; *//* 主軸的對齊方式 */justify-content: space-between;width: 500px;height: 300px;border: 1px solid red;margin: 20px 0 0 10px;}.box .item {width: 100px;height: 100px;background-color: pink;border-radius: 10px;}</style>
</head><body><div class="box"><div class="item">1</div><div class="item">2</div><div class="item">3</div><div class="item">4</div></div>
</body></html>

flex-direcition改變主軸的方向,這種情況下主軸是豎向的 交叉軸是橫向的

flex-wrap 自動換行

之前的盒子是設置的浮動


<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>彈性布局-強制換行</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}.box {display: flex;/* 強制換行 */flex-wrap: wrap;/* 主軸對齊 */justify-content: space-between;width: 830px;border: 1px solid blue;margin: 30px auto;}.box .item {width: 200px;height: 300px;background-color: pink;border-radius: 10px;margin-bottom: 10px;}</style>
</head><body><div class="box"><div class="item">1</div><div class="item">2</div><div class="item">3</div><div class="item">4</div><div class="item">5</div><div class="item">6</div><div class="item">7</div><div class="item">8</div><div class="item">9</div><div class="item">10</div><div class="item">11</div><div class="item">12</div><div class="item">13</div></div>
</body></html>

algin-content多行交叉軸對齊


<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>彈性布局-多行交叉軸對齊</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}.box {display: flex;/* 強制換行 */flex-wrap: wrap;/* 主軸對齊 */justify-content: space-between;/* 多行交叉軸對齊 *//* align-content: start; *//* align-content: end; *//* align-content: center; *//* align-content: space-between; *//* align-content: space-around; */align-content: space-evenly;width: 830px;height: 500px;border: 1px solid red;margin: 30px auto;}.box .item {width: 200px;height: 150px;background-color: pink;border-radius: 10px;}</style>
</head><body><div class="box"><div class="item">1</div><div class="item">2</div><div class="item">3</div><div class="item">4</div><div class="item">5</div><div class="item">6</div><div class="item">7</div><div class="item">8</div></div>
</body></html>

子盒子屬性

控制自身的尺寸、順序或對齊方式

實現彈性布局 比如瀏覽器放大縮小 可以伸縮盒子的大小

語法:flex:1;除了空隙之外的剩余空間占一份,并且可以伸縮盒子的大小 數字表示剩余空間所占份數 每個小盒子占父盒子的幾份 父盒子的份數取決于子盒子flex的份數之和

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>flex項目伸縮尺寸</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}.box {display: flex;gap: 10px;/* justify-content: space-between; */width: 80%;border: 1px solid blue;margin: 0 auto;}.box .item {/* flex要寫到 小盒子身上  優先級比 width 和 height高 *//* flex 1 表示占1份  表示每個小盒子占父盒子的幾份 */flex: 1;width: 80px;height: 100px;background-color: pink;/* margin-right: 10px; */}.box .item:nth-child(odd) {background-color: purple;}/* .box .item:nth-child(3) {flex: 2;} */</style>
</head><body><div class="box"><div class="item">1</div><div class="item">2</div><div class="item">3</div><div class="item">4</div></div>
</body></html>

gap間距:用于設置行與列之間的間隙 單行(盒子與盒子之間

語法:

gap:20px;行和列之間保持20像素間隙

gap:20 30px;行間距20 列間距30

注意:gap寫道父元素中控制子元素的間距


<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>淘寶多行彈性布局寫法</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}.w {/* 版心 */width: 80%;margin: 20px auto;}.box {display: flex;/* 自動換行 */flex-wrap: wrap;border: 1px solid red;/* 使得內部的盒子完全充滿版心沒有間隙 */margin-left: -8px;margin-right: -8px;}.box .item {/* width: 80px; *//* flex: 1;  每行 6個盒子100/6=16.666666*/flex: 0 0 16.666666%;height: 120px;/* background-color: pink; */margin-bottom: 16px;/* margin-right: 16px; *//* 每兩個盒子之間間隔16px,如果用marginright來做最右邊的盒子會掉下去 */padding: 0 8px;}.item .content {height: 100%;width: 100%;background-color: pink;}.footer {width: 80%;height: 120px;background-color: black;margin: 0 auto;}</style>
</head><body><div class="w"><!-- 在版心w中放盒子box 保證盒子在一定區域內并且可以縮放 --><div class="box"><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div><div class="item"><div class="content"></div></div></div></div><div class="footer"></div>
</body></html>

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>淘寶多行彈性布局寫法</title><style>* {margin: 0;padding: 0;box-sizing: border-box;}.box {display: flex;flex-wrap: wrap;width: 80%;border: 1px solid red;margin: 0 auto;}.box .item {flex: 1;width: 80px;height: 120px;background-color: pink;/* min-width: 16.666666667%;max-width: 16.666666667%; *//* 每個元素包含間隙在內占1/6 */min-width: calc(16.6666667% - 16px);max-width: calc(16.6666667% - 16px);margin: 0 8px 16px;}.footer {width: 80%;height: 120px;background-color: black;margin: 0 auto;}</style>
</head><body><div class="box"><div class="item">1</div><div class="item">2</div><div class="item">3</div><div class="item">4</div><div class="item">5</div><div class="item">6</div><div class="item">7</div><div class="item">8</div><div class="item">9</div><div class="item">10</div><div class="item">11</div><div class="item">12</div><div class="item">13</div><div class="item">14</div><div class="item">15</div><div class="item">16</div></div><div class="footer"></div>
</body></html>

多行彈性布局之后會用網格布局gird實現

3綜合案例

產品模塊

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

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

相關文章

[C語言]常見排序算法①

1.排序的概念及常見的排序算法排序在咱們日常生活中十分的常見&#xff0c;就好比是網上購物的時候通常能夠選擇按照什么排序&#xff0c;比如價格、評論數量、銷量等。那么接下來咱們就來了解一些關于排序的概念。排序&#xff1a;所謂排序&#xff0c;就是使一串記錄&#xf…

文獻閱讀筆記:RS電子戰測試與測量技術文檔

信息來源&#xff1a;羅德與施瓦茨&#xff08;Rohde & Schwarz&#xff09;公司關于電子戰&#xff08;Electronic Warfare, EW&#xff09;測試與測量解決方案專業技術文檔。 該文檔由臺灣地區應用工程師Mike Wu撰寫&#xff0c;核心圍繞電子戰基礎、雷達系統、實戰應用及…

別再糾結 Postman 和 Apifox 了!這款開源神器讓 API 測試更簡單

別再糾結 Postman 和 Apifox 了&#xff01;這款開源神器讓 API 測試更簡單&#x1f525; 作為一名開發者&#xff0c;你是否還在為選擇 API 測試工具而糾結&#xff1f;Postman 太重、Apifox 要聯網、付費功能限制多&#xff1f;今天給大家推薦一款完全免費的開源替代方案 ——…

微調神器LLaMA-Factory官方保姆級教程來了,從環境搭建到模型訓練評估全覆蓋

1. 項目背景 開源大模型如LLaMA&#xff0c;Qwen&#xff0c;Baichuan等主要都是使用通用數據進行訓練而來&#xff0c;其對于不同下游的使用場景和垂直領域的效果有待進一步提升&#xff0c;衍生出了微調訓練相關的需求&#xff0c;包含預訓練&#xff08;pt&#xff09;&…

創建其他服務器賬號

? 在 /home74 下創建新用戶的完整步驟1. 創建用戶并指定 home 目錄和 shellsudo useradd -m -d /home74/USERNAME -s /bin/bash USERNAME-m&#xff1a;自動創建目錄并復制 /etc/skel 默認配置文件&#xff08;.bashrc 等&#xff09;。-d&#xff1a;指定用戶 home 路徑&…

【WebGIS】Vue3使用 VueLeaflet + 天地圖 搭建地圖可視化平臺(基礎用法)

初始化 創建項目 nodejs 18.0.6npm 9.5.1 引入地圖服務 VueLeaflet GitHub - vue-leaflet/vue-leaflet&#xff1a; vue-leaflet 與 vue3 兼容 Vue Leaflet (vue2-leaflet) package.josn安裝版本 直接添加四個依賴 {// ..."scripts": {// ...},"depen…

OpenCV 開發 -- 圖像閾值處理

文章目錄[toc]1 基本概念2 簡單閾值處理cv2.threshold3 自適應閾值處理cv2.adaptiveThreshold更多精彩內容&#x1f449;內容導航 &#x1f448;&#x1f449;OpenCV開發 &#x1f448;1 基本概念 圖像閾值處理&#xff08;Thresholding&#xff09;是圖像處理中的一種基本技術…

單串口服務器-工業級串口聯網解決方案

在工業自動化、智能電網、環境監測等領域&#xff0c;傳統串口設備&#xff08;如PLC、傳感器、儀表等&#xff09;的網絡化升級需求日益增長。博為智能單串口服務器憑借高性能硬件架構、多協議支持和工業級可靠性&#xff0c;為RS485設備提供穩定、高效的TCP/IP網絡接入能力&a…

第 9 篇:深入淺出學 Java 語言(JDK8 版)—— 吃透泛型機制,筑牢 Java 類型安全防線

簡介&#xff1a;聚焦 Java 泛型這一“類型安全保障”核心技術&#xff0c;從泛型解決的核心痛點&#xff08;非泛型代碼的運行時類型錯誤、強制類型轉換冗余&#xff09;切入&#xff0c;詳解泛型的本質&#xff08;參數化類型&#xff09;、核心用法&#xff08;泛型類/接口/…

MySQL和Redis的數據一致性問題與業界常見解法

一、為什么會出現數據不一致&#xff1f; 根本原因在于&#xff1a;這是一個涉及兩個獨立存儲系統的數據更新操作&#xff0c;它無法被包裝成一個原子操作&#xff08;分布式事務&#xff09;。更新數據庫和更新緩存是兩個獨立的步驟&#xff0c;無論在代碼中如何排列這兩個步驟…

coolshell文章閱讀摘抄

coolshell文章閱讀摘抄打好基礎學好英語限制你的不是其它人&#xff0c;也不是環境&#xff0c;而是自己Java打好基礎 程序語言&#xff1a;語言的原理&#xff0c;類庫的實現&#xff0c;編程技術&#xff08;并發、異步等&#xff09;&#xff0c;編程范式&#xff0c;設計模…

數據庫造神計劃第六天---增刪改查(CRUD)(2)

&#x1f525;個人主頁&#xff1a;尋星探路 &#x1f3ac;作者簡介&#xff1a;Java研發方向學習者 &#x1f4d6;個人專欄&#xff1a;《從青銅到王者&#xff0c;就差這講數據結構&#xff01;&#xff01;&#xff01;》、 《JAVA&#xff08;SE&#xff09;----如此簡單&a…

使用Rust實現服務配置/注冊中心

Conreg 使用 Rust 實現的配置與注冊中心&#xff0c;參考了 Nacos 的設計&#xff0c;簡單易用&#xff0c;使用 Raft 保證集群節點數據一致性。 支持的平臺&#xff1a; UbuntuCentOS其他常見的 Linux 發行版&#xff08;我們使用 musl 編譯&#xff0c;理論上支持所有主流…

三色標記算法

在 JVM 并發垃圾收集&#xff08;GC&#xff09;中&#xff0c;三色標記算法是實現 “GC 線程與用戶線程并行執行” 的關鍵技術&#xff0c;它解決了并發場景下 “如何準確標記存活對象” 的核心問題&#xff0c;是 CMS、G1 等現代收集器的底層基礎。一、三色標記的核心&#x…

OpenStack 管理與基礎操作學習筆記(一):角色、用戶及項目管理實踐

OpenStack實驗 OpenStack命令 admin-openrc.sh 進入管理員視圖查看當前 OpenStack 中的項目列表&#xff0c;驗證是否已經登錄成功切換用戶 修改文件切換用戶上傳文件切換用戶OpenStack 認證管理 實驗介紹 通過 OpenStack Dashboard 和 OpenStack CLI 兩種方式創建角色、用戶、…

直接查找試卷且可以免費下載

有什么網站可以直接查找試卷且可以免費下載&#xff1f; SearXNG開源元搜索引擎 This website shows the SearXNG public instances searx一個可定制的搜索引擎 分享一個基于Blockstack的DApp-searx,一個可定制的搜索引擎。 1- 鏈接 官網地址&#xff1a;https://searx.worl…

【獨立版】智創云享知識付費小程序 v5.0.23+小程序 搭建教程

介紹智創云享知識付費小程序v5.0.23 含PC、小程序、H5 、前端&#xff0c;系統獨立版已修復已知bug問題。框架是一款基于ThinkPHP框架開發的虛擬資源知識付費小程序&#xff0c;為廣大創業者、自媒體及培訓機構提供知識付費、內容付費、資源變現等領域的行業解決方案&#xff1…

布爾運算-區間dp

面試題 08.14. 布爾運算 - 力扣&#xff08;LeetCode&#xff09; Solution 這題的思路比較直接&#xff0c;就是枚舉最后一個進行計算的運算符&#xff0c;但是在實現過程中需要注意&#xff0c;定義范式f(l,r)表示l到r范圍&#xff0c;l和r必須為數字&#xff0c;l1,r-1為運…

MyBatis-Plus 擴展全局方法

1.文件內容package com.ruoyi.business.mybatisplus.base;import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.extension.service.IService;import java.util.List;/*** 擴展的 Service 接口* 所有自定義 Service 接口都需要繼承此接口…

13.Linux OpenSSH 服務管理

文章目錄Linux OpenSSH 服務管理環境準備OpenSSH 服務介紹SSH 介紹SSH 建立連接的過程加密類型雙向加密過程使用 ssh 訪問遠端CLIssh 工具演示ssh工具配置文件配置 ssh 密鑰認證ssh 故障模擬故障模擬排故故障自定義 SSH 服務配置文件禁止 root 登錄禁止密碼登錄只允許特定用戶登…