Let’s follow this post to create and configure metadata service Applications.
Open SharePoint site
![SharePoint]()
Navigate to site settings -> Navigation -> Under look and feel -> Navigation.
![SharePoint]()
On this page, select Managed Navigation.
![SharePoint]()
Under Managed Navigation Term set -> click Create Termset button.
![SharePoint]()
Now, the site navigation has been created successfully.
Open Term store management tool and it will help you to create the terms and term sets for the managed navigation.
![SharePoint]()
On Publishing navigation, click Create Term.
Subsequently, create all the links, which need to be shown in the page.
- Home
- About us
- Gallery
- Blog
- Contact us
These are all the term sets, which we are going to create.
Finally, the created term sets looks, as shown below.
![SharePoint]()
Click Save -> Click OK.
Now, the page looks, as shown below.
![SharePoint]()
Let’s do some work to get branding for the navigation menu and make it responsive
HTML responsive navigation menu looks, as shown below.
Browser View
![SharePoint]()
Mobile View
![SharePoint]()
Step 1
Add the scripts and CSS under siteAssets folder.
![SharePoint]()
Step 2
Open SharePoint designer
Open the site collection -> Navigate to the master page -> Open Seattle. Master -> Edit this file in advanced mode.
Add the necessary scripts and CSS into the master page.
- <link rel="stylesheet" type="text/css" href="../../SiteAssets/menu/bootstrap.min.css" />
- <script type="text/javascript" src="../../SiteAssets/menu/jquery.min.js" />
- <script type="text/javascript" src="../../SiteAssets/menu/bootstrap.min.js" />
![SharePoint]()
HTML code looks, as shown below.
- <nav class="navbar navbar-inverse">
- <ul class="nav navbar-nav">
- <li class="active"><a href="#">Home</a></li>
- <li><a href="#">Page 1</a></li>
- <li><a href="#">Page 2</a></li>
- <li><a href="#">Page 3</a></li>
- </ul>
- </nav>
CTRL + find the “aspmenu”
Add nav class tag into top of the Sharepoint delegate tag
The code looks, as shown below.
- <nav class="navbar navbar-inverse">
- <SharePoint:AjaxDelta id="DeltaTopNavigation" BlockElement="true" CssClass="ms-displayInline ms-core-navigation" role="navigation" runat="server">
- <SharePoint:DelegateControl runat="server" ControlId="TopNavigationDataSource" Id="topNavigationDelegate">
- <Template_Controls>
- <asp:SiteMapDataSource
- ShowStartingNode="False"
- SiteMapProvider="SPNavigationProvider"
- id="topSiteMap"
- runat="server"
- StartingNodeUrl="sid:1002"/>
- </Template_Controls>
- </SharePoint:DelegateControl>
- <asp:ContentPlaceHolder id="PlaceHolderTopNavBar" runat="server">
- <SharePoint:AspMenu
- ID="TopNavigationMenu"
- Runat="server"
- EnableViewState="false"
- DataSourceID="topSiteMap"
- AccessKey="<%$Resources:wss,navigation_accesskey%>"
- UseSimpleRendering="true"
- UseSeparateCss="false"
- Orientation="Horizontal"
- StaticDisplayLevels="2"
- AdjustForShowStartingNode="true"
- MaximumDynamicDisplayLevels="2"
- SkipLinkText="" />
- </asp:ContentPlaceHolder>
- </SharePoint:AjaxDelta>
- </nav>
End of the <body> tag adds some scripts to override the default ID and class for SharePoint <ul> and <li> elements.
For SharePoint On-Premise, it is given below.
UI id:
$( "#zz13_RootAspMenu").attr( "id", "myTopNav" );
For anonymous user, it is given below.
$( "#zz2_RootAspMenu").attr( "id", "myTopNav" );
For Sharepoint Online, it is given below.
$( "#zz13_RootAspMenu").attr( "id", "myTopNav" );
In my scenario, I am using SharePoint On-Premise.
Add the script tag to override the ul class.
![SharePoint]()
First step is set the custom id for the <ul> tag.
$( "#zz13_RootAspMenu" ).attr( "id", "main-menu" );
Now, inspect and check the <ul> tag id.
![SharePoint]()
Code
- <script type="text/javascript">
-
-
- $( "#zz13_RootAspMenu" ).attr( "id", "main-menu" );
- $("#main-menu"). attr("class","nav navbar-nav");
-
- $("#main-menu li").attr("class","");
- $("#main-menu a").attr("class","");
- </script>
Check-in the masterpage file and refresh the browser. You will be able to see the responsive navigation menu.
![SharePoint]()
![SharePoint]()
Note
It is applicable to all types of navigation. Structural navigation also works well.
Happy learning.