”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > CSS打造酷炫幽灵按钮

CSS打造酷炫幽灵按钮

发布于2025-04-13
浏览:911

[2

最近,我寻求编码灵感,缺乏艺术才能。我的方法? 复制他人的视觉吸引力创作,重点关注清洁,简洁的代码。 这些糖果幽灵按钮引起了我的注意!CSS-ing Candy Ghost Buttons

它们似乎非常适合快速项目。 在十五分钟内,我在铬中实现了这一目标:

该技术值得共享。 本文详细介绍了我的过程并探讨了替代方法。

初始设置

一个简单的按钮元素形成基础,并入emoji insertion的

属性,并在样式属性中的停止列表。 [2

完成后完成,我发现了野生动物园的重大剪辑到文本限制。 它在按钮元素上失败,

display:flex

(以及可能的网格)元素以及子元素文本。 因此,此处描述的技术是不可能的。解决方法涉及在按钮中嵌套,并确保它覆盖父框架。 对于缺少物理Apple设备访问的Linux用户,我建议Epiphany(谢谢,Brian!)。 CSS利用图标的pseudo-element和文本/图标对齐的网格布局。 边界,填充,边界 - 划线, - 对角梯度的slist

boo!
在上述代码上进行澄清:

baccking-origin baccking-clip 都设置为背景-origin 定位 background-position s 0,0点在指定框的上左上角,确定 cropppivent-size

的引用。

border-box 确保梯度跨越整个边框框。 默认 padding-box 此方法采用三个掩码层和合成。 在[链接到速成课程]中可以找到蒙版复合的复习。 仅在CSS面膜层中alpha通道很重要。 RGB频道不会影响结果。 我们从两层开始:一个完全不透明的层覆盖边框框(alpha = 1),第二层也完全不透明,层仅限于填充盒(alpha = 1 in padding-box中,在室外0)。

将布局框视为嵌套矩形。 底层在边界盒上完全不透明。顶层在填充框中是不透明的,并且在边框区域透明。 转角圆形由
button {
  display: grid;
  grid-auto-flow: column;
  grid-gap: .5em;
  border: solid .25em transparent;
  padding: 1em 1.5em;
  border-radius: 9em;
  background: 
    linear-gradient(to right bottom, var(--slist)) 
      border-box;
  font: 700 1.5em/ 1.25 ubuntu, sans-serif;
  text-transform: uppercase;

  &::after { content: attr(data-ico) }
}
代码:

按钮 { / *相同的基础样式 */ -Full:线性级别(红色0 0); -webkit mask:var( - 完整)填充框,var( - 完整); -webkit面具复合材料:XOR; 蒙版:var( - 完整)填充盒排除,var( - 完整); } 蒙版复合,非标准版本已覆盖。 这会产生一个渐变边框,但缺乏文本。 添加第三个掩码层,仅限于文本(带有透明的文本),并与先前的结果进行置换,从而添加了文本。 但是,由于非标准的bask-clip ,这是特定于chrome的。 a 按钮 { / *相同的基础样式 */ @supports(-webkit mask-clip:text){ -webkit-text-fill-color:透明; -Full:线性级别(红色0 0); -webkit mask:var( - 完整)文本,var( - 完整)填充盒,var( - full); -webkit面具复合材料:XOR; } } 这是一种简单的方法,但是它对非标准功能的依赖限制了其浏览器兼容性。 让我们探索替代方案,更广泛支持的方法。 替代方法:伪元素和边界图像解决方案

额外的伪元素解决方案通过将背景剪切到文本区域并使用绝对定位的

pseudo-Element添加渐变边框来避免掩盖。 边框图像解决方案虽然更简单,但却具有

border-radius

的局限性。 这些方法比铬特异性解决方案提供了更好的跨浏览器兼容性。 原始文章中提供了这些方法的更多详细信息和代码示例。 也在原始文章中也描述的混合解决方案提供了另一种方法,但具有有关背景交互的局限性。 每种方法都具有其优点和劣势,具体取决于所需的跨座支持水平和特定的设计要求。

最新教程 更多>
  • CSS强类型语言解析
    CSS强类型语言解析
    您可以通过其强度或弱输入的方式对编程语言进行分类的方式之一。在这里,“键入”意味着是否在编译时已知变量。一个例子是一个场景,将整数(1)添加到包含整数(“ 1”)的字符串: result = 1 "1";包含整数的字符串可能是由带有许多运动部件的复杂逻辑套件无意间生成的。它也可以是故意从单个真理...
    编程 发布于2025-05-09
  • 如何使用Regex在PHP中有效地提取括号内的文本
    如何使用Regex在PHP中有效地提取括号内的文本
    php:在括号内提取文本在处理括号内的文本时,找到最有效的解决方案是必不可少的。一种方法是利用PHP的字符串操作函数,如下所示: 作为替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式来搜索特...
    编程 发布于2025-05-09
  • 如何在Chrome中居中选择框文本?
    如何在Chrome中居中选择框文本?
    选择框的文本对齐:局部chrome-inly-ly-ly-lyly solument 您可能希望将文本中心集中在选择框中,以获取优化的原因或提高可访问性。但是,在CSS中的选择元素中手动添加一个文本 - 对属性可能无法正常工作。初始尝试 state)</option> < op...
    编程 发布于2025-05-09
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php $xml = simplexml_load_file($file); foreach ($xml->Var[0]->attributes() as $attributeName => $attributeValue) { echo $attributeName,...
    编程 发布于2025-05-09
  • 用户本地时间格式及时区偏移显示指南
    用户本地时间格式及时区偏移显示指南
    在用户的语言环境格式中显示日期/时间,并使用时间偏移在向最终用户展示日期和时间时,以其localzone and格式显示它们至关重要。这确保了不同地理位置的清晰度和无缝用户体验。以下是使用JavaScript实现此目的的方法。方法:推荐方法是处理客户端的Javascript中的日期/时间格式化和时...
    编程 发布于2025-05-09
  • 如何简化PHP中的JSON解析以获取多维阵列?
    如何简化PHP中的JSON解析以获取多维阵列?
    php 试图在PHP中解析JSON数据的JSON可能具有挑战性,尤其是在处理多维数组时。 To simplify the process, it's recommended to parse the JSON as an array rather than an object.To do...
    编程 发布于2025-05-09
  • 如何在Java的全屏独家模式下处理用户输入?
    如何在Java的全屏独家模式下处理用户输入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    编程 发布于2025-05-09
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    The Mystery of "Broken" Two-Phase Template Instantiation in Microsoft Visual C Problem Statement:Users commonly express concerns that Micro...
    编程 发布于2025-05-09
  • Python高效去除文本中HTML标签方法
    Python高效去除文本中HTML标签方法
    在Python中剥离HTML标签,以获取原始的文本表示Achieving Text-Only Extraction with Python's MLStripperTo streamline the stripping process, the Python standard librar...
    编程 发布于2025-05-09
  • 如何有效地选择熊猫数据框中的列?
    如何有效地选择熊猫数据框中的列?
    在处理数据操作任务时,在Pandas DataFrames 中选择列时,选择特定列的必要条件是必要的。在Pandas中,选择列的各种选项。选项1:使用列名 如果已知列索引,请使用ILOC函数选择它们。请注意,python索引基于零。 df1 = df.iloc [:,0:2]#使用索引0和1 c...
    编程 发布于2025-05-09
  • 解决Spring Security 4.1及以上版本CORS问题指南
    解决Spring Security 4.1及以上版本CORS问题指南
    弹簧安全性cors filter:故障排除常见问题 在将Spring Security集成到现有项目中时,您可能会遇到与CORS相关的错误,如果像“访问Control-allo-allow-Origin”之类的标头,则无法设置在响应中。为了解决此问题,您可以实现自定义过滤器,例如代码段中的MyFi...
    编程 发布于2025-05-09
  • 如何使用Python有效地以相反顺序读取大型文件?
    如何使用Python有效地以相反顺序读取大型文件?
    在python 反向行读取器生成器 == ord('\ n'): 缓冲区=缓冲区[:-1] 剩余_size- = buf_size lines = buffer.split('\ n'....
    编程 发布于2025-05-09
  • 如何使用替换指令在GO MOD中解析模块路径差异?
    如何使用替换指令在GO MOD中解析模块路径差异?
    在使用GO MOD时,在GO MOD 中克服模块路径差异时,可能会遇到冲突,其中3个Party Package将另一个PAXPANCE带有导入式套件之间的另一个软件包,并在导入式套件之间导入另一个软件包。如回声消息所证明的那样: go.etcd.io/bbolt [&&&&&&&&&&&&&&&&...
    编程 发布于2025-05-09
  • Android如何向PHP服务器发送POST数据?
    Android如何向PHP服务器发送POST数据?
    在android apache httpclient(已弃用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    编程 发布于2025-05-09
  • 使用jQuery如何有效修改":after"伪元素的CSS属性?
    使用jQuery如何有效修改":after"伪元素的CSS属性?
    在jquery中了解伪元素的限制:访问“ selector 尝试修改“:”选择器的CSS属性时,您可能会遇到困难。 This is because pseudo-elements are not part of the DOM (Document Object Model) and are th...
    编程 发布于2025-05-09

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3