Using The Built-In Divi Mega Menu
How To Add a Mega Menu To Divi Without Plugins
I think at the time of this writing there are at least 4 3rd party plugin developers with a mega menu solution for Divi. That’s fine and well, but did you know that Divi already comes with a mega menu built-in? That’s right, you can create mega menus with Divi without any plugins! Let’s show you how!
What Is A Divi Mega Menu?
When a normal Divi menu item has additional menu items underneath it, we call those sub-items a submenu. So think of a mega menu as a set of multiple submenus side by side. We can create a mega menu by setting up our menu in such a way that it has multiple sets of menu item tiers. This is useful when we have a lot of items to put in our menu, or we just want to nest certain pages or sets of pages in a specific way. You can also use a mega menu to advertise products, featured services, or blog posts.
We wrote all about how to style the Divi submenu in a recent tutorial, so go check that out. It will definitely help you understand and style the mega menu!
Set Up The WordPress Menu
Creating mega menu in Divi starts with setting up the WordPress navigation. You can add whatever menu items you want, that’s not important. The important part is that you set it up in the correct order of hierarchy.

Here’s how that looks by default. The parent menu item has four submenu items under it.

Add The Mega Menu CSS Class
This is how the standard menu works, but in order to create a mega menu, we need to add as secret CSS class to the parent item.
NOTE: Be sure you have “CSS Classes” checked under “Screen Options” in the upper right corner of your admin screen.

Here’s how it looks now that we added the “mega-menu” CSS class to the parent menu item:

Add Additional Submenu Items
Next, proceed to add all your submenu items underneath each “column.” You can add as many as you need. In my example, I added three under each column.

Here’s how your Divi mega menu looks!

How To Style The Divi Mega Menu
Now that we have created our Divi mega menu, we need to customize how it looks. To do this, we need to use CSS since there are no built-in settings for this in Divi. The cool part is that we can base our CSS off of our Divi submenu tutorial since many of the classes are the same.
- Unordered List
- List Item
- Link
This still holds true! The only difference now is that each of the submenu list items now have an unordered list underneath them.
How To Customize And Style The Divi Mega Menu Submenu
You can do some things in the module settings, such as the background color. But to do anything beyond that, you can use our snippets and suggestions shown below to style and customize the Divi mega menu submenu.

Edit The Overall Mega Menu
This would be exactly like our submenu tutorial, but remember, we added the class “mega-menu” to the list item.
/*edit the Divi mega menu*/
.et_pb_menu li.mega-menu ul {
YOUR CSS HERE
}
Once you have our CSS selector ready, you can start adding custom code where it says “YOUR CSS HERE.” (be sure to remove that text)
Custom Style Ideas
The following is a list of ideas of some things you might want to do to style overall mega menu submenu. You can choose to do this by placing the snippets shown below into the selector for the mega menu shown above.
Add a border:
border: 2px solid #2cba6c;
Make the corners rounded:
border-radius: 10px;
Adjust the spacing:
padding: 0px;
How To Customize And Style The Divi Mega Menu Submenu First Row
The next thing you may want to customize and style with the Divi mega menu is the first row. You don’t have to do this separately than the other list items, but it often works out well. You can see our site menu for an example of this in action.

Edit The Mega Menu Submenu First Row
To do this, we are taking the CSS class for all the menu list items and adding a new special pseudo class called “first-child” which only targets the list items in the top row.
/*edit the Divi mega menu submenu first row*/
.et_pb_menu li.mega-menu > ul > li > a:first-child {
YOUR CSS HERE
}
Edit The Mega Menu Submenu First Row On Hover
/*edit the Divi mega menu submenu first row on hover*/
.et_pb_menu li.mega-menu > ul > li > a:first-child:hover {
YOUR CSS HERE
}
Once you have our CSS selector ready, you can start adding custom code where it says “YOUR CSS HERE.” (be sure to remove that text)
Custom Style Ideas
The following is a list of ideas of some things you might want to do to style the first row of mega menu submenu list items. You can choose to do this by placing the snippets shown below into the selector for the mega menu shown above.
Add a border:
border-bottom: 2px solid #2cba6c;
Change the background size:
background-color: #2cba6c;
Change the text color:
color: #ffffff;
Change the text size:
font-size: 24px;
Adjust the font weight:
font-weight: bold;
How To Customize And Style The Divi Mega Menu Submenu List Items
You may be wondering why the tutorial ends here? That’s because we’ve already covered how to style and customize the Divi submenu in our other tutorial (that we keep talking about), so we don’t need duplicate content. You can now go and use that tutorial for anything related to the list items and links, and they will work perfectly here in the Divi mega menu.
You may also want to add images to your mega menu. You can do that with another tutorial about adding images to the Divi menu.
Thx for this very good tutorial! I would like to see something for the mobile menu with nested childs? Is ther something existimg i could use?
Best Regards,
Thomas
Hi Thomas, I’m definitely going to do a mobile menu tutorial, since a lot of people are asking this. But as of now, I don’t have anything on it to recommend. Should be out before too long 🙂
Thank’s Nelson, great video.
Regards
Thank you, Guillermo!
This is great! CSS is not my strong point, so I really appreciate the explanation to understand what each code piece does so I can change what I need to change to make it look how I want it to look on my site, instead of just following a tutorial to make it look just like ‘yours’.
That’s awesome to hear Jenn. I had received feedback before that others liked this style that I first used on the submenu tutorial. I hope to do a similar one for the mobile menu.
Thank’s Nelson for writing useful content on Mega Menu.
You’re welcome, Shahzad, glad to be of helpful service!
Not sure what I am doing wrong but I do not see the “mega menu” option under: Menu settings>Content
The only options are to select a menu. was this option removed or relocated. I am running the latest version of Divi (4.4.2)
Hello, I’m confused because I haven’t said anything like “Menu settings>Content”, I don’t know what you mean by that. You need to add “mega-menu” CSS class to your menu item. Follow the tutorial closely and use the video if it helps and you will get it!
Hello Nelson,
Thanks for the above. I am a non technical person.
I got the CSS snippets etc but I do not understand where shall I add them.
Like for example.. I am going to Appearance- Menus- CSS Class… do I add these there?
As I can not think of any page which opens the menus module here.
By the way, I do have an existing mega menu but not customized.
Appreciated.
Hi Vikas,
Always add CSS snippets in Divi>Theme Options>Custom CSS. You can learn more about that here: https://www.peeayecreative.com/where-to-add-custom-code-in-divi-css-javascript-php/
Hi,
I couldn’t get this to work using .et_pb_menu as this class doesn’t seem to exist.
I have used #top-menu instead, which is working.
However, I just cannot get the hover settings to change.
this works
#top-menu .mega-menu ul li a {
background-color:#BD282A!important;
color:white;
}
but this doesn’t
#top-menu .mega-menu ul li a:hover {
background-color:#BD282A!important;
color:white;
}
any idea why?
yes I have cleared my server cache, and browser cache.
Hmm, try the way I have it written, yours is different. For example, “li.mega-menu”
Thanks for this great tutoria. i really like the way you explained it step by step. But is there a way to make the mega menu parent items displayed vertically while the sub-menu display in horizontal manner. Like the one in this picture?
Hi Segun, I may be missing something because yes, that is exactly how this tutorial and mega menu works. The one thing that may be different, it looks like the image is using a vertical menu, which I have no experience in. Can you help me understand more of what you need or what isn’t working?
Hey Nelson. Thank you for the tutorial. Very helpful. I’m wondering if there’s a way to make it display more than 4 columns? I have a five column menu and the fifth column wraps to column 1.
Hi Kevin, I havn’t tried it…I assume it would work fine? Have you got a link where you are trying this for me to see?
Hi John,
It’s impossible to help without a link. If you provide one maybe I or someone else will be able to check some of these things.
Thankyou Nelson,
Can we create mega menu like this (attached)
So, when we hovering menu, they show content of that category
Example, I have a blog, my menu is like this:
HOME
Health (category)
Auto (category)
Lifestyle (category)
When I hovered Health, they will show newest (or randomly) post from health Category. Can we?
I’m afraid you can’t do that with just Divi, sorry. You will need a dedicated plugin with those featues.
Hi Nelson, I found these menu tutorials to be quite helpful, and it’s changed the way I create my menus and style them. So thanks for that. I have a question about the styling of the Mega Menu when I only want to use two columns. Normally the MM is set up for 4 columns, so when only 2 are used, they stretch to fill the space of 4 columns. Is there a way to reduce the width of the MM so that it doesn’t stretch the entire width of the page? I think that’s the default design, but it… Read more »
Hi Ian,
I see we have that right-click issue again 🙂
Oops. Check again? I’ve shut that off.
Hi Nelson,
I turned off the right-click block last week, after your comment. Have you had a chance to look?
Hi Nelson!
the MM you show becomes all HTML? I’m reading that many MM made with plugins give problems with seo and that it is better to build them all in HTML .. the one of DIVI I think is good. http://www.etc14.eu
Is there in DIVI a way to add a third level and collapse the second level voices?
similar at the mobile menus I mean ..?
Best Regards
Francesco
Hi Francesco,
What do you mean about the question it becomes all HTML?
hello I hope to be able to explain. I know that Google does not like menus and megamenus made with javascript, and prefers html menus, lists (ul li) to be read immediately and not to be understood after rendering all the js. I was wondering if the megamenu created with DIVI was read immediately by google or not .. The Megamenu done with DIVI is very simple and has limitations for me. I tried to use a plugin to build Megamenu but I see that it inserts some code using :AFTER elements .. So if the DIVI Megamenu is good… Read more »