将 Font Awesome 集成到 Kendo UI CSS 中

Posted

技术标签:

【中文标题】将 Font Awesome 集成到 Kendo UI CSS 中【英文标题】:Integrating FontAwesome into KendoUI CSS 【发布时间】:2017-09-05 20:45:33 【问题描述】:

我正在开发一个使用 ASP.NET MVC 和 Kendo UI 构建的网站。我正在尝试将自定义图标添加到显示在 Kendo UI 网格中的按钮,但我被卡住了。

这是网格中设置按钮的代码:

command.Custom("copy")
    .Text(" ")
    .Click("copyNAddEvent")
    .htmlAttributes(new  @class = "copy", title = "Copy this event" );

这是该按钮的 CSS:

.k-grid .k-button.copy
    min-width: 40px;

这是我需要的 FontAwesome CSS(包含在项目中)中的类:

fa fa-files-o

我不擅长 CSS,看起来当您使用 Kendo 类时,它会创建一个带有图标的跨度。无论如何,我更喜欢 FA 图标,希望有人能指出我正确的方向。

【问题讨论】:

我刚刚发布了一个答案,但再看一遍我想知道为什么不将fa fa-files-o 类添加到按钮? 【参考方案1】:

看起来您正在使用 MVC 包装器。在这种情况下,我所做的是使用列模板。

客户端模板包含相关代码 - 带有引导按钮的锚标记和用于 fontawesome 图标的 <i/>。如果需要,我可以在右侧添加“编辑”之类的文本。

请注意,这是剑道网格上的编辑按钮,因此我在锚点上包含 k-grid-edit 类,以便剑道执行编辑操作。还有其他用于标准网格操作的类,例如 k-grid-add、k-grid-delete、k-grid-excel 等。对于自定义内容,您可以使用自己的选择器或将 onclick 添加到锚点并删除不需要的 k -网格编辑。

.Columns(column =>

    column.Template(t =>  ).Title("Edit").Width(10)
        .HtmlAttributes(new  style = "text-align: center;" )
        .HeaderHtmlAttributes(new  style = "text-align:center;", title = "Edit" )
        .ClientTemplate(@"<a class='btn btn-info btn-xs k-grid-edit' title='Edit this item.'><i class='fa fa-edit'></i></a>");

使用这种技术,您将看不到 Kendo 的默认图标 - 只是 fa。

【讨论】:

现在问题来了。如果我想根据一些 Razor Syntax If 语句隐藏客户端模板上的按钮。我该怎么做呢 剑道有它自己的hash syntax。【参考方案2】:

您可以使用为该图标提供的 font awesome unicode 并将其放在 after psuedo 元素中来设置它,就像 font awesome 将其图标放在元素上一样。查看图标详细信息时可以找到 unicode。这是 fa-files-o 之一:http://fontawesome.io/icon/files-o/

.k-grid .k-button.copy:after 
    content: '\f0c5'
    font-family: FontAwesome;

【讨论】:

谢谢伙计,这太棒了。我也有这个专栏的“编辑”和“删除”按钮。我想对那些使用相同的东西。我尝试了您的代码,只是将“复制”更改为“编辑”和“删除”,并指向正确的图标,但剑道默认图标也会显示出来。您知道如何摆脱默认图标吗? 您需要进入浏览器检查器并查看图标的来源,然后将其隐藏或用 css 覆盖。 是的,背景图片。这些字形图标对我来说是个谜。你把我带到了我需要去的地方,疯狂的道具!【参考方案3】:

我同意上面的答案,只要确保你的标记中包含了很棒的字体 css 文件。

【讨论】:

以上是关于将 Font Awesome 集成到 Kendo UI CSS 中的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Font Awesome 添加到 Next.js 项目

尝试将 Font-Awesome 图标添加到我的导航栏中的选项卡

可以将自定义图标添加到 font-awesome-react

font-awesome 字体未加载到 Angular 项目中

将 Solid and Light Font Awesome Pro 添加到 React 站点

如何将 Font Awesome 添加到 Blazor 客户端(Razor 组件)应用程序?