当前位置: 首页 > Web前端 > CSS

制作果冻效果的css变量(css变量)

时间:2023-03-30 22:54:13 CSS

变量声明CSS自定义属性也叫CSS变量。变量具有合法的标识符和合法的值,可以在任何地方使用。通过var()函数使用变量。1.声明一个局部变量:.jelly{--main-bg-color:#e91e63;}2.使用一个局部变量:.jelly{background-color:var(--main-bg-color);}3.声明一个全局CSS变量::root{--global-color:#666;}3.使用一个全局CSS变量:.jelly{color:var(--global-color);}var()var()函数也可以使用第二个参数来表示变量的默认值。如果该变量不存在,将使用此默认值。颜色:var(--颜色);变量名区分大小写,--header-color和--Header-Color是两个不同的变量。在变量作用域中具有较高优先级选择器的变量声明会覆盖较低优先级的选择器。body{--color:red;}p{--color:black;}结合计算高度:calc(100vh-var(--header-height));第二个参数不处理内部逗号或空格,被认为是参数的一部分。js操作css变量读取变量值:constdom=document.querySelector('selector');dom.style.getPropertyValue('--color');修改css变量的值:constdom=document.querySelector('selector');dom.style.setProperty('--color','white');可以在多个选择器中声明同一个CSS变量。读取时,优先级最高的声明生效。这与CSS的“级联”规则是一致的。element.style.getPropertyValue("--my-var");getComputedStyle(element).getPropertyValue("--my-var");element.style.setProperty("--my-var",jsVar+4);javascript检测浏览器支持constisSupported=window.CSS&&window.CSS.supports&&window.CSS.supports('--a',0);超可爱的冷冻效果:

.jelly{--x:84;--y:75;--尺寸:128;宽度:10rem;高度:10rem;最小宽度:6em;最小高度:6em;背景:var(--color,#aaa);border:0实心透明;框大小:边框框;保证金:.5em;不透明度:.7;--dx:计算(var(--size)-var(--x));--dy:计算(var(--size)-var(--y));不透明度:1;游标:指针;边框:calc(2px+.65vw)solidrgba(255,255,255,.5);边界半径:calc(var(--x)/var(--size)*100%)calc(var(--dx)/var(--size)*100%)calc(var(--dx)/var(--size)*100%)calc(var(--x)/var(--size)*100%)/calc(var(--y)/var(--size)*100%)calc(var(--y)/var(--size)*100%)calc(var(--dy)/var(--size)*100%)calc(var(--dy)/var(--大小)*100%);}首先是Jelly(设置css变量值,覆盖默认值).jelly1{--color:#f44336;--x:160.71999999999997;--y:90.72;--size:192;}otherjelly/*第二个果冻*/.jelly2{--color:#e91e63;--x:155.82;--y:97.01999999999998;--size:192;}/*第三种果冻*/.jelly3{--color:#9c27b0;--x:160.719999999999997;--y:101.22;--size:192;}/*4thjelly*/.jelly4{--color:#2196f3;--x:78.119999999999999;--y:107.519999999999998;--size:192;}/*第4个果冻*/.jelly5{--color:#4caf50;--x:55.719999999999999;--y:100.51999999999998;--尺寸:192;}/*第五个果冻*/.jelly6{--color:#ff9800;--x:130.62;--y:88.61999999999999;--size:192;}counter-increment添加元素编号所有主流浏览器都支持counter-increment属性Usage:.jelly-box.jelly{counter-increment:number;/*每个元素编号*/counter-reset:number;/*重置元素编号,即重复一个数字*/}.jelly:after{content:计数器(数字);/*在内容中放数字*//*省略其他属性*/}制作精美卡片效果htmlGrid+css变量:.variables-wrraper{--i:var(--wide,1);/*因为wide是未定义的,所以它会取第二个值*/--j:calc(1-var(--i));/*由于wide未定义,i为1,所以j取值为0*/}解释:因为wide未定义,i的第二个值,j依赖于i,所以j为0;wide中一旦定义了变量,i,j就会随之改变;.variables-box{--p:var(--奇偶校验,1);--q:计算(1-var(--p));--s:计算(1-2*var(--p));显示:网格;网格模板:calc(var(--j)*2.5em)5em1fr/calc(var(--i)*(var(--q)*13.5em+var(--p)*5em)+var(--j)*3.5em)1fr计算(var(--i)*(var(--p)*13.5em+var(--q)*5em)+var(--j)*3.5em);溢出:隐藏;保证金:1em自动;最大宽度:39em;最小高度:10em;边界半径:calc(var(--i)*10em);盒子阴影:15px15px17pxrgba(0,0,0,0.25);背景:线性梯度(#f0f0f0,#fafafa5em,#eaeaea0,#dadada)0100%/100%calc(100%-var(--j)*2.5em);counter-increment:idx;}解释:display:grid指定容器采用网格布局grid-template,是CSS属性的简写,用于定义网格中的行、列和分区。counter-increment添加元素编号,请参见第一个示例。.variables-box:before,.variables-box:after{--m:0;盒子阴影:001.5remrgba(0,0,0,0.65);变换原点:calc(var(--p)*100%)calc((1-var(--m))*100%);转换:skewx(calc(var(--i)*var(--s)*(1-2*var(--m))*27deg));背景:线性梯度(calc(var(--s)*(1-2*var(--m))*90deg),HSL(var(--hsl0)),HSL(var(--hsl1)));content:"";}解释:transform-origin设置旋转元素的基础位置(默认:50%50%0)语法:transform-origin:x-axisy-axisz-axis;x轴(定义视图在X轴上的放置位置):left,center,right,length,%y轴(定义视图在Y轴上的放置位置):top,center,bottom,length,%z轴(定义视图在Z轴上的放置位置):length.variables-box:before,.variables-box.variables{grid-row:1/calc(2+2*var(--i));grid-column:calc(1+2*var(--i)*var(--p))/spancalc(1+2*var(--j));}解释:grid-rows网格行属性指定网格中每一行的高度。如:定义一个100像素的标题行,并根据需要添加许多30和60像素的额外高度:div{grid-rows:100px(30px60px);}解释:grid-columnsgrid-columns属性grid列的宽度。例如:在div元素中间添加一个grid行,从右边再添加200px,剩余空间中间再添加一个:div{grid-columns:50%**200px;}.variables-框:在{显示:flex之后;对齐项目:居中;证明内容:居中;字体大小:calc(var(--i)*1.5625em+var(--j)*1.75em);content:attr(data-icon);}.variables-box:nth-of-type(odd){--parity:0;}解释::nth-child(even)选择偶数位置的子元素:nth-child(odd)选择奇数位置的子元素。variables{display:grid;网格模板:repeat(calc(var(--i)+1),2em)/repeat(calc(var(--j)+1),3.5em);对齐-items:center;证明内容:居中;位置:相对;z-索引:1;填充:calc(var(--i)*1.75em)calc(var(--i)*var(--q)*2.05em)0calc(var(--i)*var(--p)*2.05em);颜色:#fff;字体大小:1.25em;字体粗细:400;text-transform:uppercase;}.variables:before{字体大小:calc(var(--i)*2em+1em);字体粗细:500;content:counter(idx,decimal-leading-zero);}Explanation:decimal-leading-zero令牌是一个带前导零的数字(01、02、03等)listStyleType属性:listStyleType属性设置或返回列表项标记设置的类型listStyleType属性:Object.style.listStyleType="*value*"返回listStyleType属性:Object.style.listStyleType.variables:after{--m:1;位置:绝对;顶部:0;右:0;底部:0;左:0;z-index:-1;}第一个显示label.variables-box1{--hsl0:49,100%,54%;--hsl1:33、96%、50%;--idx:0;}第二次显示label.variables-box2{--hsl0:82,81%,52%;--hsl1:104,56%,51%;--idx:1;}第三个显示label.variables-box3{--hsl0:169,50%,44%;--hsl1:191,99%,27%;--idx:2;}四显示tags.variables-box4{--hsl0:332,94%,67%;--hsl1:338、101%、59%;--idx:3;}参考文档1.CSSGrid网格布局教程2.CSS变量技术3.什么是CSS变量?4.CSS变量教程5.MND强烈推荐,如果本文对您有帮助,请点赞关注,搜索《叫我詹躲躲》加入我们的技术群一起学习讨论,一起探索前端边界。