複習css

来源:https://www.cnblogs.com/yx-study/archive/2023/10/21/17778973.html
-Advertisement-
Play Games

複習css 樣式 內聯樣式,行內樣式,外部樣式優先順序 離HTML元素越近,優先順序越高 內聯樣式離元素近:行內樣式>內聯樣式>外部樣式 外部樣式離元素近:行內樣式>外部樣式>內斂樣式 本質:瀏覽器從上到下解析過程中,後出現的樣式會覆蓋較早出現的樣式 選擇器 基本選擇器 id > 類 > 標簽 本質:定 ...


複習css

樣式

內聯樣式,行內樣式,外部樣式優先順序

離HTML元素越近,優先順序越高

內聯樣式離元素近:行內樣式>內聯樣式>外部樣式

外部樣式離元素近:行內樣式>外部樣式>內斂樣式

本質:瀏覽器從上到下解析過程中,後出現的樣式會覆蓋較早出現的樣式

選擇器

基本選擇器

id > 類 > 標簽

本質:定位越精準,優先順序越高

層次選擇器

子孫選擇器:body p{} 選擇body下所有p元素,即所有p後代。也叫後代選擇器。

子選擇器:body > p{} 選擇body下第一p元素,即所有p兒子

相鄰弟弟選擇器:.className + p{} 選擇與某個類相鄰且靠後的第一個p元素,即第一個p弟弟。想象成i++,就是每次加一個。如果第一個弟弟不是p,那麼無反應。

弟弟選擇器:.className ~ p{} 選擇與某個類同一層且靠後的所有p元素,即所有p弟弟。想象成表示範圍的~。不關心相不相鄰,只要在後面即可。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>測試層次選擇器</title>
    <style>
        .active + p{
            background: red;
        }
        .active ~ p{
            background: red;
        }
    </style>
</head>
<body>
<p class="active">0</p>
<a href="">我是a標簽</a>
<p>1</p>
<p>2</p>
<p>3</p>
</body>
</html>

結構偽類選擇器

ul li:first-child{}

ul li:last-child{}

p:nth-child(1){} 通過p找到父元素,然後選擇父元素的第一個兒子,這個兒子必須是p,否則無反應

p:nth-of-type(2){} 通過p找到父元素,然後選擇父元素的第二p個元素,這個p元素不一定位於第二的位置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>測試結構偽類選擇器</title>
    <style>
        p:nth-child(1) {
            background-color: blue;
        }

        p:nth-of-type(2) {
            background-color: red;
        }
    </style>
</head>
<body>
    <p>p1</p>
    <a href="">aaa</a>
    <p>p2</p>
    <p>p3</p>
    <p>p4</p>
    <div>
        <p>ddd</p>
    </div>
</body>
</html>

屬性選擇器

a[id]{} 選擇有id的a

a[id="idName"]{} 選擇有id為idName的a

a[class*="className"]{} 選擇有class包含className的a,為啥是包含?因為一個元素可以有多個類名。

a[href^="http"]{} 選擇href以http開頭的a

a[href$="com"]{} 選擇href以com結尾的a

行高

一行內容所占的高度。

包括元素上方的高度,元素自身的高度,元素下方的高度。

設置單行文字上下居中:line-height = height

盒子模型

margin的妙用

margin:0 auto;/*使盒子水平居中*/

盒子的寬高

盒子的寬度

margin-left + border-left + padding-left + 內容寬度 + padding-right + border-right + margin-right

盒子的高度

margin-top + border-top + padding-top + 內容高度 + padding-bottom + border-bottom + margin-bottom

display

常見的行內元素:span,img,a

行內元素不可以設置寬,高,除非用display:blockdisplay:inline-block

span設為inline-block後,可以調整寬高,但是在同一行顯示。

任何元素設為block後一定是獨占一行。

div設為inline後,設置的寬高也不起作用了

inline-block的妙用:導航條的列表

浮動float

把屏幕比喻成地面,浮動的元素就是氣球,是先從地面浮起來,再向左向右浮動。

原本的div是只能上下佈局,引入float就使得div可以左右佈局。

清除浮動clear是在浮動的基礎上修改(調整浮動的位置)的,不是說取消浮動。

clear:left;		/*左側不允許有浮動元素*/
clear:right;	/*右側不允許有浮動元素*/
clear:both;		/*兩側不允許有浮動元素*/
clear:none;		/*不清除浮動*/

clear可以讓浮動的元素,在浮動的基礎上,重新構成一個標準的文檔流(從上往下顯示)。

個人理解:清除浮動就是擠開我這一層的浮動元素,我獨占某一層,從屏幕(平面)上看就是從上到下排列元素。

浮動的後遺症:父級元素塌陷

解決辦法:

1.將父級div設置一個固定的高度,從而把浮動的元素也包進去。

2.父元素中新增一個div,設置clear:both

3.父元素屬性overflow:hidden/scroll/auto

4.父元素添加偽類:

#father:after{
    content:'';
    display:block;
    clear:both;
}

實例代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>測試父級塌陷</title>
    <style>
        .father {
            border: 1px solid red;
        }

        .layer1, .layer2, .layer3 {
            width: 500px;
            height: 100px;
            background-color: gold;
            border: 1px blue dashed;
            float: right;
            display: inline-block;
        }

        .father:after {
            content: '';
            display: block;
            clear: both;
        }
    </style>
</head>
<body>
<div class="father">
    <div class="layer1">
        我是layer1
    </div>
    <div class="layer2">
        我是layer2
    </div>
    <div class="layer3">
        我是layer3
    </div>
</div>
</body>
</html>

我的理解是:擠開某一層的浮動元素,浮動元素在它自己那一層浮動著,我獨占某一層,然後撐開了父元素。

display與float比較

display不能控制方向

float容易引起父級塌陷

定位

相對定位

position:relative

相對於元素自身原來的位置偏移,原來空間仍然保留。

實踐: https://www.bilibili.com/video/BV1YJ411a7dy/?p=20&share_source=copy_web&vd_source=da1006171a54936e673f791c1d09d070

絕對定位

positive:absolute

最近的父級設置了position:relative/absolute情況下,相對於父級元素定位。

最近的父級沒有設置position:relative/absolute情況下,相對html定位,元素會移動。

不保留偏移之前的空間。

固定定位

position:fixed

相對於瀏覽器視窗定位,不論如何滑動,永遠固定在某個角落。常用來設計導航條和回到頂部按鈕。


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

-Advertisement-
Play Games
更多相關文章
  • 1 概覽 DataX 是一個異構數據源離線同步工具,致力於實現包括關係型資料庫(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各種異構數據源之間穩定高效的數據同步功能。 1.1 設計理念 為瞭解決異構數據源同步問題,DataX將複雜的網狀的同步鏈路變成了星型數據鏈路 ...
  • 我們應對併發場景時一般會採用下麵方式去預估線程池的線程數量,但是在一些情況下,這個t是不好估算的,即便是估算出來了,在實際的線程環境上也需要進行驗證和微調。比如在本文所闡述分頁查詢的數據項組合場景中。 ...
  • 氣泡圖是一種多變數的統計圖表,可以看作是散點圖的變形。與散點圖不同的是,每一個氣泡都表示三個維度的數據,除了像散點圖一樣有X,Y軸,氣泡的大小可以表示另一個維度的數據。例如,x軸表示產品銷量,y軸表示產品利潤,氣泡大小代表產品市場份額百分比。 它可以幫助我們發現變數之間的模式、趨勢和異常值。通過氣泡 ...
  • 埠掃描是一種網路安全測試技術,該技術可用於確定對端主機中開放的服務,從而在滲透中實現信息搜集,其主要原理是通過發送一系列的網路請求來探測特定主機上開放的`TCP/IP`埠。具體來說,埠掃描程式將從指定的起始埠開始,向目標主機發送一條`TCP`或`UDP`消息(這取決於埠的協議類型)。如果目... ...
  • 對比yaml,toml,json三種格式的優缺點及三種格式的支持特性,以及講述了nginx.conf轉化成yaml,toml格式的樣式 ...
  • 支持.Net Core(2.0及以上)與.Net Framework(4.5及以上) 本文所述方案近期被江蘇省某億級數據量+高併發的政府"物聯網"項目採用,獲得圓滿成功!! 【目錄】 發送消息、獲取消息、使用消息 延時隊列 & 死信隊列 展望 RabbitMQ作為一款主流的消息隊列工具早已廣受歡迎。 ...
  • 1. on-my-zsh安裝 1.1. 使用curl方式安裝 1.1.1 官方鏡像源 sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" 1.1.2 國內Git ...
  • 先拋一下結論:在滿足實時性的條件下,不存在兩者完全保存一致的方案,只有最終一致性方案。根據網上的眾多解決方案,總結出 6 種,直接看目錄: 不好的方案 1、先寫 MySQL,再寫 Redis 如圖所示: 這是一副時序圖,描述請求的先後調用順序; 橘黃色的線是請求 A,黑色的線是請求 B; 橘黃色的文 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...