如何在Primefaces DataTable中使用Font Awesome(或其他字体图标)代替jQuery sprite?

时间:2016-01-18 13:36:48

标签: jquery css jsf-2 primefaces font-awesome

我使用PrimeFaces生成数据表。默认的排序图标是来自JQuery库的V形图,但由于它们不是Vector,它们看起来很难看。我不想使用像字体这样的字体替换它们,但我不知道如何做到这一点。 我可以使用下面的CSS句柄将图像更改为不同的精灵等。

如果我能以某种方式改变类的主要表面从 ui-icon-triangle-1-n 添加到 af fa-sort-alpha-desc ,例如我已经得到帮助。

.ui-state-default .ui-icon{
        background-image: url("../Assets/images/jquery-ui/ui-    icons_0072b6_256x240.png");
    }
    .ui-datatable .ui-icon-carat-2-n-s {
    background-position: -160px 0 !important;
}

.ui-datatable .ui-icon-triangle-1-n{
    background-position: 0 -48px !important;
}

.ui-datatable .ui-icon-triangle-1-s{
    background-position: -64px -48px !important;
}

2 个答案:

答案 0 :(得分:5)

我最终得到了DataTable

的CSS
.ui-datatable .ui-sortable-column-icon.ui-icon {
    background-image: none; text-indent: 0; margin: 0 0 0 .5em;
}
.ui-paginator > span:before, .ui-sortable-column-icon:before {
    font-family: FontAwesome; color: #fff;
}
.ui-paginator > span > span, .ui-paginator a span { display: none; }
.ui-paginator-first:before { content: '\f049'; }
.ui-paginator-prev:before { content: '\f048'; }
.ui-paginator-next:before { content: '\f051'; }
.ui-paginator-last:before { content: '\f050'; }
.ui-icon-carat-2-n-s:before { content: '\f0dc'; }
.ui-icon-carat-2-n-s.ui-icon-triangle-1-n:before { content: '\f0de'; }
.ui-icon-carat-2-n-s.ui-icon-triangle-1-s:before { content: '\f0dd'; }
.ui-paginator .ui-state-disabled { opacity: .25; }

所有的unicodes都可以在这里找到:http://fontawesome.io/cheatsheet/

Font Awesome提供了一些替代图标:

  • fa-sort-alpha-asc \f15d
  • fa-sort-alpha-desc \f15e
  • fa-sort-amount-asc \f160
  • fa-sort-amount-desc \f161
  • fa-sort-numeric-asc \f162
  • fa-sort-numeric-desc \f163

更新

在为我的主题做一些CSS覆盖并考虑Kukeltje的评论之后,我决定将{JSF ResourceHandler添加到theme I'm working on

只需将依赖项添加到项目中并添加资源处理程序

即可
<application>
    <resource-handler>org.jepsar.primefaces.theme.jepsar.FontAwesomeResourceHandler</resource-handler>
</application>

处理程序将检测PrimeFaces主题并修补CSS。它删除了jQuery UI图标并添加了Font Awesome rules(其中包含一个单独的icon mapping SCSS)。

答案 1 :(得分:1)

这是一个例子: 的.ui-分页程序 - first.ui状态,default.ui角全:之前{     内容:&#34; \ f049&#34 ;;     font-family:FontAwesome;     白颜色; } 你可以找到你可以为内容而不是&#34; \ f049&#34;添加的代码。在字体很棒的网站http://fortawesome.github.io/Font-Awesome/icon/pencil/ :之前在css类后面很重要