我正在做一个有联系我们按钮的项目.该按钮需要状态指示.我已经阅读了以下article个在化身图像上显示状态指示的内容.最酷的事情是dat有一个完全透明的边界(它还切割了位于指示器边界下的图像部分).

我想完成同样的事情,但使用按钮元素,但我不知道如何做到这一点.

我的代码的简单版本:

button {
  border-radius: 50%;
  width: fit-content;
  aspect-ratio: 1;
  border: none;
  background-color: purple;
  padding: 1rem;
}
<button>
    <img src="chat.svg" width="50px" />
</button>

我试图将标签和类更改为与我的文档对应的标签和类,但它把整个事情搞砸了.我发现面具属性不适用于图像以外的任何其他东西(如果我是正确的).我不使用任何图像,所以这使得它必须理解并找到替代方案.

推荐答案

该代码旨在处理图像,但对于按钮,我们可以更容易地处理

button {
  --g: 5px;  /* gap */
  --r: 20px; /* circle size*/

  font-size: 30px;
  padding: .5em 1em;
  border-radius: .25em;
  border: none;
  background: 
   radial-gradient(calc(var(--r)/2 + var(--g)) at 100% 100%,
   #0000 95%,red);
  border-image:
    radial-gradient(50% 50%,blue 95%,#0000) 
    100%/0 var(--r) var(--r) 0/
    0 calc(var(--r)/2) calc(var(--r)/2) 0;
}
<button>Button</button>

如果您想了解border-image语法,请阅读以下内容:https://www.smashingmagazine.com/2024/01/css-border-image-property/

Html相关问答推荐

当表头包含特殊字符时,R Quarto发布的HTML表中不必要的大列宽

电话号码验证器(Angular )

只有一行上有溢出的CSS网格

损坏的可点击html邮箱签名

在css嵌套 Select 器中,尾随的`&;‘是什么意思?

首字下沉非字母字符

在一行中对齐文本和图标

为什么我得不到有错误的字段?迈克尔·哈特尔教程.7.3.3

文本css后面未显示背景 colored颜色

(HTML框架标签)点击后目标框架将不再工作

按钮悬停效果不影响按钮内的图标

我如何使用 html 在表格的单元格内实现下面显示的背景 colored颜色 加载器(请判断设计参考的图像链接)

CSS flex:0 0 auto创建了1像素的间隙

如何将两个平行 div 的页面内的表格居中?

使用 calc 函数设置字体大小时 Flexbox 项目重叠

使用图像自定义 CSS 网格边框

如何在滚动行中显示一张图片和下一张图片的一半?

为四开本网站主页添加背景图片

样式不适用于来自 tailwindcss 的网络

Angular Material Hide Password 在输入时切换