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

CSS打造酷炫幽灵按钮

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

[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

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

最新教程 更多>
  • 如何使用Depimal.parse()中的指数表示法中的数字?
    如何使用Depimal.parse()中的指数表示法中的数字?
    在尝试使用Decimal.parse(“ 1.2345e-02”中的指数符号表示法表示的字符串时,您可能会遇到错误。这是因为默认解析方法无法识别指数符号。 成功解析这样的字符串,您需要明确指定它代表浮点数。您可以使用numbersTyles.Float样式进行此操作,如下所示:[&& && && ...
    编程 发布于2025-07-17
  • 如何使用Python理解有效地创建字典?
    如何使用Python理解有效地创建字典?
    在python中,词典综合提供了一种生成新词典的简洁方法。尽管它们与列表综合相似,但存在一些显着差异。与问题所暗示的不同,您无法为钥匙创建字典理解。您必须明确指定键和值。 For example:d = {n: n**2 for n in range(5)}This creates a dicti...
    编程 发布于2025-07-17
  • 在PHP中如何高效检测空数组?
    在PHP中如何高效检测空数组?
    在PHP 中检查一个空数组可以通过各种方法在PHP中确定一个空数组。如果需要验证任何数组元素的存在,则PHP的松散键入允许对数组本身进行直接评估:一种更严格的方法涉及使用count()函数: if(count(count($ playerList)=== 0){ //列表为空。 } 对...
    编程 发布于2025-07-17
  • 如何从Python中的字符串中删除表情符号:固定常见错误的初学者指南?
    如何从Python中的字符串中删除表情符号:固定常见错误的初学者指南?
    从python import codecs import codecs import codecs 导入 text = codecs.decode('这狗\ u0001f602'.encode('utf-8'),'utf-8') 印刷(文字)#带有...
    编程 发布于2025-07-17
  • 如何正确使用与PDO参数的查询一样?
    如何正确使用与PDO参数的查询一样?
    在pdo 中使用类似QUERIES在PDO中的Queries时,您可能会遇到类似疑问中描述的问题:此查询也可能不会返回结果,即使$ var1和$ var2包含有效的搜索词。错误在于不正确包含%符号。通过将变量包含在$ params数组中的%符号中,您确保将%字符正确替换到查询中。没有此修改,PDO...
    编程 发布于2025-07-17
  • 左连接为何在右表WHERE子句过滤时像内连接?
    左连接为何在右表WHERE子句过滤时像内连接?
    左JOIN CONUNDRUM:WITCHING小时在数据库Wizard的领域中变成内在的加入很有趣,当将c.foobar条件放置在上面的Where子句中时,据说左联接似乎会转换为内部连接。仅当满足A.Foo和C.Foobar标准时,才会返回结果。为什么要变形?关键在于其中的子句。当左联接的右侧值...
    编程 发布于2025-07-17
  • 为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    为什么PHP的DateTime :: Modify('+1个月')会产生意外的结果?
    使用php dateTime修改月份:发现预期的行为在使用PHP的DateTime类时,添加或减去几个月可能并不总是会产生预期的结果。正如文档所警告的那样,“当心”这些操作的“不像看起来那样直观。 ; $ date->修改('1个月'); //前进1个月 echo $ date->...
    编程 发布于2025-07-17
  • 为什么我的CSS背景图像出现?
    为什么我的CSS背景图像出现?
    故障排除:CSS背景图像未出现 ,您的背景图像尽管遵循教程说明,但您的背景图像仍未加载。图像和样式表位于相同的目录中,但背景仍然是空白的白色帆布。而不是不弃用的,您已经使用了CSS样式: bockent {背景:封闭图像文件名:背景图:url(nickcage.jpg); 如果您的html,css...
    编程 发布于2025-07-17
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-07-17
  • `console.log`显示修改后对象值异常的原因
    `console.log`显示修改后对象值异常的原因
    foo = [{id:1},{id:2},{id:3},{id:4},{id:id:5},],]; console.log('foo1',foo,foo.length); foo.splice(2,1); console.log('foo2', foo, foo....
    编程 发布于2025-07-17
  • C++成员函数指针正确传递方法
    C++成员函数指针正确传递方法
    如何将成员函数置于c [&& && && && && && && && && && &&&&&&&&&&&&&&&&&&&&&&&华仪的函数时,在接受成员函数指针的函数时,要在函数上既要提供指针又可以提供指针和指针到函数的函数。需要具有一定签名的功能指针。要通过成员函数,您需要同时提供对象指针(此...
    编程 发布于2025-07-17
  • 编译器报错“usr/bin/ld: cannot find -l”解决方法
    编译器报错“usr/bin/ld: cannot find -l”解决方法
    错误:“ usr/bin/ld:找不到-l “ 此错误表明链接器在链接您的可执行文件时无法找到指定的库。为了解决此问题,我们将深入研究如何指定库路径并将链接引导到正确位置的详细信息。添加库搜索路径的一个可能的原因是,此错误是您的makefile中缺少库搜索路径。要解决它,您可以在链接器命令中添加...
    编程 发布于2025-07-17
  • 如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在“ dd/mm/yyyy hh:mm:mm:ss.ss”格式“ gormat 解决方案: args)抛出异常{ 日历cal = calendar.getInstance(); SimpleDateFormat SDF =新的SimpleDateFormat(“...
    编程 发布于2025-07-17
  • C++中如何将独占指针作为函数或构造函数参数传递?
    C++中如何将独占指针作为函数或构造函数参数传递?
    在构造函数和函数中将唯一的指数管理为参数 unique pointers( unique_ptr [2启示。通过值: base(std :: simelor_ptr n) :next(std :: move(n)){} 此方法将唯一指针的所有权转移到函数/对象。指针的内容被移至功能中,在操作...
    编程 发布于2025-07-17
  • Python元类工作原理及类创建与定制
    Python元类工作原理及类创建与定制
    python中的metaclasses是什么? Metaclasses负责在Python中创建类对象。就像类创建实例一样,元类也创建类。他们提供了对类创建过程的控制层,允许自定义类行为和属性。在Python中理解类作为对象的概念,类是描述用于创建新实例或对象的蓝图的对象。这意味着类本身是使用类关...
    编程 发布于2025-07-17

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

Copyright© 2022 湘ICP备2022001581号-3