10 Answers, 1 is accepted
The mobile menu icon can be changed by the selector html .RadMenu .rmRootToggle:before in several ways:
-
As the images are rendered by font-icon, you can simply change the content property of the :before pseudo element by the following
html .RadMenu .rmRootToggle:before {
content
:
"\E094"
;
}
-
If you would like to use a font icon of your custom font, you can change the font-family property. Please, keep in mind that if you would like to be sure of displaying the font-icon in all browsers, you can import the custom font files. You can find more information about this approach in the w3c documentation
html .RadMenu .rmRootToggle:before {
font-family
:
'Times New Roman'
;
content
:
"\02e19"
;
}
-
You can also replace the font icon with a sprite image by the following
html .RadMenu .rmRootToggle:before {
content
:
""
;
background-image
:
url
(image.png);
}
Hoping this was helpful
Regards,
Magdalena
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

I experimented and found that a 40x40 image works well, but the default black bars remain as shown in the attached image.
​
.RadMenu .rmRootToggle:before
{
content: "";
background-image: url("images/wwg_logo_40.jpg");
}
The font-icon is added by a ".RadMenu .rmRootToggle:before" selector by our inbuilt styles which are applied after your custom styles. Therefore you have to make your selector stronger for example by adding a html to the selector as we advised in the last reply.
Regards,
Magdalena
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

Problem corrected, thanks.
Now a question about scaling of the sprite: by experimentation I found that 40x40 worked well with the JPG sprite.
On smaller devices without (yet) using a Viewport directive, I find that sprite does not scale down proportionately, there is a loss of pixels on the right and bottom, I would guess maybe 4px each on a Windows 8.1 phone.
I realize that font icons were most likely used due to easy scaling, but in my case I can live with a few cosmetic issues for now, until I move to adaptive rendering.
Is there anything that I might need to know about background images for RadMenu in mobile rendering?
You can re-size the background image by setting the property background-size to 100% to the same element. Please, keep in mind that this property is not supported all browsers.
Do not hesitate to contact us if you have other questions.
Regards,
Magdalena
Telerik
Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

If you set different CssClass server property to the Menus, you can use those classes in CSS selectors. The other solution is to use their IDs as the following:
aspx:
<
telerik:RadMenu
ID
=
"RadMenu1"
runat
=
"server"
RenderMode
=
"Mobile"
CssClass
=
"
customClass1
"
></
telerik:RadMenu
>
<
telerik:RadMenu
ID
=
"RadMenu2"
runat
=
"server"
RenderMode
=
"Mobile"
CssClass
=
"
customClass2
"
></
telerik:RadMenu
>
CSS:
#RadMenu
1
.rmRootToggle:before {
content
:
""
;
background-image
:
url
(
'image01.png'
);
}
#RadMenu
2
.rmRootToggle:before {
content
:
""
;
background-image
:
url
(
'image02.png'
);
}
OR
html .customClass
1
.rmRootToggle:before {
content
:
""
;
background-image
:
url
(
'image01.png'
);
}
html .customClass
2
.rmRootToggle:before {
content
:
""
;
background-image
:
url
(
'image02.png'
);
}
Regards,
Magdalena
Telerik by Progress

I tried to replace the default image of the RadMenu (RenderMode="Mobile", Skin="MetroTouch" mobile button icon writing in my css:
.RadMenu_MetroTouch.t-rwd-menu-mobile .rmRootToggle:before
{line-height: 36px; content: ""; background-image: url('../images/spr.png')}
but nothing, nothing changes...
Basically, i would like to have the image of that mobile menu with the 3 bars and nothing else (white background, no border) and a little bit smaller (36x36) than the default way the icon is shown.
Can anyone help, pls?

How I change the menu icon at code behind ? I would like change to a facebook picture for each logged user.
Thanks
The server-side object does not have any properties to change the toggle button image. Also, keep in mind that the "hamburger" icon is actually a font-icon, not an image.
With that said, the CSS that manages to show a custom image instead of the font icon is as follows:
<style>
div.RadMenu .rmRootToggle,
div.RadMenu .rmRootToggle.rmExpanded {
background-image
:
url
(
"https://via.placeholder.com/32"
);
height
:
40px
;
}
div.RadMenu .rmRootToggle:before {
content
:
none
;
}
</style>
Regards,
Peter Milchev
Progress Telerik