Skip to main content

Branding SharePoint Drop Downs

SharePoint has quite a few different drop down menus, within this post I will highlight the three primary drop downs and the CSS that drives it.

#1 Main Navigation Drop down:
image 

The Main Navigation drop downs are a new addition to SharePoint from its previous SPS 2003 version. Here are the following classes that make up this navigation:

Class Name

Details

.ms-topNavFlyOutsContainer
{
border:solid 1px #c2dcff;
}

This is the outer container.
Modify this for the outer border.

.ms-topNavFlyOuts{
background-color:#F2F8FF;
font-family:Tahoma;
font-size:8pt;
}

This is the inner container.
Modify this for the drop down background and basic fonts.

.ms-topNavFlyOuts a{
display:block;
*width:120px;
min-width:120px;
color:#3764a0;
padding:4px 8px 4px 8px;
}

This class specifies the drop down items, width, color, and padding. 
You might want to put in a width: 100% !important; tag in case you have an instance where you have a small drop down item and an item that its characters exceed 120px.

.ms-topNavFlyOutsHover{
background-color:#ffe6a0;
color:#000000;
}

This class specifies the hover state of each drop down item.
You will also want to put in width: 100%; into this class as well so that you don't get a default color background that you don't want.

image The SharePoint team also put into place a little hidden gem of logic that states that when a list is longer than the height of the page, it will create a scroll type drop down.

If you move your mouse to the top arrow it will scroll up, and if you move your mouse to the bottom as expected it will scroll down.

If you look at the image below the screen capture has 4 main navigation items all with drop down items. The ID's highlighted in green specify the Top Navigation Menu Item # 1, 2, 3, 4. For each navigation menu item if a drop down is available SharePoint will add in two div tags. The first one is the Menu Items Up which has an Image drawn from the /WebResource.axd file. The second DIV tag right below it is the Menu Items Down which also has an Image drawn from the /WebResource.axd file.

image

If you really needed to customize this you could simply add the following classes to your alternate stylesheet. But you would have to make sure you create as many Menun #s per how many top navigation items you have on your site.

Class Name

Details

#zz1_TopNavigationMenun1ItemsUp{
background-color: #FFF;
}

#zz1_TopNavigationMenun1ItemsDn{
background-color: #FFF;
}

This class is for the top and bottom boxes only  for the 1st navigation item with a drop down.

#zz1_TopNavigationMenun2ItemsUp{
background-color: #FFF;
}

#zz1_TopNavigationMenun2ItemsDn{
background-color: #FFF;
}

Same as above but for Menun #2

#2 Site Actions Drop Down:
image

The Site actions drop down is a bit more complex. It uses quite a bit more styles than the main navigation. Here are some things to consider when branding this menu:

  • Define the color of the text, both Heading and description
  • Define what kind of image treatment you want behind the icons.
  • Define the hover state as a user moves the mouse over each item. (Background color, and Border line)

Class Name

Details

.ms-MenuUIPopupBody TABLE
{
color:#003399;
font-size:100%;
margin:0px;
padding:0px;
}

This class specifies the Basic menu color for the Bold Menu Label. However it could be over written see below.

.ms-MenuUISeparator,.ms-MenuUISeparatorRtL,.ms-MenuUISeparatorLarge,.ms-MenuUISeparatorLargeRtl
{
background-color:#c5c5c5;
font-size:1px;
height:1px;
line-height:1px;
}

This class specifies the color of the separator line.

.ms-MenuUI,.ms-MenuUILarge,.ms-MenuUIRtL,.ms-MenuUILargeRtL
{
background-color:#fafafa;
background-repeat:repeat-y;
cursor:pointer;
}

These classes represent the overall background color.

.ms-MenuUILarge
{
background-image:url("/_layouts/images/MGradLarge.gif");
width:250px;
}

This class is specific to all large size drop down menus. Including the Welcome, and My Links drop down.

.ms-MenuUILabel{
padding: 2px 0px 3px 6px;
}

This class specifies the bold menu labels padding. Since the color is not specified here but driven by the Pop up table. You could overide the color by adding it in here.

.ms-menuitemdescription
{
color:#666666;
}

This class specifies the color of the description text for each menu item.

.ms-MenuUIItemTableHover
{
background-color:#ffe6a0;
border:1px solid #d2b47a;
}

This class specifies the hover state when a user moves their mouse over each item.

#3a  Document Drop Downimage

#3b Modify Webpart Drop Down
image

Both of the examples above use the same menu classes. You will notice that the space dedicated to the icons is allot smaller. All the classes for the large drop down are shared but for this menu it uses the following class to specify its smaller background image.

Class Name

Details

.ms-MenuUI
{
background-image:url("/_layouts/images/MGrad.gif");
}

This menu specifies the smaller graphic.

One last thing to consider is if you are deploying language packs that change the orientation of text to read right to left. The navigation will also be change.

image

Here are the classes that make up the right to left menus:

Class Name

Details

.ms-MenuUIRtL
{
background-image:url("/_layouts/images/MGradRtl.gif");
}

Background image for small right to left menus

.ms-MenuUILargeRtL
{
background-image:url("/_layouts/images/MGradLargeRtl.gif");
width:250px;
}

Background image for large right to left menus

Drop me a comment if you have any questions/comments

Comments

Anonymous said…
Do you know of a way to change the icons used for the specific menu items?

I know you can do it for file extensions in document libraries, but could you add an icon for the "People and Groups" option in the main Site Settings menu, for instance?

Thanks
Anonymous said…
Do you know of a way to change/add icons for the individual menu items under "Site Settings"? Or any Sharepoint dropdown for that matter...

Thanks
Anonymous said…
i would just like to say, you are my new hero!
Anonymous said…
Great post Erick..Thanks a lot.
i have a problem with sharepoint menu.i want to change arrow image with my custom image in menu.when i see property of arrow image,it refere to a file like this: WebResource.axd?d=8XF3gMpcMyVWaK5vc7kgdwkIBTZRbMdx-aLZFH7lYB01&t=632544343905703125 ,
and when i save it in my PC,it store with 'WebResource.gif' name! after many hours searching, i found that webresource.axd is in javascript tag on this address /_layout/images/GOSEARCH.gif!! it is secret code that wrote in 'gif' file to call WebResource.axd!
now,i want to know how can i change arrow image with my custom image in sharepoint menu? arrow image is for level 3 of cascading navigation..
what is your idea? and how can i do it?

Regards
Arash
asif said…
i new to sahrepoint ..
how to customize second level navigation ?level 2

Popular posts from this blog

SharePoint 2010 Base CSS Classes

This will be the first of many SharePoint 2010 posts. I will be focusing on a few of the main CSS classes used for SharePoint 2010 Public Beta. As the product becomes more final there might be some changes to the class names but I will be sure to create a new post if that happens. This will be quite a lengthy but it should be helpful. The default CSS given below are just highlights of the full CSS attributes for that class. I will be using a basic team site as my base for the screenshots. Here is a basic structure of the main areas that I will cover. Ribbon Row Table Row Left Site Actions Navigate Up Edit Tab List Browse Page Table Row Right Give Feedback Welcome Menu Workspace Body Container Title Row Title ...

SharePoint 2010 Content Query for Blog Posts

I hope this post will help many of you feel comfortable with using the Content Query Web Part. In this post I will walk you through the process of creating a content query web part and configuring it to show custom field types. I will also give details on how to use XSLT to stylize and format the data being pulled. I will be using the following scenario as an example. Say that you had a site collection with a top level publishing site. This publishing site would display a the most recent blog posts from all blog sites within its own site collection. To solve this problem we will use a Content Query Web Part and a customized ItemStyle.xsl using XSLT. Please note that the “SharePoint Server Publishing Infrastructure” needs to be enabled at the site collection to display the content query web part. Step 1: Add a Content Query Web Part to Page Navigate to the site that you want the blog posts to show up and click on edit page. Under Editing Tools in the Ribbon, Click on ...

SharePoint 2013 Responsive Table Columns

I have been wanting to write this one for a while now. It is really amazing how UX is really finding is way into everything that we use and interact with. From Custom applications both mobile and on a desktop to document management or large data visualizations. There is always room for better usability and new concepts. SharePoint lists and library functionality really has not changed much for the past 10 years... I remember back in 2003 when I saw the same table/grid based views of documents and list items that exists in SharePoint 2013. But now we can look at them in a whole new way! In this video blog you will see how to create a responsive CSS table so that when the browser size is reduced it will hide specific columns. However hiding data is not always the right thing to do. What if a user needed those columns to filter on or to use for comparison to another document? Well that is where the custom jQuery Column chooser comes in. It allows you to see what columns are displ...