css不換行屬性_那些不常見,但卻非常實用的css屬性(整理不易)

1、-webkit-line-clamp

可以把 塊容器 中的內容限制為指定的行數。并且在超過行數后,在最后一行顯示"..."

這是正常的展示

e2cf6e7636d530957982ea39fc9fcfd9.png
display: -webkit-box; /*值必須為-webkit-box或者-webkit-inline-box*/
-webkit-box-orient: vertical; /*值必須為vertical*/
-webkit-line-clamp: 2; /*值為數字,表示一共顯示幾行*/
overflow: hidden;

這是加了 line-clamp 后的展示

00bdede221faa0032e2f1a4407a4046f.png

https://developer.mozilla.org/zh-CN/docs/Web/CSS/-webkit-line-clamp

2、all

將除卻 unicode-bidi 與 direction 之外的所有屬性重設至其初始值,或繼承值。

all: unset; /*initial | inherit | unset*/
initial 改變該元素所有屬性的值至初始值。inherit 改變該元素的值 至 從父元素繼承的值
unset 如果該元素的屬性的值是可繼承的,重置為父元素的繼承的值,反之則改變為初始值。

3、box-decoration-break

https://developer.mozilla.org/zh-CN/docs/Web/CSS/box-decoration-break

4、caret-color

用來定義插入光標(caret)的顏色,這里說的插入光標,就是那個在網頁的可編輯器區域內,用來指示用戶的輸入具體會插入到哪里的那個一閃一閃的形似豎杠 | 的東西。

caret-color: red;

5d2f23ebf5b117591e9143f401f6d789.png

5、clip-path / shape-outside

clip-path 屬性使用裁剪方式創建元素的可顯示區域。區域內的部分顯示,區域外的隱藏。類似的裁剪還有 svg 的 clipPath。

clip-path 的取值有以下幾種圖形

inset(xxx): 裁剪為長方形circle(xx): 裁剪為原型
ellipse(xxx): 裁剪為橢圓
polygon(xx): 裁剪為多邊形
none: 不裁剪

例子前的準備

<divstyle="width: 500px; height: 500px;text-align: left;background-color:gray;color:white"
><imgclass="clip-mode"style="float: left; margin:20px"src="https://interactive-examples.mdn.mozilla.net/media/examples/balloon-small.jpg"width="150"/>We had agreed, my companion and I, that I should call for him at his house,after dinner, not later than eleven o’clock. This athletic young Frenchmanbelongs to a small set of Parisian sportsmen, who have taken up “ballooning”as a pastime. After having exhausted all the sensations that are to be foundin ordinary sports, even those of “automobiling” at a breakneck speed, themembers of the “Aéro Club” now seek in the air, where they indulge in allkinds of daring feats, the nerve-racking excitement that they have ceased tofind on earth.
</div>

不裁剪

clip-path: none;

1b91276b42515a80c115d8b40c4b8343.png

圓形裁剪

clip-path: circle(40%); //半徑為40%,圓心默認為中心

f4c58a6173a8b1ebb5b2c37f2c894503.png

橢圓裁剪

clip-path: ellipse(130px 140px at 10% 20%);

7b4292edbc7ac34c817c628f68ecc733.png

多邊形裁剪

clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);

93d9ea6c76c1e177950754a33b15a218.png

我們可以看到上面圖形如何裁剪,外面的看不見的框始終是矩形,也就是說文字始終是按矩形的樣式在周圍環繞。

那么有辦法讓文字緊緊的貼在裁剪的圖形周圍呢?
有的,使用 shape-outside 屬性

shape-outside 定義了一個可以是 非矩形的形狀,相鄰的內聯內容應圍繞該形狀進行包裹。默認情況下,內聯內容包圍其矩形邊距;

默認矩形環繞

clip-path: none;
shape-outside: none

4cf34685e8b14292ad334562c08062e6.png

圓形環繞

clip-path: circle(40%);
shape-outside: circle(40%);

橢圓環繞

clip-path: ellipse(130px 140px at 10% 20%);
shape-outside: ellipse(130px 140px at 20% 20%);

5a2eddb6200ffa0419363065f5b58b39.png

多變性環繞

clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
shape-outside: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);

5e656429e57aaa213d5c67a1953ce15b.png

當然你不一定在圓形裁剪上,使用圓形環繞,你可以在圓形裁剪上使用多邊形環繞,在多邊形裁剪上,使用菱形環繞。總之這兩個之間沒關系,不是兩兩匹配的。都隨你便,自己定義

6、object-fit / object-position

object-fit 屬性指定可替換元素的內容應該如何適應到其使用的高度和寬度確定的框。object-position 屬性來指定被替換元素的內容對象在元素框內的對齊方式。

注: 其中可替換元素有 iframe,video,embed,img,還有一些在特性情況也是可替換元素,option,audio,canvas,object

例子前的準備

<div style="width: 300px; height: 300px; background-color:gray;"><img class="clip-mode" style="height: 100%; width: 100%;" src="https://interactive-examples.mdn.mozilla.net/media/examples/plumeria.jpg">
</div>

圖片一定能要設置為寬高 100%,即不能超過父容器,才可以設置 object-fit,否則沒意義。

fill 填滿 圖片會拉變形,寬度和高度都被拉到父容器的 100%,以適應父容器

object-fit: fill;

2ea4fad755c5d611696d74d554145eb2.png

contain 包容 圖片不會變形,圖片會按照自身比例進行縮放,整個圖片放入父容器中,較短的邊會出現自動填充的空白。

object-fit: contain;

09e1cb2f805688b512c7eceed3fb5b16.png

cover 覆蓋 圖片不會變形,圖片會按照自身比例進行縮放,整個圖片放入父容器中,按照圖片最短的邊,納入父容器為基準。較長的邊會溢出

object-fit: cover;

none 和父容器的寬高沒關系。展示其圖片最原始的寬高比,以自身圖片的“中心”為基點,放置到父容器的“中心”位置。

object-fit: none;

9fb2901b7d6b9332dcd0ad5d65555c52.png

scale-down 內容的尺寸與 none 或 contain 中的一個相同,取決于它們兩個之間誰得到的對象尺寸會更小一些。

object-fit: scale-down;

如果圖片比父容器尺寸大,那么按照 contain 的效果,如果圖片比父容器小,那么按照 none 的效果。

在上面 object-fit 的展示中,我們發現可替換元素的對齊方式都是自動的。

比如 object-fit: fill; 的左上角和父容器的左上角對齊。

object-fit: none;的中心和父容器的中心對齊等等。

但是我們想手動更改對齊方式呢??

可以使用 object-position 屬性, 規定了可替換元素的內容,在其內容框中的位置。

object-position: 10px 10px; 可以設置 px,第一個值代表距離父容器左邊的距離,第二個值代表距離父容器頂部的距離。只有一個數值則只代表距離父容器左側的距離。也可以設置%數值,但此時只有某一邊有空白才會起作用,如果沒有空白,剛好鋪滿父元素,則不起作用。設置 px 就沒有這樣的問題,任何之后都會起作用。object-position: right top;可以設置關鍵字,第一個值關鍵字可設置(left|center|right),第二個關鍵字可設置(top|center|bottom),此時不表示距離左側或者頂部的距離,而表示放置在父元素的什么位置。
object-fit: fill;
object-position: 50px 50px;   //距離左側10px,距離頂部10%

加 object-position 前后對比圖:

765a3c7b4a2fac2eb7c77b3ca75454a7.png
object-fit: contain;
object-position: right top;  //停留子 右上方

加 object-position 前后對比圖:

1b940e79c4704a2460b1ab2089b161b5.png

7、font-stretch

為字體定義一個正常或經過伸縮變形的字體外觀,它僅僅意味著當有多種字體可供選擇時,會為字體選擇最適合的大小。

normal 默認字體semi-condensed, condensed, extra-condensed, ultra-condensed 小于默認字體
semi-expanded, expanded, extra-expanded, ultra-expanded 大于默認字體

5d0331f268508a560ce3746e32144583.png

8、font-variant-caps

可以控制大寫字母特殊字符的使用。

  • normal 關閉一切特殊字符變體的使用。
  • small-caps 允許小型大寫字母的使用(OpenType 特性:smcp)。小型大寫字母指使用大寫形式,但尺寸與對應小寫字母相同的字母。
  • all-small-caps 將大小寫字母全部轉化為小型大寫字母。(OpenType 特性: c2sc, smcp)。
  • petite-caps 允許特小型大寫字母的使用(OpenType 特性: pcap)。
  • all-petite-caps 將大小寫字母全部轉化為小型大寫字母。(OpenType 特性: c2pc, pcap)。
  • unicase 允許將大寫字母轉化為小型大寫字母與普通小寫字母的混用 (OpenType 特性: unic)。
  • titling-caps 允許首字母大寫(OpenType 特性: titl)。大寫字母變體字符通常被設計成與用于小寫字母。在標題序列中,如果均使用大寫字母,可能會帶來過于強烈的視覺效果。首字母大寫即用來應對這種情況。

8c4dce169cfc98eb2b593db9c3b387b0.png

9、font-variant-east-asian

控制對東亞字符(如日語和漢語,韓語等)使用替代符號。

值有一下幾種:
normal; ruby; jis78; jis83; jis90; jis04; simplified; traditional; full-width; proportional-width

bedb763ee8b6817a07527d0817d05660.png

10、max-content / min-content / fill-available / fit-content

這幾個值都可用在 width, height, min-width, min-height, max-width 和 max-height 屬性上。

display 必須為 inline-block 或者 block,否則上面的值不起作用。

fill-available

元素撐滿可用空間。參考的基準為父元素有多寬多高。

類似子元素的 div 撐滿父元素的寬,fill-available 不僅可以撐滿寬還能撐滿高。

例子前的代碼

<div style="width: 300px; height: 100px; background-color:gray;"><span style="display:inline-block;background-color: burlywood;">這是子元素的內容</span>
</div>

給 span 上設置 fill-available 時的不同表現

4a4d2d9306fcbe331315fbc040883fa9.png

假如里面的有個元素,是 img 呢?它也是 inline-block,應該也滿足情況。

983474d0344a4bc502d12bba225d5809.png

我們可以看到 img 和 span 的不同在于,設置 width 或者 height 其中一個時,整個 image 會按照自身比例縮放。

max-content

它的寬度或者高度,會自動調整為,剛剛好容納下子元素中那個長度最長(按照文字不換行時計算)的元素即可。
參考的基準為子元素有多寬多高。

<div class="parent"><div class="current" style="width: 200px; height: 300px; background-color:gray;"><p>這是普通的p元素行,內容為文字</p><img src="https://interactive-examples.mdn.mozilla.net/media/examples/balloon-small.jpg"/></div>
</div>

給 current div 設置 max-content 時得不同表現。

102880eb96028d5615ab72b2dcecec80.png

min-content

它的寬度或者高度,會自動調整為,剛剛好容納下子元素中那個“最小寬度值”最大的元素即可,剩余超長的要么換行,要么溢出
參考的基準為子元素“最小寬度值”有多寬多高。

什么是“最小寬度值”?
比如圖片,最小寬度值,就是圖片原始的寬高;如果是一串中文,則最小寬度值為單個漢字的寬高;如果是一串英文,則最小寬度值為里面單詞最長的那個。

9e7a58cd9e8034cb8bbf06bcaf31b9d7.png

fit-content

表示元素自動伸縮到內容的寬度,和 max-content 的區別為,都是剛剛好容納下子元素中那個長度最長的元素即可。

不同的是 max-content 在計算時按照文字不換行時計算,如果超過父元素,則不換行,直接產生滾動條; 而 fit-content 在超過父元素后,換行,不產生滾動條。

8fb1ddca9e7405bebb36f520f1f5ccd5.png

11、fit-content()

這個不同于上面的 fit-content 值,它是函數,用在 grid 布局當中。

(略)

具體查看 grid 布局

12、resize

比較簡單,可以查看

resize?developer.mozilla.org
d07ca1dd0b8e29f20038ec6310bee528.png

13、scroll-behavior

當用戶通過 API 觸發滾動操作時,CSS 屬性 scroll-behavior 為一個滾動框指定滾動行為, 平滑到達還是立即到達

可以查看
官方文檔

14、max() / min()

max 在兩者這件取最大;min 函數在兩者之間取最小。

max,min 可以用在任何可以設置 <length>, <frequency>, <angle>, <time>, <percentage>, <number>, or <integer> 等值的地方

width: max(50vw, 300px);
width: min(50vw, 300px);

15、clamp()

clamp 函數會在定義的 三個值之間,取中間的那個值,是大小在中間,不是位置在中間,

clamp(MIN, VAL, MAX)

和 max,min 函數一樣,可以用在任何可以設置 <length>, <frequency>, <angle>, <time>, <percentage>, <number>, or <integer> 等值的地方

font-size: clamp(1px, 3px, 2px);    //中間值為2px
font-size: clamp(1px, 3px, 5px);    //中間值為3px
font-size: clamp(4px, 3px, 5px);    //中間值為4px
width: clamp(200rem, 25vw, 150px); //在這三個之間取中間值

16、conic-gradient()

在漸變中我們知道,有:

  • 線性漸變,linear-gradient,從一個方向,沿著另一個方向,顏色線性過渡。

151999f4dcbcdbb8e259c9edc894841f.png
  • 徑向基漸變,radial-gradient,從某一個點,沿圓環向外慢慢輻射。

3e593cad7e4c18f8596cf029f978f306.png

除此之外,還有一種漸變,叫"錐形漸變"。它是圍繞中心點按照扇形方向進行旋轉的漸變(而不是從中心點輻射)

這是錐形和徑向漸變的區別圖

09604d4961cdac0cd7ba656f94e98552.png
background: conic-gradient(red, orange, black, green, blue);

默認從時鐘 12 點,按照順時針旋轉

f8ff780ed138b5aa237e279538365bde.png

18、:out-of-range / :in-range

比較簡單,可以查看官方文檔

:out-of-range

:in-range

19、writing-mode

定義了文本水平或垂直排布以及在塊級元素中文本的書寫方向

horizontal-tb 表示水平書寫,從上(top)到下(bottom)書寫vertical-rl 表示垂直書寫,從右(right)向左(left)(古人書法就這么寫的)
vertical-lr 表示垂直書寫,從左向右
注意沒有 horizontal-bt,不要杜撰

26cf91094d8b055ab8a3316a2a30e1f2.png

20、inline-size

和元素的 width,height 效果一樣,都會改變盒子的大小。但是會覆蓋 width,height 值。

不同在于,width 是絕對的水平方向,height 是絕對的豎直方向;

而 inline-size 是相對的水平方向,可通過 writing-mode 模式,改變方向

be6a10377256b85fb03ea7d1d2ede8c3.png

21、block-size

類似于 inline-size,只不過和 inline-size 剛好相反,block-size 默認設置的是 height 方向的值。

0a48733a070cde6029b0ef1f4dc7c0b1.png
原作者姓名: 寒水寺一禪
原出處:segmentfault
原文鏈接:那些不常見,但卻非常實用的css屬性(整理不易) - 個人文章 - SegmentFault 思否

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

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

相關文章

計算機總是無法響應怎么辦,電腦無響應是怎么回事 電腦無響應解決方法

電腦無響應是怎么回事?有時用戶再操作過程中想在任務欄中切換窗口時&#xff0c;忽然發現點擊任務欄中的圖標沒有任何反應了&#xff0c;就像系統死機一樣&#xff0c;這就是Windows XP中常見的任務欄失去響應&#xff0c;又被稱為“任務欄假死現象”。那么&#xff0c;如何喚…

2020身高體重標準表兒童_男女孩最新身高標準表,你家孩子達標了嗎?(附增高秘籍)...

現在大家的生活水平提高了&#xff0c;和很多年前相比&#xff0c;孩子們的平均身高提高了不少&#xff0c;孩子能長成一個高個子&#xff0c;也是很多家長非常關注的事情。其實&#xff0c;要想孩子長高&#xff0c;除了營養要跟上以外&#xff0c;充足的睡眠、體重不要太胖都…

java 正則匹配_正則表達式真的很強大,可惜你不會寫

專注于Java領域優質技術&#xff0c;歡迎關注本文旨在用最通俗的語言講述最枯燥的基本知識文章提綱&#xff1a;元字符重復限定符分組轉義條件或區間正則表達式在幾乎所有語言中都可以使用&#xff0c;無論是前端的JavaScript、還是后端的Java、c#。他們都提供相應的接口/函數支…

河北大學計算機復試題,2016年河北大學綜合卷計算機科學與技術學院之數據庫系統概論復試筆試最后押題五套卷...

一、選擇題1&#xff0e; 根據系統所提供的存取路徑&#xff0c;選擇合理的存取策略&#xff0c;這種優化方式稱為( )。A. 物理優化B. 代數優化C. 規則優化D. 代價估算優化【答案】A【解析】物理優化是根據數據字典中的存取路徑、數據的存儲分布以及聚簇情況等信息來選擇低層的…

python測驗5 函數和代碼_測驗5: 函數和代碼復用 (第5周)-單選題

1、以下選項不是函數作用的是&#xff1a;???????????????????????????????????????????????????????????????????????????????? A、 提高代碼執行速度 B、 復用代碼 C、 降低編程復雜度 D、…

石板切割問題c語言_廣場地面鋪裝 仿古石 青石板 板巖 切割巖 冰裂紋壓印混凝土地坪...

廣場地面鋪裝 仿古石 青石板 板巖 切割巖 冰裂紋壓印混凝土地坪廣場地面鋪裝 仿古石 青石板 板巖 切割巖 冰裂紋壓印混凝土地坪青石板是由青色的沉積巖劈制或者切割而成的板材&#xff0c;是天然板巖的一種&#xff0c;主要成分為石灰石、白云石。其比重約2.2~2.7克/立方厘米&a…

編程doc轉html,Python批量將word轉html,并將html內容發布至網站。

搜索熱詞下面是編程之家 jb51.cc 通過網絡收集整理的代碼片段。編程之家小編現在分享給大家&#xff0c;也給大家做個參考。#codingutf-8__author__ zhmfrom win32com import client as wcimport osimport timeimport randomimport MysqLdbimport redef wordsToHtml(dir):#批量…

python分析工具有哪些_常用Python數據分析工具匯總

Python是數據處理常用工具&#xff0c;可以處理數量級從幾K至幾T不等的數據&#xff0c;具有較高的開發效率和可維護性&#xff0c;還具有較強的通用性和跨平臺性。Python可用于數據分析&#xff0c;但其單純依賴Python本身自帶的庫進行數據分析還是具有一定的局限性的&#xf…

python軟件是什么原因引起的_Python對程序員重要的原因在哪里?

Python 之父Fredrik Haard最近發表了一篇“為什么Python對你如此重要”的文章&#xff0c;引起了開發者的熱烈討論。我相信Python對軟件開發人員很重要。現今已經誕生了不少的編程語言&#xff0c;它們都有各自不同的特性&#xff1a;強大者如Lisp&#xff0c;快速如C&#xff…

大學計算機需要論文嗎,關于大學計算機論文范文.docx

關于大學計算機論文范文一&#xff1a;大學計算機基礎實驗教學課程改革計算機基礎是高校非計算機專業非常重要的一門公共基礎課程&#xff0c;課程內容是大學生必須掌握的計算機基礎知識和操作技能&#xff0c;是大學生走向工作崗位必備的基本素質。計算機基礎知識的掌握與實際…

高并發編程_高并發編程系列:全面剖析Java并發編程之AQS的核心實現

在并發編程領域&#xff0c;AQS號稱是并發同步組件的基石&#xff0c;很多并發同步組件都是基于AQS實現&#xff0c;所以想掌握好高并發編程&#xff0c;你需要掌握好AQS。本篇主要通過對AQS的實現原理、數據模型、資源共享方式、獲取鎖的過程&#xff0c;讓你對AQS的整體設計有…

python怎么測試c代碼_如何正確測試python中的C-API,C-API返回錯誤代碼

我的設置 我正在使用Python中的pytest和ctypes測試C庫中的函數。C庫中的每個函數調用一個嵌入式linux PCI板上的函數&#xff0c;然后C庫函數返回一個整數&#xff0c;該整數映射到一組返回代碼。如果函數成功&#xff0c;則返回0&#xff0c;否則返回其他錯誤代碼。在 問題 我…

計算機考試設計會議邀請函,計算機二級常見考點之使用合并技術制作邀請函

計算機01:37來自LearningYard學苑三月份的計算機二級考試即將到來&#xff0c;不知道各位童鞋準備得怎么樣了呢&#xff0c;把握了多少。今天小編就給講講計算機二級MS office中常見的考核內容——使用合并技術制作邀請函。The computer second-level exam in March is coming …

添加一列_辦公軟件操作技巧023:如何給excel數據批量添加單位

在日常工作中&#xff0c;我們使用excel編輯電子表格時&#xff0c;經常需要給數據添加單位&#xff0c;單位是編制excel表格常用的元素&#xff0c;有時我們需要給一列數字都添加上單位&#xff0c;比如長度多少米&#xff0c;金額多少元&#xff0c;貨物多少公斤等等&#xf…

html代碼大全(很全的)_HTML教學(1):寫一個屬于自己的網址大全(新手版)

超文本標記語言&#xff08;Hyper Text Markup Language&#xff09;&#xff0c;縮寫為HTML&#xff0c;標準通用標記語言下的一個應用。HTML不是一種編程語言&#xff0c;而是一種標記語言 &#xff08;markup language&#xff09;只要你打開瀏覽器&#xff0c;第一眼看到的…

清華大學計算機系高考生源,清華大學在這個高考大省錄取人數創新高,網友:仍然是同分不同命...

在眾多高考學子眼中&#xff0c;只有“兩個學校”&#xff0c;一個是“清華、北大”&#xff0c;一個是“其他學校”&#xff0c;不僅是高考學子&#xff0c;清華、北大在眾多人心目中也是十分神圣的。很多學生家長把考上清華、北大作為子女的唯一追求&#xff0c;認為只有考上…

list的contains方法為什么不好使_道理都懂,為什么我們還打不好網球?

中年人的悲哀在于&#xff0c;懂得很多道理&#xff0c;可依然過不好自己的一生。打網球亦是如此。——題記人到中年&#xff0c;有了一定的社會經驗&#xff0c;也懂得了很多道理&#xff0c;可大部分人還是過不好自己的生活。正如打網球一樣。盯準球、早點打、降低重心、保持…

docker公共存儲庫_Docker Hub公共鏡像倉庫的使用

Docker Hub目前 Docker 官方維護了一個公共倉庫 Docker Hub&#xff0c;其中已經包括了數量超過 15,000 的鏡像。大部分需求都可以通過在 Docker Hub 中直接下載鏡像來實現。Docker Hub的功能Docker Hub被用于源代碼管理集成&#xff0c;也用于構建和測試工具來加速部署周期&am…

html5登錄界面源代碼_最新版本尤娜博客已更新源代碼(速拿!!!)

大家好&#xff0c;我是尤娜博客(una-boot)的作者樹下魅狐&#xff0c;自2019年9月una-boot-1.0.0版本開源以來&#xff0c;陸續有熱愛技術&#xff0c;鐘愛技術寫作的小伙伴為尤娜提出了寶貴的改進意見和建議&#xff0c;在此表示衷心的感謝&#xff0c;謝謝大家的支持&#x…

抓包紅色_抓包三部曲 WebSocket 協議原理抓包分析

這篇文章通過抓包分析 WebSocket 協議的細節&#xff0c;學習一下 WebSocket 執行流程。1.WebSocket 流程說明(1)客戶端和服務器之間完成三次握手建立 TCP 連接(TLS/SSL)握手。(2)客戶端發起 HTTP 請求和服務器之間建立 WebSocket 握手。(3)WebSocket 連接建立之后&#xff0c;…