首頁 > web前端 > css教學 > 如何調試 CSS `calc()` 值?

如何調試 CSS `calc()` 值?

Linda Hamilton
發布: 2024-12-14 02:15:09
原創
484 人瀏覽過

How Do I Debug CSS `calc()` Values?

如何除錯 CSS calc() 值?

問題

我有相對複雜的公式,例如:transform: scale(var(--image-scale)) translateY(calc ((1px var(--element-height) (var(--image-scale) - 1)) / 2 * var(--scrolled-out-y)))

如何調試計算出的值?
此外,是否有辦法驗證/突出顯示公式錯誤?

我試試看

 position: fixed;<pre class="brush:php;toolbar:false">display: block;
left:0;
right: 0;
background: yellow;
padding: 5px;
z-index: 100;
content: calc((1px * var(--element-height) * (var(--image-scale) - 1)) / 2 * var(--scrolled-out-y));
登入後複製

沒有用

我發現的唯一方法是將計算的一部分放在未使用的數字屬性中,例如,下面的gif 中的background-position-x,這樣它將在計算選項卡上顯示計算的值——有用但不太方便(notice background-position-x 在頁面滾動時發生變化):

enter image description here

<div>

<pre class="brush:php;toolbar:false">cssProps: true
登入後複製

})
const results = Splitting();

var parallaxedElements = document.querySelectorAll('.section');

document.addEventListener('scroll', function(e) {

parallaxedElements
Array.from(parallaxedElements).forEach((el) => {
  var bcr = el.getBoundingClientRect();
  if (bcr.y < 0 &amp;&amp; Math.abs(bcr.y) <= bcr.height) {
    el.style.setProperty("--scrolled-out-y", Math.round(Math.abs(bcr.y) * 10000 / bcr.height) / 10000);
  }
});
登入後複製

})


 html {<pre class="brush:php;toolbar:false">scroll-behavior: smooth;
登入後複製

}

body {

font-family: "Roboto";
font-size: 14px;
line-height: 1.4;
scroll-behavior: smooth;
登入後複製

}

.section {

position: relative;
background-attachment: fixed;
z-index: 1;
--image-scale: 1.2;
--scrolled-out-y: 0;
登入後複製

}

.section__background {

}
position: -webkit-sticky;
position: sticky;
top: 0;
width: 100%;
height: 100vh;
overflow: hidden;
登入後複製

.section__background {

}
content: "";
position: absolute;
bottom: 0;
left: 0;
right: 0;
top: 0;
z-index: 1;
background: linear-gradient(to bottom, black, 100% white);
background: rgba(0, 0, 0, 0.4);
opacity: calc(1 + ((var(--viewport-y) * 1.5)));
登入後複製

.section__background:after {

}
height: 150vh;
width: 100%;
object-fit: cover;
position: absolute;
left: 0;
top: 0px;
user-select: none;
transform: scale(var(--image-scale)) translateY(calc((-1px * var(--element-height) * (var(--image-scale) - 1)) * var(--scrolled-out-y)));
登入後複製

.section__background>img {

    position: fixed;
    display: block;
    left: 0;
    right: 0;
    background: pink;
    padding: 5px;
    z-index: 100;
    content: calc((1px * var(--element-height) * (var(--image-scale) - 1)) / 2 * var(--scrolled-out-y));
} */
登入後複製
}

/* .indicator:after {

padding-bottom: 50vh;
overflow: hidden;
align-items: flex-start;
position: relative;
z-index: 4;
登入後複製
/* .indicator: >.section__container {

}

color: #fff;
text-transform: uppercase;
font-size: 45px;
line-height: 1.2;
font-weight: 800;
letter-spacing: 8px;
margin: 0;
overflow: hidden;
position: relative;
padding-bottom: 50px;
margin-bottom: 50px;
登入後複製
.section__heading {

}

content: "";
position: absolute;
top: 200px;
left: 0;
right: 0;
height: 2px;
transform: translateX(calc(var(--scrolled-out-y) * 100% - 70%));
background: #b38c6b;
登入後複製
.section__heading:after {

}

.section__heading:after {

}
display: flex;
color: white;
flex-direction: column;
登入後複製

.section__content {

}
margin-top: 20px;
登入後複製

.section__content p p {

}
--char-percent: calc(var(--char-index) / var(--char-total));
登入後複製

.splitting {

.splitting .char {

display: inline-block;
opacity: calc(1 + ((var(--viewport-y) * 1.5) - var(--char-percent)));
登入後複製

}


<link rel="stylesheet" href="https://unpkg.com/splitting/dist/splitting.css"><p><section data-scroll> <div class="section__background">​​<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><div>
登入後複製
登入後複製


<div>
<div>
登入後複製


以上是如何調試 CSS `calc()` 值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
上一篇:為什麼 Margin-Top 不適用於 CSS 中的 Span 元素? 下一篇:如何建立兩行 Bootstrap 4 導覽列?
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
關於CSS心智圖的課件在哪? 課件
來自於 2024-04-16 10:10:18
0
0
1904
相關專題
更多>
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板