如何将自定义图标添加到标准 jQuery UI 主题?
使用标准图标集中可用的图标之一很容易:
$("#myButton").button({icons: {primary: "ui-icon-locked"}});
但是如果我想添加不属于框架图标集的我自己的图标之一怎么办?
我认为这就像给它你自己的 CSS 类和背景图像一样简单,但这不起作用:
.fw-button-edit {
background-image: url(edit.png);
}
有什么建议吗?
It is easy to use one of the icons available from the standard icon set:
$("#myButton").button({icons: {primary: "ui-icon-locked"}});
But what if I want to add one of my own icons that is not part of the framework icon set?
I thought it would be as easy as giving it your own CSS class with a background image, but that doesn't work:
.fw-button-edit {
background-image: url(edit.png);
}
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
我还可以建议:
然后只需输入 JS 代码:
它对我有用,希望它也对你有用!
I could also recommend:
then just type in the JS code:
It worked for me and hope it works for you too!
我相信他不起作用的原因是因为你的图标的
background-image
属性被 jQuery UI 默认精灵图标背景图像覆盖。有问题的样式是:它比
.fw-button-edit
选择器具有更高的特异性,因此覆盖了背景图像属性。由于它们使用精灵,.ui-icon-locked
规则集仅包含获取精灵图像位置所需的background-position
。我相信使用这个会起作用:或者其他具有足够特异性的东西。在此处了解有关 CSS 特异性的更多信息:http://reference.sitepoint.com/css/specificity
I believe the reason why his won't work is because you're icon's
background-image
property is being overridden by the jQuery UI default sprite icon background image. The style in question is:This has higher specificity than your
.fw-button-edit
selector, thus overriding the background-image proerty. Since they use sprites, the.ui-icon-locked
ruleset only contains thebackground-position
needed to get the sprite image's position. I believe using this would work:Or something else with enough specificity. Find out more about CSS specificity here: http://reference.sitepoint.com/css/specificity
这是基于上面 Yi Jiang 和 Panayiotis 提供的信息,以及 jquery ui 按钮示例代码:
当我迁移一个早期的 JSP 应用程序时,该应用程序的工具栏上每个按钮都带有图像,因此我希望将图像放在按钮声明本身内,而不是为每个工具栏按钮创建一个单独的类。
当然,还有比上面两个更多的按钮。上面的 s 标签是一个 struts2 标签,但您可以将其替换为任何 URL
下面的脚本从按钮标签中查找属性 data-img,然后将其设置为按钮的背景图像。
它临时设置 ui-icon-bullet (任何任意现有样式),然后稍后更改。
此类定义临时样式(如果您打算使用它,最好为特定工具栏添加更多选择器,以便页面的其余部分不受影响)。实际图像将被以下 Javascript 替换:
和以下 Javascript:
This is based on the info provided by Yi Jiang and Panayiotis above, and the jquery ui button sample code:
As I was migrating an earlier JSP application that had a toolbar with images per button, I wanted to have the image inside the button declaration itself rather than create a separate class for each toolbar button.
Of course there were plenty more buttons than just the two above. The s tag above is a struts2 tag, but you could just replace it with any URL
The below script looks for the attribute data-img from the button tag, and then sets that as the background image for the button.
It temporarily sets ui-icon-bullet (any arbitrary existing style) which then gets changed later.
This class defines the temporary style (better to add further selectors for the specific toolbar if you plan to use this, so that the rest of your page remains unaffected). The actual image will be replaced by the Javascript below:
and the following Javascript:
此链接的解决方案对我来说非常有用:
http:// www.jquerybyexample.net/2012/09/how-to-assign-custom-image-to-jquery-ui-button.html
The solution at this link worked great for me:
http://www.jquerybyexample.net/2012/09/how-to-assign-custom-image-to-jquery-ui-button.html
我的解决方案将自定义图标添加到 JQuery UI(使用精灵):
CSS:
.icon-example
定义自定义图标文件中图标的位置。.ui-icon.custom
定义带有自定义图标的文件。注意:您可能还需要定义其他 JQuery UI 类(例如
.ui-state-hover
)。JavaScript:
My solution to add custom icons to JQuery UI (using sprites):
CSS:
.icon-example
defines position of icon in custom icons file..ui-icon.custom
defines the file with custom icons.Note: You may need to define other JQuery UI classes (like
.ui-state-hover
) as well.JavaScript:
在 msanjay 答案的基础上,我将其扩展为适用于 jquery ui 按钮和单选按钮的自定义图标:
Building on msanjay answer I extended this to work for custom icons for both jquery ui buttons and radio buttons as well:
在 CSS 中
在 HTML 中
在 JavaScript 中
in css
in HTML
in JavaScript