New to Kendo UI for jQuery? Download free 30-day trial

Add Font Icons to Menu Items

Environment

Product Progress® Kendo UI® Menu for jQuery Progress® Telerik® UI Menu for ASP.NET Core Progress® Telerik® UI Menu for ASP.NET MVC

Description

The Kendo UI Menu provides built-in support for raster images and sprites in its items. However, how can I add font icons to a Kendo UI Menu item?

Solution

Inside the Menu items, add your own HTML which supports font icons—for example, the Kendo UI font icons.

The following examples demonstrate the implementation of the suggested approach for the MVC HTML helpers and for a plain jQuery widget. For the MVC instance, set .Encode(false) for the item so that its HTML is parsed, and escape the quotation marks.

@(Html.Kendo().Menu()
  .Name("Menu")
  .Items(items =>
  {
      items.Add()
              .Text("Products - Expand me")
              .Items(children =>
              {
                  children.Add().Text("Furniture");

                  children.Add().Encoded(false).Text("<span class=\"k-icon k-i-clock\"></span>I have a Font Icon");

                  children.Add().Text("Decor");

              });

      items.Add().Text("Stores");
  })
)

When you work with a plain jQuery widget, you only need to add the HTML to the markup from which you instantiate the widget.

<ul id="menu">
    <li>
        Products - Expand me
        <ul>
            <li>
                Furniture
            </li>

          <!-- If you instantiate the Menu from HTML, you can put your own
                content in it. There, you can use the font icons
                as described in the following article:
                https://docs.telerik.com/kendo-ui/styles-and-layout/icons-web
          -->
            <li><span class="k-icon k-i-clock"></span>I have a font icon</li>


            <li>
                Decor
            </li>
        </ul>
    </li>
  <li>Some item</li>
</ul>

<script>
$(document).ready(function() {
    $("#menu").kendoMenu();
});
</script>
In this article