calc()方法的使用

news2025/2/24 10:56:36

calc实现css中动态计算

环境
根据元素高度的变化,动态控制padding值
<marquee
                        :name="'up' + index"
                        behavior="scroll"
                        scrolldelay="30"
                        direction="up"
                        v-else-if="item.scrollPocition === 3 ? true : false"
                        :style="{
                            '--positionTop': item.X,
                            '--positionLeft': item.Y,
                            '--textHeight': item.FontSizeFrom,
                            '--height': item.H,
                            'letter-spacing': item.LetterSpacing + 'px',
                            'line-height': item.LineHeight,
                            width: item.W + 'px',
                            height: item.H + 'px',
                            left: item.TextLeft + 'px',
                            color: item.sketchBgColor,
                            'text-indent': item.TextIndent + 'px',
                            'font-size': item.FontSizeFrom + 'px',
                            'font-family': item.FontFamily,
                        }"
                        v-bind:class="[item.bold ? 'bold' : '', item.italic ? 'italic' : '', item.underline ? 'underline' : '', , getClass2, getClass1, 'classPosition']"
                    >
                        <p :class="['classAbsolute']">{{ item.textarea1 }}</p>
                    </marquee>

通过--height来绑定动态的高度

.text_bottom {
    // background: blue;
    padding-top: calc((var(--height) * 1px - var(--textHeight) * 1px))  ;
    // padding-top: calc( var(--height) * 1px );
    // padding-top: calc(#{var(—height)} * 1px);
    box-sizing: border-box;
}

用法

  • 声明css变量的时候,变量名前面要加两根连词线(--)
     

  • var()函数用于读取变量。
    var()函数还可以使用第二个参数,表示变量的默认值。如果该变量不存在,就会使用这个默认值。
    第二个参数不处理内部的逗号或空格,都视作参数的一部分。

1.全局/局部变量

 :root伪类可以看做是一个全局作用域,在里面声明的变量,他下面的所有选择器都可以拿到

    :root { --color: blue; }
    .box{color: var(--color)}

 

 

2.局部变量

    .box{
        --color: red;
        color: var(--color);
    }

 3.var()函数的第二个参数默认值

    .box{
        --color: red;
        color: var(--bg,pink);
    }

 4.结合CSS3 calc()一起计算

p{
  --size: 20;   
  font-size: calc(var(--size) * 1px);//20px
}

 

  CSS变量的继承(就近原则)

<div class="box" id="alert">张三</div>

    :root { --color: blue; }
    div { --color: green; }
    #alert { --color: red; }
    * { color: var(--color); }

注意

当存在多个同样名称的变量时候,变量的覆盖规则由CSS选择器的权重决定的,但并无!important这种用法。

量的取值采用就近原则

如果变量值是数值,不能与数值单位直接连用。必须使用calc()函数,将它们连接。

.foo {
  --gap: 20;
  /* 无效 */
  margin-top: var(--gap)px;
}
.foo {
  --gap: 20;
  /* 有效 */
  margin-top: calc(var(--gap) * 1px);
}

 如果变量值带有单位,就不能写成字符串。

/* 无效 */
.foo {
  --foo: '20px';
  font-size: var(--foo);
}
 
/* 有效 */
.foo {
  --foo: 20px;
  font-size: var(--foo);
}

CSS属性名是不可以使用变量的。例如下面写法是错误的:

body {
    --bc: background-color;    
    var(--bc): #369;
}

css变量是存在缺省值,只要定义正确,里面的值不对,结果以缺省值显示

body {
  --color: 20px;
  background-color: #369;
  background-color: var(--color, #cd0000);/*背景色为:transparent*/
}

 css变量默认尾部是有空格的

p{
  --size: 20;   
  font-size: var(--size)px;//等同于font-size:20 px;这里将使用元素默认的大小。这里可以结合上面例子calc()使用。
}

 

var可以用v-bind代替,v-bind 可以完成var的功能

原文章地址:css定义变量(定义:--aa;使用:var(--aa)、calc()计算样式函数_muzidigbig的博客-CSDN博客_css中.aa

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/156379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

核心乐理---五线谱基础

音符 音符的长度 音符的长度都是相对的定义 一般来说讲全音符设为一拍&#xff0c;但如果将二分音符设为一拍的话&#xff0c;全音符就是两拍 附点音符 可以在音符后跟上一个小点来改变音符的长度&#xff0c;如果一个音符后面跟了n个原点&#xff0c;它的长度就会变为原来的…

【学习记录】阿里云服务器+宝塔

环境&#xff1a;阿里云服务器&#xff0c;linux Centos系统 一、安装宝塔 参考链接&#xff1a;阿里云 ECS 服务器入门使用宝塔安装使用 1、进入云服务器控制台&#xff0c;打开远程连接 2、初次使用&#xff0c;可重置登录密码和连接密码 这是远程连接时需要输入的密码 这…

测试开发基础 | 计算机网络篇(二):物理层与数据链路层

计算机网络知识是自动化测试等技术基础&#xff0c;也是测试面试必考题目。霍格沃兹测试学院特别策划了本系列文章&#xff0c;将带大家一步步夯实计算机网络的基础知识。一、物理层由于物理层知识在互联网软件研发工作中用到的并不多&#xff0c;所以可以仅做一个简单的了解。…

Prompt: No !!!

Prompt is Not Good. Prompt 这个方法实际上并不是很好 Prompt 可以是in-context learning的一种。prompt-based learning has taken NLP by storm!! prompt-based的方法在NLP中引起风暴。但&#xff0c;Prompt-based的方法实际上不太行&#xff1a; 1. Inefficiency: The pro…

基于python的企业编码生成系统 (完整的代码+项目说明)

《企业编码生成系统》程序使用说明 在PyCharm中运行《企业编码生成系统》即可进入如图1所示的系统主界面。在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时&#xff0c;只需要输入对应的数字即可。 图1 系统主界面 具体的操作步骤如下&#xff1a;…

匿名内部类的理解(java + Android)

是不是有同学跟我一样学了知识&#xff0c;不使用&#xff0c;一段时间就忘了&#xff1f; 今天说说java的匿名内部类这个东西&#xff0c;今天就因为这个东西被程序媛欺负了&#xff0c;我心里难受啊。 匿名内部类的官方说法特别不容易理解&#xff0c;是从"有没有名字…

全网惟一面向软件测试人员的Python基础教程-在Python中如何把列表当成队列来进行使用?

全网惟一面向软件测试人员的Python基础教程 起点&#xff1a;《python软件测试实战宝典》介绍 第一章 为什么软件测试人员要学习Python 第二章 学Python之前要搞懂的道理 第三章 你知道Python代码是怎样运行的吗&#xff1f; 第四章 Python数据类型中有那些故事呢&#xff1f;…

Linux的SOCKET编程详解(转载)

Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行&#xff0c;为保证两个相互通信的进程之间既互不干扰又协调一致工作&#xff0c;操作系统为进程通信提供了相应设施&#xff0c;如UNIX BSD有&#x…

大漠插件最新版7.2302

工具名称:大漠插件最新版7.2302工具简介:/大漠插件v7.2302更新时间2023年1月9日更新内容1. 驱动支持win10(19045)和win11(22621)2. 综合工具增加功能,在定义文字输入框激活时,按下alt会输入最后一次输入的文字/【插件特色】1. 文字识别 领域&#xff0c;目前插件界&#xff0c;…

B. Gardener and the Array(贪心)

传送门题意&#xff1a;给你n个数&#xff0c;问你是否存在不同的两个子区间&#xff0c;使这两个子区间的或结果相同。注&#xff1a;因为数据范围太大&#xff0c;所以每个数都由他的二进制数表示&#xff1a;每一行第一个数m表示有几个二进制数&#xff0c;后面m个数代表2的…

陪诊小程序开发,谁更需要陪诊服务

我们去过医院的都很清楚&#xff0c;医院的看病流程是很繁琐&#xff0c;医院不仅大&#xff0c;科室还划分的又细又多。对于一些在外打拼整天忙的顾不得看病就医的打工人&#xff0c;还有一些跟随子女去异地生活养老就医的老年人&#xff0c;还有一些没人陪伴独居生活的年轻人…

89、【栈与队列】leetcode ——101. 对称二叉树:先序递归与非递归+层次遍历(C++版本)

题目描述 原题链接&#xff1a;101. 对称二叉树 解题思路 一、先序遍历 1、递归 设置两个指针进行遍历对比&#xff0c;分别指向互相对称位置&#xff1a;左子树的左孩子与右子树的右孩子互对称&#xff0c;左子树的右孩子与右子树的左孩子互对称。 每次遍历前先判定对称位…

【源码解析】Springboot整合ElasticSearch客户端的源码解析

Springboot整合ElasticSearch客户端的源码解析 ElasticSearch版本 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId><version>2.2.5.RELEASE</version>&…

[蓝桥杯 2022 国 A] 环境治理(C++,Floyd,二分法)

题目描述 LQ 国拥有 nnn 个城市&#xff0c;从 000 到 n−1n - 1n−1 编号&#xff0c;这 nnn 个城市两两之间都有且仅有一条双向道路连接&#xff0c;这意味着任意两个城市之间都是可达的。每条道路都有一个属性 DDD&#xff0c;表示这条道路的灰尘度。当从一个城市 A 前往另…

linux 中用rancher k8s 部署springboot项目

前期条件: linux--》ECS服务器: rancher集群: 操作流程: 1、制作简单springboot项目使用docker生成镜像项目端口:8080并写一个测试controller

Go 1.19.3 interface原理简析

interface 接口&#xff0c;分为有方法签名的接口和空接口 interface{fn()…} 有方法签名的接口&#xff0c;底层运行时结构 iface iface src/runtime/runtime2.go type iface struct {tab *itab // 接口类型itab, i-table的缩写data unsafe.Pointer // 接口值指针…

互联网应用的架构演变之路

文章目录单体应用架构垂直应用架构分布式架构SOA架构微服务架构SOA架构&微服务架构对比分布式应用开发解决方案随着互联网的发展&#xff0c;网站的应用也不断扩大&#xff0c;从而导致系统架构不断的进行变化&#xff0c;从互联网早起到现在&#xff0c;系统架构大致经历了…

用Python画一只小兔子,祝您新年前途似锦,大展宏图

用Python画一只小兔子&#xff0c;祝您新年前途似锦&#xff0c;大展宏图 兔年到了&#xff0c;祝大家新年前途似锦&#xff01;大展宏图&#xff01; 2021牛年&#xff0c;我用Python画了一头金牛&#xff0c;参考&#xff1a;Python画金牛 2022虎年&#xff0c;我用Python画…

MarkDown语法 + Typora笔记本

目录 一、多级标题 二、有序列表 三、无序列表 四、任务列表 五、行内代码 六、代码块 七、插入表格 八、插入图片 一、多级标题 1、语法 一级标题&#xff1a;# 二级标题&#xff1a;## 三级标题&#xff1a;### 四级标题&#xff1a;#### 五级标题&#xff1a;…

stackoverflow网站左下角弹框点击我接收所有cookie没反应怎么解决?

问题描述&#xff1a;打开stackoverflow网页后左下角总是有一个弹窗&#xff0c;点击接受所有cookie没有反应。 产生原因&#xff1a;因为是外网&#xff0c;因此点击按钮触发的时候被拦截了。 微软自带的edge浏览器&#xff1a; 打开浏览器进入扩展 选择管理扩展 获取Micro…