日韩欧美人妻无码精品白浆,www.大香蕉久久网,狠狠的日狠狠的操,日本好好热在线观看

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

CSS 中的數(shù)學(xué)函數(shù)

freeflydom
2025年5月8日 8:44 本文熱度 790

數(shù)學(xué)函數(shù)可以用來做什么?

最基礎(chǔ)的當(dāng)然是用來進(jìn)行四則運(yùn)算了,再進(jìn)一步可以用來平方,對數(shù),冪,絕對值,取余等,當(dāng)然還可以用來計(jì)算三角函數(shù)。

靈活運(yùn)用 CSS 中的數(shù)學(xué)函數(shù),可以拋棄很多原本需要 JS 才能實(shí)現(xiàn)的布局場景。

calc()

最基礎(chǔ)的四則運(yùn)算函數(shù),對頭,就是用來做小學(xué)就學(xué)過的加、減、乘、除。

比如有這么一個(gè)需求:子元素占用寬度是父元素的一半多20像素!

這個(gè)需求,如果用常規(guī)的布局思路來看,父元素如果寬度固定 200px,還能簡單的算出來,子元素寬度是 120px。

但如果父元素的寬度不固定呢?還能計(jì)算出來嗎?如果沒有 calc 函數(shù),那么唯一的辦法就只有拿出 40 米的 JS 大刀了~。

使用 calc 函數(shù),就可以輕松解決這個(gè)問題:

.box {
  width: 100%;
}
.box .child {
  width: calc(50% + 20px);
}

注意:

加法(+)、減法(-) 運(yùn)算符左右兩邊必須要有空格!原因是如果沒有空格字符串,-20px 是表示的負(fù)數(shù),而不是減法。

除法中:除數(shù)(除號(hào) / 右面的數(shù))必須是一個(gè)數(shù)字(如:1,1.1,+2,-2.3,1e4),不能是帶有單位的值(如:2px,50%,3vw,2em)。與以前學(xué)過的除法一樣,0 不能作為除數(shù)!

乘法中:乘號(hào)(*)兩邊必須有一個(gè)數(shù)字。原因:calc(20px * 20px) 表示的像素平方,在瀏覽器中無法解析這種值?。?/p>

calc() 的各種使用方式:

<div class="box">
  <div class="child">calc(50% + 20px)</div>
  <div class="child">calc(12 * 20px)</div>
  <div class="child">calc(100% / 3)</div>
  <div class="child">calc(10em + 40px)</div>
  <div class="child">calc(var(--child-width) + 40px - 20px)</div>
  <div class="child">calc((((40vw + 20px) * 3) - 500px) / 5)</div>
</div>
<style>
.box {
  margin: 20px 0;
  width: 400px;
  border: var(--base-border, 2px solid rgba(255, 71, 87,0.3));
}
.box .child {
  margin: 10px;
  border: 1px solid #ffa947;
  padding: 10px;
}
.box .child:nth-of-type(1) {
  /* 加法 */
  width: calc(50% + 20px);
}
.box .child:nth-of-type(2) {
  /* 乘法 */
  width: calc(12 * 20px);
}
.box .child:nth-of-type(3) {
  /* 除法 */
  width: calc(100% / 3);
}
.box .child:nth-of-type(4) {
  /* 不同的單位加法 */
  width: calc(10em + 40px);
}
.box .child:nth-of-type(5) {
  /* 使用 CSS 變量 */
  --child-width: 16vw;
  width: calc(var(--child-width) + 40px - 20px);
}
.box .child:nth-of-type(6) {
  /* 復(fù)雜的四則運(yùn)算 */
  width: calc((((40vw + 20px) * 3) - 500px) / 5);
}
</style>

效果:

min()

min() 用于獲取一組數(shù)值中的最小值。通常用于比較不同單位之間的最小值,比如 min(400px, 50%, 20em, 10vw)

使用示例:

<div class="box">
  <div class="child">min(230px, 220px)</div>
  <div class="child">min(50%, 220px)</div>
  <div class="child">min(20vw, 20em, 1000px)</div>
  <div class="child">min(var(--child-width), 100em, calc(100% * 0.85))</div>
</div>
<style>
.box {
  margin: 20px 0;
  width: 400px;
  border: var(--base-border, 2px solid rgba(255, 71, 87,0.3));
}
.box .child {
  margin: 10px;
  border: 1px solid #ffa947;
  padding: 10px;
}
.box .child:nth-of-type(1) {
  /* 相同單位比較 */
  width: min(230px, 220px);
}
.box .child:nth-of-type(2) {
  /* 不同單位比較 */
  width: min(50%, 220px);
}
.box .child:nth-of-type(3) {
  /* 多個(gè)不同單位比較 */
  width: min(20vw, 20em, 1000px);
}
.box .child:nth-of-type(4) {
  /* 使用 var 和 calc */
  --child-width: 26vw;
  width: min(var(--child-width), 100em, calc(100% * 0.85));
}
</style>

效果:

max()

max() 用于獲取一組數(shù)值中的最大值。與 min() 類似,作用相反取最大值,比如 max(400px, 50%, 20em, 10vw)

使用示例:

<div class="box">
  <div class="child">max(230px, 220px)</div>
  <div class="child">max(50%, 220px)</div>
  <div class="child">max(20vw, 20em, 300px)</div>
  <div class="child">max(var(--child-width), 6em, calc(100% * 0.9))</div>
</div>
<style>
.box {
  margin: 20px 0;
  width: 400px;
  border: var(--base-border, 2px solid rgba(255, 71, 87,0.3));
}
.box .child {
  margin: 10px;
  border: 1px solid #ffa947;
  padding: 10px;
}
.box .child:nth-of-type(1) {
  /* 相同單位比較 */
  width: max(230px, 220px);
}
.box .child:nth-of-type(2) {
  /* 不同單位比較 */
  width: max(50%, 220px);
}
.box .child:nth-of-type(3) {
  /* 多個(gè)不同單位比較 */
  width: max(20vw, 20em, 300px);
}
.box .child:nth-of-type(4) {
  /* 使用 var 和 calc */
  --child-width: 6vw;
  width: max(var(--child-width), 6em, calc(100% * 0.9));
}
</style>

效果:

clamp()

此函數(shù)是 min() 和 max() 的結(jié)合體,可以同時(shí)指定最小值和最大值以及限定值,使用方式:clamp(min, value, max)。

比如 clamp(400px, 50%, 20em) 表示如果 50% 小于 400px,則取 400px,如果 50% 大于 20em,則取 20em,否則取 50%。

使用示例:

<div class="box">
  <div class="child">clamp(180px, 50%, 100px)</div>
  <div class="child">clamp(100px, 60%, 320px)</div>
  <div class="child">clamp(20vw, 20em, 300px)</div>
  <div class="child">clamp(var(--child-width), 20em, calc(100% * 0.9))</div>
</div>
<style>
.box {
  margin: 20px 0;
  width: 400px;
  border: var(--base-border, 2px solid rgba(255, 71, 87,0.3));
  resize: both;
  overflow: auto;
}
.box .child {
  margin: 10px;
  border: 1px solid #ffa947;
  padding: 10px;
}
.box .child:nth-of-type(1) {
  /* 最小值180px 大于了 最大值 100px,直接應(yīng)用了 180px */
  width: clamp(180px, 50%, 100px);
}
.box .child:nth-of-type(2) {
  /* 子元素大小必在 100px ~ 320px 之間 */
  width: clamp(100px, 60%, 320px);
}
.box .child:nth-of-type(3) {
  /* 子元素大小必在 10% ~ 90% 之間 */
  width: clamp(10%, 20em, 90%);
}
.box .child:nth-of-type(4) {
  /* 也可使用 var 和 calc */
  --child-width: 6vw;
  width: clamp(var(--child-width), 20em, calc(100% * 0.9));
}
</style>

效果:

一個(gè)組合應(yīng)用例子

<div class="box">
  <div class="child">組合應(yīng)用</div>
  <div class="child">組合應(yīng)用</div>
</div>
<style>
.box {
  margin: 20px 0;
  width: 400px;
  border: var(--base-border, 2px solid rgba(255, 71, 87,0.3));
  resize: both;
  overflow: auto;
}
.box .child {
  margin: 10px;
  border: 1px solid #ffa947;
  padding: 10px;
}
.box .child:nth-of-type(1) {
  --base-width: 10%;
  width: clamp(min(20px, 10rem), calc(var(--base-width) * 6), max(100%, 100vw));
}
.box .child:nth-of-type(2) {
  --base-width: 10%;
  width: clamp(min(20px, var(--base-width)), calc(min(var(--base-width) * 4, 300px)), max(calc(var(--base-width) * 9), 100vw));
}
</style>

可以看到上面例子中,clamp 函數(shù)可以嵌套 min、calc、max 函數(shù),calc 函數(shù)也可以可以嵌套使用 min 函數(shù),max 函數(shù)也可以使用 calc 的計(jì)算結(jié)果。

套娃一樣的用法,可以組合出各種復(fù)雜的運(yùn)算場景??!

效果:

其他數(shù)學(xué)函數(shù)

對于 CSS 布局而言,四個(gè)基本的數(shù)學(xué)函數(shù)已經(jīng)完全足夠了,但在一些 3D 和動(dòng)畫場景中,您可能會(huì)用到一些其他數(shù)學(xué)運(yùn)算函數(shù),目前 CSS 支持的數(shù)學(xué)運(yùn)算函數(shù)如下:

階躍值函數(shù)

round() 實(shí)驗(yàn)性 根據(jù)舍入策略計(jì)算一個(gè)舍入的數(shù)字。

mod() 實(shí)驗(yàn)性 計(jì)算一個(gè)數(shù)除以另一個(gè)數(shù)的模(與除數(shù)的符號(hào)相同)。

rem() 實(shí)驗(yàn)性 計(jì)算一個(gè)數(shù)字除以另一個(gè)數(shù)字的余數(shù)(與被除數(shù)的符號(hào)相同)。

三角函數(shù)

sin() 計(jì)算一個(gè)數(shù)的三角函數(shù)正弦值。

cos() 計(jì)算一個(gè)數(shù)的三角函數(shù)余弦值。

tan() 計(jì)算一個(gè)數(shù)的三角函數(shù)正切值。

asin() 計(jì)算一個(gè)數(shù)的三角函數(shù)反正弦值。

acos() 計(jì)算一個(gè)數(shù)的三角函數(shù)反余弦值。

atan() 計(jì)算一個(gè)數(shù)的三角函數(shù)反正切值。

atan2() 計(jì)算平面內(nèi)兩個(gè)數(shù)字的三角函數(shù)反正切值。

指數(shù)函數(shù)

pow() 計(jì)算基數(shù)的冪次方值。

sqrt() 計(jì)算一個(gè)數(shù)的平方根。

hypot() 計(jì)算其參數(shù)平方之和的平方根。

log() 計(jì)算一個(gè)數(shù)的對數(shù)值。

exp() 計(jì)算一個(gè)數(shù)的 e 次方值。

符號(hào)函數(shù)

abs() 實(shí)驗(yàn)性 計(jì)算一個(gè)數(shù)的絕對值。

sign() 實(shí)驗(yàn)性 計(jì)算一個(gè)數(shù)的符號(hào)值(正值或負(fù)值)。

對于高級(jí)運(yùn)算函數(shù)有興趣可以參閱 MDN 文檔:https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Values_and_Units/CSS_Value_Functions

寫在最后

在響應(yīng)式布局中,靈活運(yùn)用數(shù)學(xué)函數(shù),可以簡化很多不必要的代碼,也許您都可以放棄部分非必要的 媒體查詢 代碼。

?轉(zhuǎn)自https://www.cnblogs.com/linx/p/18863718


該文章在 2025/5/8 8:44:55 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

激情婷婷蜜臀麻豆久久综合| 国产三级视频排名| 亚周999| 中出视频在线观看一区| 射精视频精品一区二区三区 | 爱爱终合一二三区| 日本一区二区三区免费看| 韩国一区一级日本有码| 欧洲 交1000部在线观看网址| 美国无吗成人| 精品国产午夜福利在线不卡| 精品人妻少妇嫩草av无码自| 一一本道a v| 国产无码高清老师AAAA| av男人的网址| 欧美日韩国产日韩欧美视频| 草逼不卡视频| 国产99久久| 久久久亚洲免费看| 日av综合| 亚洲偷拍免费| JULIA流出中文字幕| 蜜臀AⅤ久久在线| 亚洲精品 综合一区二区| 欧美DVD一级黄片| 欧美高清亚洲日皮| 超碰国产精品哈| 夜夜夜夜一区二| 人妻激情偷乱视频一区二区| 激情开心成人网麻豆| 亚洲国产成人污视频在线| 好吊好好操频在有精里| 亚州天堂无码| 国产女人国产女人喷水视频| 欧美日韩成人一区二| 国产成人九九九一区| 人妻AV观看| 青春骄淫| 欧美老妇爱大吊欧美激情| 亚洲欧美日韩自偷自拍| 国产麻豆亚洲高清一区二区|