Make Divi Menu Items Equally Spaced And Fill The Entire Width
Here is another great tip to add to our huge collection of Divi Menu module tutorials. This tutorial will let you equally space the width of Divi Menu module links, meaning the menu items will be spaced out horizontally across the entire width of the parent container.
This quick tutorial is only for the Menu module, as I have not tried it nor do I use the default menu anymore. So please note this before asking the comments 🙂
Equally Space Divi Menu Items
This is going to a simple tutorial. You will need a menu module on your website, a custom class in that module, and one of the CSS snippets below.
Add The Custom CSS Class
Note that you will need to add the appropriate CSS class to your menu module in the Advanced tab in the CSS Classes & IDs toggle in the CSS Class input field. So for example, if your menu module is not using the logo, you would write “pa-menu-without-logo.” This is standard practice, as all snippets with custom classes need to match the class in the module.
Set The Menu Text To Justified
In the Divi Menu module, go to the Menu Text toggle and set the sext alignment to Justified.

Copy And Paste The CSS Snippet
You will need to choose the snippet below that suites your needs, whether you have a logo in the module or not. This will need to be the same as the custom class that you add as well. The snippet will do most of the work of spacing out the Divi menu items.
If you are using our free Divi child theme, place this snippet into the style.css file. Otherwise, place this in your Divi>Theme Options>Custom CSS code box. If you need help, check out our complete guide on Where To Add Custom Code In Divi.
/*equally space the menu list items*/
.pa-menu-without-logo .et_pb_menu__menu>nav>ul>li {
width: calc(100% / 3);
}
/*make the menu link to fill the menu item width*/
.pa-menu-without-logo .et_pb_menu__menu>nav>ul>li>a {
width: 100%;
text-align: center;
padding: 25px 20px;
background: #f0f3f6;
border: 1px solid #fff;
}
/*override the default menu item padding*/
.pa-menu-without-logo .et-menu>li {
padding-left: 0px;
padding-right: 0px;
}
/*adjust the position of the dropdown arrow*/
.pa-menu-without-logo .menu-item-has-children>a:first-child:after {
position: relative;
}
If you are using the log in the Menu module, there are some differences and we need to have a slightly different snippet. To make it simpler I just made a completely separate snippet for you.
/*equally space the menu list items*/
.pa-menu-with-logo .et_pb_menu__menu>nav>ul>li {
width: calc(100% / 3);
}
/*make the menu link to fill the menu item width*/
.pa-menu-with-logo .et_pb_menu__menu>nav>ul>li>a {
width: 100%;
text-align: center;
padding: 25px 20px;
display: inline-block;
position: absolute;
background: #f0f3f6;
border: 1px solid #fff;
top: -12px;
}
/*override the default menu item padding*/
.pa-menu-with-logo .et-menu>li {
padding-left: 0px;
padding-right: 0px;
}
/*adjust the dropdown arrow*/
.pa-menu-with-logo .menu-item-has-children>a:first-child:after {
position: relative;
}
Customize
Make sure that you change the number in the CSS to the same number of menu items that you have. In our video we had three, so we used 100% divided by 3. Doing this will equally space out the Divi menu items!
As always, you should be customizing the CSS to your own liking. You could remove the background and border on the links and adjust the padding.
The text in my menu items is not centering, even though it has the text-align: center; code in the Custom CSS. Thoughts?
Hi Scott,
You could try adding !important in the CSS to center them.