使用CSS和SVG过滤器向SVG图标添加阴影

为什么需要对SVG应用阴影?阴影是一种常见的设计功能,可以帮助图标等元素脱颖而出。它们可以是持久的,也可以应用于不同的状态(例如,:hover,:focus,或:active),以向用户显示交互。阴影发生在现实生活中,因此可以在屏幕上使用它们为元素注入一些生命,并为设计添加一点真实感。 因为我们正在制作列表,有两种主要的方法可以对SVG应用阴影:使用CSSfilter()属性和使用SVG属性,这两种方法都涉及到过滤器!而且,是的,CSS和SVG都有自己的过滤器类型。但这两者之间也有交叉点。例如,CSSfilter可以引用SVG;也就是说,如果我们使用的是内联SVG,而不是CSS中用作背景图像的SVG。 您不能使用的内容:CSSbox-shadow属性。这通常用于阴影,但它遵循元素的矩形外边缘,而不是我们想要的SVG元素的边缘。Michelle Barker给出了一个清晰的解释: 如果您使用的是SVG图标字体,那么总是有text-shadow。这确实会奏效。但是让我们关注前两个,因为它们与大多数用例一致。 ,而且是40%的黑色。下面是一些例子:CodePen Embed Fallback 此浏览器支持数据来自Caniuse,其中包含更多详细信息。数字表示浏览器支持该版本及更高版本的功能。桌面工作的。为了使用SVG过滤器生成阴影,我们使用过滤器原语。SVG中的过滤器原语是一个元素,它将某种图像或图形作为输入,然后在调用时输出该图像或图形。它们有点像图形编辑应用程序中的过滤器,但在代码中,只能在SVG元素中使用。 SVG中有许多不同的过滤器原语。我们要找的是。我将让您通过查看名称来猜测要做什么。 So,类似于我们使用CSS过滤器所做的事情: svg {filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}/pre> …我们可以使用SVG过滤器原语来完成相同的工作。有三个关键属性值得一提,因为它们有助于定义阴影的外观: - dy-这将沿着y轴移动阴影的位置。 - stdDeviation-这将定义阴影模糊的标准偏差操作。我们还可以使用其他属性,例如flood-color用于设置阴影颜色,flood-opacity用于设置阴影的不透明度//codepen.io/anon/embed/xxqdaqN?height=310&;theme id=1&;slug hash=>CodePen嵌入回退 该示例包括三个元素,每个元素都有自己的过滤器原语。使用svg过滤器 svg过滤器非常强大。我们刚刚看了,这是非常有用的,当然,但有这么多,他们可以做(包括Photoshop一样的效果)和子集的东西,我们得到的阴影是广泛的。让我们看看一些,如彩色阴影和插入阴影。 让我们以Twitter徽标的SVG标记为例: We\"re going to need a 元素来实现这些效果。这需要在HTML的元素中。一个元素从来没有直接在浏览器中呈现过 - 它只被用作可以通过SVG中的filter属性或CSS中的url()函数引用的东西。./p> 以下是显示SVG过滤器并将其应用于源图像的语法: ***30***元素意味着将过滤器原语作为子元素。它是一个包含一系列过滤操作的容器,这些过滤操作组合在一起可以产生过滤效果。 这些过滤原语对一个或多个输入执行一个基本的图形操作(例如模糊、移动、填充、组合或扭曲)。它们就像构建块,每个SVG过滤器都可以用来与其他过滤器一起创建效果。***31***是一种常用的过滤器原语,用于添加模糊效果。 假设我们使用***32***定义以下SVG过滤器: ***33***半径在x轴上,但在y轴上没有模糊。以下是结果,有效果和无效果: CodePen Embed Fallback 可以在单个过滤器中使用多个原语。这将创建有趣的效果,但是,您需要使不同的原语相互了解。Bence Szabó用这种方法创建了一组非常酷的模式。 当组合多个过滤器原语时,第一个原语使用原始图形(***34***)作为其图形输入。任何后续的原语都使用前面的过滤效果的结果作为其输入。等等。但是我们可以通过对原始元素使用***35***、***36***和***37***属性来获得一些灵活性。史蒂文·布拉德利(Steven Bradley)对过滤器原语有着出色的研究,可以追溯到2016年,但今天仍然适用。 我们可以使用17个原语今天:

admin_action_{$_REQUEST[‘action’]}

do_action( "admin_action_{$_REQUEST[‘action’]}" )动作钩子::在发送“Action”请求变量时激发。Action Hook: Fires when an ‘action’ request variable is sent.目录锚点:#说明#源码说明(Description)钩子名称的动态部分$_REQUEST['action']引用从GET或POST请求派生的操作。源码(Source)更新版本源码位置使用被使用2.6.0 wp-admin/admin.php:...

日期:2020-09-02 17:44:16 浏览:1127

admin_footer-{$GLOBALS[‘hook_suffix’]}

do_action( "admin_footer-{$GLOBALS[‘hook_suffix’]}", string $hook_suffix )操作挂钩:在默认页脚脚本之后打印脚本或数据。Action Hook: Print scripts or data after the default footer scripts.目录锚点:#说明#参数#源码说明(Description)钩子名的动态部分,$GLOBALS['hook_suffix']引用当前页的全局钩子后缀。参数(Parameters)参数类...

日期:2020-09-02 17:44:20 浏览:1032

customize_save_{$this->id_data[‘base’]}

do_action( "customize_save_{$this->id_data[‘base’]}", WP_Customize_Setting $this )动作钩子::在调用WP_Customize_Setting::save()方法时激发。Action Hook: Fires when the WP_Customize_Setting::save() method is called.目录锚点:#说明#参数#源码说明(Description)钩子名称的动态部分,$this->id_data...

日期:2020-08-15 15:47:24 浏览:775

customize_value_{$this->id_data[‘base’]}

apply_filters( "customize_value_{$this->id_data[‘base’]}", mixed $default )过滤器::过滤未作为主题模式或选项处理的自定义设置值。Filter Hook: Filter a Customize setting value not handled as a theme_mod or option.目录锚点:#说明#参数#源码说明(Description)钩子名称的动态部分,$this->id_date['base'],指的是设置...

日期:2020-08-15 15:47:24 浏览:866

get_comment_author_url

过滤钩子:过滤评论作者的URL。Filter Hook: Filters the comment author’s URL.目录锚点:#源码源码(Source)更新版本源码位置使用被使用 wp-includes/comment-template.php:32610...

日期:2020-08-10 23:06:14 浏览:903

network_admin_edit_{$_GET[‘action’]}

do_action( "network_admin_edit_{$_GET[‘action’]}" )操作挂钩:启动请求的处理程序操作。Action Hook: Fires the requested handler action.目录锚点:#说明#源码说明(Description)钩子名称的动态部分$u GET['action']引用请求的操作的名称。源码(Source)更新版本源码位置使用被使用3.1.0 wp-admin/network/edit.php:3600...

日期:2020-08-02 09:56:09 浏览:848

network_sites_updated_message_{$_GET[‘updated’]}

apply_filters( "network_sites_updated_message_{$_GET[‘updated’]}", string $msg )筛选器挂钩:在网络管理中筛选特定的非默认站点更新消息。Filter Hook: Filters a specific, non-default site-updated message in the Network admin.目录锚点:#说明#参数#源码说明(Description)钩子名称的动态部分$_GET['updated']引用了非默认的...

日期:2020-08-02 09:56:03 浏览:834

pre_wp_is_site_initialized

过滤器::过滤在访问数据库之前是否初始化站点的检查。Filter Hook: Filters the check for whether a site is initialized before the database is accessed.目录锚点:#源码源码(Source)更新版本源码位置使用被使用 wp-includes/ms-site.php:93910...

日期:2020-07-29 10:15:38 浏览:808

WordPress 的SEO 教学:如何在网站中加入关键字(Meta Keywords)与Meta 描述(Meta Description)?

你想在WordPress 中添加关键字和meta 描述吗?关键字和meta 描述使你能够提高网站的SEO。在本文中,我们将向你展示如何在WordPress 中正确添加关键字和meta 描述。为什么要在WordPress 中添加关键字和Meta 描述?关键字和说明让搜寻引擎更了解您的帖子和页面的内容。关键词是人们寻找您发布的内容时,可能会搜索的重要词语或片语。而Meta Description则是对你的页面和文章的简要描述。如果你想要了解更多关于中继标签的资讯,可以参考Google的说明。Meta 关键字和描...

日期:2020-10-03 21:18:25 浏览:1619

谷歌的SEO是什么

SEO (Search Engine Optimization)中文是搜寻引擎最佳化,意思近于「关键字自然排序」、「网站排名优化」。简言之,SEO是以搜索引擎(如Google、Bing)为曝光媒体的行销手法。例如搜寻「wordpress教学」,会看到本站的「WordPress教学:12个课程…」排行Google第一:关键字:wordpress教学、wordpress课程…若搜寻「网站架设」,则会看到另一个网页排名第1:关键字:网站架设、架站…以上两个网页,每月从搜寻引擎导入自然流量,达2万4千:每月「有机搜...

日期:2020-10-30 17:23:57 浏览:1262