Vue3 中组件传递 + css 变量的组合

news/2024/9/22 14:32:59 标签: css, 前端

文章目录

  • 需求
  • 效果如下图所示
  • 代码逻辑
  • 代码
  • 参考


需求

开发一个箭头组件,根据父组件传递的 props 来修改 css 的颜色

效果如下图所示

在这里插入图片描述


代码逻辑

在这里插入图片描述


代码

父组件:

<Arrow color="red" />

子组件:

<template>
  <div 
    class="arrow" 
    :style="{ 
      '--arrow-color': color, 
      '--arrow-width': `${width}px`,
      '--arrow-rotation': `${rotation}deg`
    }">
  </div>
</template>

<script lang='ts' setup>
import { defineProps } from 'vue';

const props = defineProps({
  color: {
    type: String,
    default: 'black'
  },
  width: {
    type: Number,
    default: 30
  },
  rotation: {
    type: Number,
    default: 0  // 旋转角度,默认不旋转
  }
});
</script>

<style scoped>css">
.arrow {
  display: inline-block;
  position: relative;
  margin: 10px;
  width: var(--arrow-width);
  transform: rotate(var(--arrow-rotation));  /* 添加旋转样式 */
}

.arrow::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  width: var(--arrow-width);
  border-top: 2px dotted var(--arrow-color);
  transform: translateY(-50%);
}

.arrow::after {
  content: '';
  position: absolute;
  top: 50%;
  left: calc(var(--arrow-width) - 8px);
  width: 0;
  height: 0;
  border-left: 10px solid var(--arrow-color);
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  transform: translateY(-50%);
}
</style>

参考

1. 使用 CSS 自定义属性(变量) https://developer.mozilla.org/zh-CN/docs/Web/CSS/Using_CSS_custom_properties


http://www.niftyadmin.cn/n/5670421.html

相关文章

国产Linux:OpenEuler溯源

OpenEuler 是一个开源的、面向多样性计算的操作系统&#xff0c;由华为公司发起并捐赠给开放原子开源基金会。它支持多种计算场景&#xff0c;包括服务器、云计算、边缘计算和嵌入式设备。OpenEuler 系统以其开源性、安全性、高性能和良好的生态支持而受到关注&#xff0c;被视…

【C++二叉树】二叉树的前序遍历、中序遍历、后序遍历递归与非递归实现

1.二叉树的前序遍历 144. 二叉树的前序遍历 - 力扣&#xff08;LeetCode&#xff09; 前序遍历方式&#xff1a;根-左子树-右子树。 递归实现&#xff1a; 要传一个子函数来实先递归&#xff0c;原因是原函数返回值为vector&#xff0c;在原函数迭代&#xff0c;返回值就难…

试图讲清楚spring的依赖注入

首先声明&#xff0c;依赖注入和反转容器是密不可分的&#xff0c;二者相互依存&#xff0c;依赖注入是实现反转控制的一种方式&#xff0c;允许对象在创建时将其依赖项提供给它&#xff0c;而不是在内部创建这些依赖项。这样可以增强代码的可测试性和可维护性。 spring依赖注入…

017_FEA_CSG_in_Matlab新的统一有限元分析工作流之2D几何

Matlab新的统一有限元分析工作流 从2023a开始&#xff0c;Matlab提供了一个统一有限元分析工作流&#xff08;UFEAW&#xff0c;unified finite element analysis workflow&#xff09;。 这个新的工作留提供一个统一的接口来求解三类问题&#xff0c;并且可以用同一套数据随…

使用vite+react+ts+Ant Design开发后台管理项目(一)

前言 本文将引导开发者从零基础开始&#xff0c;运用、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈&#xff0c;构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导&#xff0c;文章旨在为开发者揭示如何利用这些技术工…

无线麦克风哪个好,麦克风哪个品牌音质最好,领夹麦克风推荐

​无线领夹麦克风作为直播、视频录制等场景必备的设备之一&#xff0c;用起来很方便&#xff0c;功能多样且易于操作&#xff0c;在音频设备领域占据着重要地位。但当前市场乱象较为严重&#xff0c;有许多商家纷纷打起价格战&#xff0c;忽视了产品质量&#xff0c;造成耐用性…

C++ Primer:模板与泛型编程

1. 模板函数 在C中&#xff0c;模板与泛型编程是一种强大的编程范式&#xff0c;它允许程序员编写与类型无关的代码。这种类型无关的代码在编译时会被实例化&#xff0c;以支持特定的数据类型。下面是根据您提出的点&#xff0c;对模板函数及其相关概念的一个整理。 模板函数…

动手学深度学习(pytorch土堆)-05-1神经网络

Neural network 以下是 torch.nn 库中各个组件的详细分类&#xff1a; 1. 容器 (Containers) torch.nn.Sequential: 顺序容器&#xff0c;用于将层按顺序堆叠在一起。torch.nn.ModuleList: 模块列表&#xff0c;用于存储多个子模块。torch.nn.ModuleDict: 模块字典&#xff…