CSS高級技巧---精靈圖、字體圖標、布局技巧

1、精靈圖

1)原理

????????核心原理:將網頁中的一些小背景圖像整合到一張大圖中,這樣服務器只需要一次請求就可以了。

????????精靈技術的目的:為了有效減少服務器接收和發送請求的次數,提高頁面的加載速度。

2)使用

使用精靈圖核心:

1.精靈技術主要針對于背景圖片使用。就是把多個小背景圖片整合到一張大圖中。

2.這個大圖片也稱為sprites精靈圖或者雪碧圖

3.移動背景圖片位置,此時可以使用background-position

4.移動的距離就是這個目標圖片的x和y坐標。注意網頁中的左邊有所不同。

5.一般情況下往上往左移動,數值是負值。(一般情況下,都是負值)

6.使用精靈圖的時候需要精確測量,每個小背景圖片的大小和位置。

    <style>.box1 {width: 60px;height: 60px;margin: 100px auto;background: url(images/sprites.png) no-repeat;background-position: -182px 0;}.box2 {width: 27px;height: 25px;margin: 200px;background: url(images/sprites.png) no-repeat;background-position: -155px -106px;}</style>
<body><div class="box1"></div><div class="box2"></div>
</body>

2、字體圖標

????????字體圖標展示的是圖標,但是本質上是字體,具有字體的屬性。

字體圖標優點:

字體圖標下載

下載網站:

icomoon字庫 http://icomoon.io

阿里iconfont字庫 http://www.iconfont.cn/

阿里的字體圖標使用方法:

https://www.iconfont.cn/help/detail?spm=a313x.7781069.1998910419.d8cf4382a&helptype=code

3、CSS三角

由下面代碼可知,制作一個三角可以讓其他三個三角是透明的即可。

<style>.box1 {width: 0;height: 0;border-top: 10px solid skyblue;border-right: 10px solid rgb(92, 221, 116);border-bottom: 10px solid rgb(226, 235, 148);border-left: 10px solid rgb(245, 155, 210);}</style>
<body><div class="box1"></div>
</body>

    <style>.box2 {width: 0;height: 0;/* 為了照顧兼容性 */line-height: 0;font-size: 0;border: 10px solid transparent;border-top-color: skyblue;}</style>
<body><div class="box2"></div>
</body>

3、用戶界面樣式

1)更改用戶的鼠標樣式

語法:li { cursor: pointer;?}

2)表單輪廓線

????????給表單添加outline:0;或者outline:none;樣式之后,就可以去掉默認的藍色邊框。

3)防止表單域拖拽

語法:textarea{ resize: none; }

4、vertical-align屬性應用

1)對齊方式

????????vertical-align屬性應用場景:用于設置圖片或者表單(行內塊元素)和文字垂直對齊

但是它只針對于行內元素或者行內塊元素有效。

語法(默認和基線對齊):

vertical-align : baseline | top | middle | bottom

2)圖片底側空白縫隙問題

????????由于圖片默認和文字是基線對齊,所以圖片底側會出現空白縫隙。

解決方法:

1.給圖片添加vertical-align : ?top | middle | bottom

2.把圖片轉換為塊級元素display:block;

5、溢出的文字省略號顯示

1)單行文本溢出顯示省略號

必須滿足三步:

1.先強制一行內顯示文本

nowrap不換行,默認normal自動換行

white-space: nowrap;

2.超出部分隱藏

overflow: hidden;

3.文字用省略號替代超出的部分

     text-overflow: ellipsis;
2)多行文本溢出顯示省略號

????????多行文本溢出顯示省略號,有較大兼容性問題, 適合于webKit瀏覽器或移動端(移動端大部分是webkit內 核)。

overflow: hidden; 
text-overflow: ellipsis; 
/* 彈性伸縮盒子模型顯示 */ 
display: -webkit-box; 
/* 限制在一個塊元素顯示的文本的行數 */ 
-webkit-line-clamp: 2; 
/* 設置或檢索伸縮盒對象的子元素的排列方式 */ 
-webkit-box-orient: vertical;

6、常見布局技巧

1)margin負值的運用
    <style>ul li {float: left;list-style: none;width: 150px;height: 200px;border: 1px solid skyblue;margin-left: -1px;}ul li:hover {border: 1px solid red;}</style>
<body><ul><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li></ul>
</body>

由此,我們發現第四個盒子的右邊框被壓到了,此時只需要當前的盒子添加position: relative;因為相對定位會壓住其他標準流的盒子。

    <style>ul li {float: left;list-style: none;width: 150px;height: 200px;border: 1px solid skyblue;margin-left: -1px;}ul li:hover {position: relative;border: 1px solid red;}</style>

注意:如果盒子都有定位,則加z-index。

2)文字圍繞浮動元素

? ? ? ? ---運用浮動元素不會壓住文字的技巧

    <style>* {margin: 0;padding: 0;}.box {float: left;width: 250px;height: 100px;background-color: skyblue;margin: 0 auto;padding: 5px}.photo {float: left;width: 180px;height: 80px;margin-right: 5px;}.photo img {width: 100%;}</style>
<body><div class="box"><div class="photo"><img src="images/jianlai.jpg" alt=""></div><p>歲歲平,歲歲安,歲歲平安</p></div>
</body>

3)行內塊巧妙運用
<style>* {margin: 0;padding: 0;}.box {text-align: center;}.box a {display: inline-block;width: 36px;height: 36px;background-color: #f7f7f7;border: 1px solid #ccc;line-height: 36px;text-decoration: none;color: #333;font-size: 14px;}.box .prev,.box .next {width: 85px;}.box .now,.box .will {background-color: #fff;border: none;}.box input {height: 36px;width: 45px;border: 1px solid #ccc;outline: none}.box button {width: 60px;height: 36px;background-color: #f7f7f7;border: 1px solid #ccc;}</style>
<body><div class="box"><a href="#" class="prev">&lt;&lt;上一頁</a><a href="#" class="now">2</a><a href="#">3</a><a href="#">4</a><a href="#">5</a><a href="#">6</a><a href="#" class="will">...</a><a href="#" class="next">>>下一頁</a>到第<input type="text">頁<button>確定</button></div>
</body>

4)CSS三角強化
    <style>* {margin: 0;padding: 0;}.box1 {width: 0;height: 0;/* border-top: 20px solid transparent;border-right: 10px solid skyblue;border-bottom: 0px solid rgb(226, 235, 148);border-left: 0px solid rgb(245, 155, 210); */border-color: transparent skyblue transparent transparent;border-style: solid;border-width: 20px 10px 0 0;}</style>

<style>* {margin: 0;padding: 0;}.box1 {margin: 30px 0;}.price {width: 160px;height: 24px;line-height: 24px;border: 1px solid red;margin: 0 auto;color: #fff;font-weight: 700px;}.ms {position: relative;float: left;width: 90px;height: 100%;background-color: red;text-align: center;}.ms i {position: absolute;right: 0;top: 0;width: 0;height: 0;border-color: transparent #fff transparent transparent;border-style: solid;border-width: 24px 12px 0 0;}.ori {font-size: 12px;color: gray;text-decoration: line-through;}</style>
<body><div class="box1"></div><div class="price"><span class="ms">¥1650<i></i></span><span class="ori">¥5650</span></div>
</body>

7、CSS初始化

每個網頁都必須首先進行CSS初始化。

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

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

相關文章

【CMake】環境變量

目錄 一.環境變量簡單介紹 1.1.示例1——設置與清除 1.2.示例2——全局唯一性和全局可見性 1.3.示例3 1.4.示例4 1.5.示例5 一.環境變量簡單介紹 什么是環境變量&#xff1f; 我們看看官網是怎么說環境變量的&#xff1a;cmake-language(7) — CMake 4.1.1 Documentation…

Mysql雜志(十四)——Mysql邏輯架構

Mysql邏輯架構 這個圖相信大家并不陌生&#xff0c;這個就是mysql的邏輯結構圖下面是主包讓AI生成的翻譯后的邏輯結構圖&#xff1a; 我們先來看看各個部分的作用是什么 第一層&#xff1a;客戶端連接層 (Client Layer) 這一層負責處理所有客戶端連接到服務器的請求。責任就…

Git 版本回退與撤銷修改

作為版本控制管理器&#xff0c;Git應當具備版本回退等一系列功能——它的應用場景也很常見&#xff0c;當你在工作區開發時&#xff0c;忽然發現&#xff1a;怎么我這版本寫的代碼還不如上一版本好&#xff1f;這時&#xff0c;版本回退功能就派上用場了。一.版本回退1.概覽首…

學習日記-JS+DOM-day54-9.12

1.javascript基本說明知識點核心內容重點JavaScript基礎控制HTML內容與屬性&#xff0c;實現動態行為&#xff08;如開燈/關燈效果&#xff09;src屬性路徑修正&#xff08;./與../的區別&#xff09;前端三要素HTML&#xff08;內容&#xff09;、CSS&#xff08;樣式&#xf…

使用tree命令導出文件夾/文件的目錄樹( Windows 和 macOS)

你可以在終端&#xff08;命令提示符&#xff09;中使用 tree 命令來清晰直觀地查看和導出文件夾的目錄結構。下面我會詳細告訴你如何在 Windows 和 macOS 上使用它。 &#x1f5a5;? tree 命令基本用法 tree 命令的核心作用是以樹狀圖的形式展示指定路徑下的目錄和文件結構。…

GrapeCity Documents V8.0 Update2 重磅發布:性能飛躍、AI 賦能與文檔處理全流程升級

作為葡萄城旗下服務端文檔組件庫&#xff0c;GrapeCity Documents&#xff08;簡稱"GcDocs"&#xff09;憑借跨平臺、高兼容的優勢&#xff0c;已成為 眾多開發者構建文檔生成、編輯、轉換與管理系統的首選。 近日&#xff0c;GcDocs 迎來 V8.0 Update2 版本更新&am…

水質在線監測系統御控物聯網解決方案

一、行業背景與需求痛點水質安全是飲用水供應、工業生產、生態保護的核心要素。隨著《水污染防治行動計劃》的深入實施&#xff0c;傳統水質監測方式面臨三大挑戰&#xff1a;時效性不足&#xff1a;人工采樣-實驗室分析周期長達24-72小時&#xff0c;難以實時捕捉污染事件&…

【完整源碼+數據集+部署教程】倉庫物品分類檢測圖像分割系統源碼和數據集:改進yolo11-convnextv2

背景意義 研究背景與意義 隨著現代物流和倉儲管理的快速發展&#xff0c;物品分類與檢測技術在提高倉庫運營效率、降低人工成本方面發揮著越來越重要的作用。傳統的物品管理方式往往依賴人工識別和分類&#xff0c;效率低下且容易出錯。為了解決這一問題&#xff0c;基于計算機…

瀏覽器穩定性提升之路:線上崩潰率優化中的 Return 與 CHECK 之爭

一、前言在大型 C 工程&#xff08;例如 Chrome 瀏覽器內核&#xff09;中&#xff0c;開發者經常會遇到這樣的選擇&#xff1a; 到底應該在關鍵點使用 CHECK 直接崩潰&#xff0c;還是使用 return、LOG 記錄錯誤然后繼續執行&#xff1f;這看似只是一個代碼風格問題&#xff0…

【數據結構與算法Trip第3站】雙指針

我們來詳細講解一下算法中非常常用且重要的技巧——雙指針法。 這是一個概念清晰但應用極其廣泛的技術&#xff0c;掌握它能幫助你高效解決許多問題。 一、什么是雙指針法&#xff1f; 核心思想&#xff1a;顧名思義&#xff0c;就是在遍歷對象&#xff08;通常是數組或鏈表&am…

時序數據庫選型指南:基于大數據視角的IoTDB應用優勢分析詳解!

目錄 一、時序數據庫選型的基本原則 1.1 數據特征與需求分析 1.1.1 數據規模與寫入負載 1.1.2 查詢需求 1.1.3 數據保留與歸檔策略 1.1.4 系統擴展性與高可用性 1.2 技術架構與系統性能評估 1.2.1 寫入性能 1.2.2 查詢性能 1.2.3 數據壓縮能力 1.2.4 高可用性與災備…

緩存三大劫攻防戰:穿透、擊穿、雪崩的Java實戰防御體系(三)

第三部分&#xff1a;緩存雪崩——大量key失效引發的“系統性崩潰” 緩存雪崩的本質是“大量緩存key在同一時間失效&#xff0c;或緩存集群整體故障”&#xff0c;導致請求全量穿透至DB&#xff0c;引發“系統性崩潰”。 案例4&#xff1a;電商首頁的“批量過期”災難 故障現場…

解決docker配置了鏡像源但還會拉取官方鏡像源的問題

&#x1f3d3;我們有時候雖然配置了Docker國內鏡像源&#xff0c;但是還是會繞過去請求官方鏡像源&#xff08;docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded&#xff09;&#xff0c;現在我們就來解決一…

R語言水文、水環境模型優化:從最速上升法、嶺分析到貝葉斯優化與異方差處理,涵蓋采樣設計、代理模型與快速率定等

在水利工程、環境治理、生態保護、機械設計與航天航空等現代工業與科學領域&#xff0c;數學模型已成為不可或缺的核心分析、預測與決策工具。然而&#xff0c;隨著系統復雜性的日益增長&#xff0c;模型構建的精確性、參數率定的效率以及不確定性量化的重要性被提到了前所未有…

關于數據采集與處理心得(一)

目前所實踐的經驗告知我&#xff01;1. 別企圖妄想一個腳本解決所有問題要學會對問題分解&#xff0c;編寫多個腳本一步步將問題解決&#xff0c;如果每一個步驟都為了下一個階段的成果打地基&#xff0c;也是非常OK的。同時要盡可能將每一個編寫的腳本都盡到最大的利用率2. 編…

IvorySQL 適配 LoongArch? 龍架構

IvorySQL 社區很高興向您宣布&#xff0c;IvorySQL 已成功適配LoongArch 龍架構&#xff0c;為國產數據庫與國產芯片的深度融合邁出了堅實一步。這一里程碑標志著 IvorySQL 在推動國產化生態建設、賦能信創產業方面取得了重大突破&#xff0c;為用戶提供更高效、穩定、安全的數…

數據庫分庫分表是考慮ShardingSphere 還是Mycat?

http://www.mycat.org.cn/ https://shardingsphere.apache.org/ 這是一個非常核心且優秀的問題。在選擇 ShardingSphere 和 Mycat 之間&#xff0c;對于游戲這種高性能、高復雜度的場景&#xff0c;目前行業內的主流選擇和發展趨勢毫無疑問是 ShardingSphere。 我會為你詳細對…

mysql分庫分表數據量核查問題

場景&#xff1a; 使用分庫分表的業務有時分庫數量幾百甚至上千&#xff0c;當主管需要查詢每個庫中的數據&#xff0c;掌握數據分布情況。要你查看哪些庫中的表數量大于某個量級的給找出來 &#xff0c;你會怎么做。 例子 &#xff1a; mysql庫數量&#xff1a;db_xx_devicein…

python之socket網絡編程

引言 在互聯網時代&#xff0c;網絡編程已經成為開發人員必備的技能之一。無論是Web開發、實時通信還是分布式計算&#xff0c;都離不開網絡編程的支持。Python提供的socket模塊為我們提供了簡潔而強大的接口&#xff0c;可以輕松實現客戶端和服務器之間的通信。 Socket編程是網…

WPF Telerik.Windows.Controls.Data.PropertyGrid 自定義屬性編輯器

1.AI幫忙定義新用戶控件 2.在屬性上添加TelerikEditorAttribute特性 private ObservableCollection<string> _axisOrder;[Display(Description "點位", GroupName "通用", Name "軸&順序", Order 1)][DataMember][TelerikEditorAt…