A Shopify store owner using the Dawn Theme wants to split a long mega menu into two columns without creating separate headers or affecting mobile layout.
Solution Provided:
Custom CSS code targeting the specific mega menu element (#MegaMenu-Content-3)
Uses CSS Grid with grid-template-columns: 1fr 1fr to create two columns
Includes nth-child selectors to position individual menu items across columns
Code should be added to the theme’s CSS file (base.css, style.css, or theme.css)
Implementation Steps:
Navigate to Shopify Admin > Online Store > Themes > Actions > Edit code
Open the CSS file in the Assets folder
Add the provided CSS code at the bottom
Save changes
Current Status:
Initial solution worked for the original poster
Multiple users encountered issues applying the same code to their stores
Helper requested store URLs to provide customized solutions, as CSS selectors vary between implementations
One user specifically needs the solution for only one menu item (“Shop By Collections”) with multiple sub-columns underneath
Summarized with AI on November 7.
AI used: claude-sonnet-4-5-20250929.
Hi i currently have a menu in the Dawn Theme but the first menu is very long and i want it to split over 2 without having a new header and being seperate in mobile
I have another 12 items to add to the menu: i current have the below custom CSS into to get the current look
.mega-menu__list {
display: grid;
gap: 1.8rem 4rem;
grid-template-columns: repeat(3, minmax(0, 1fr));
list-style: none;
}
cheers
From your Shopify admin dashboard, click on “Online Store” and then “Themes”.
Find the theme that you want to edit and click on “Actions” and then “Edit code”.
In the “Assets” folder, click on “base.css, style.css or theme.css” file, depending on which file your theme uses to store its CSS styles. At the bottom of the file, add the following CSS code:
#MegaMenu-Content-3 > ul > li:nth-child(1) > ul {
display: grid;
grid-template-columns: 1fr 1fr;
grid-column-gap: 15px;
}
#MegaMenu-Content-3 > ul > li:nth-child(1) > ul > li:nth-child(2) {
grid-column: 1;
grid-row: 7;
}
#MegaMenu-Content-3 > ul > li:nth-child(1) > ul > li:nth-child(3) {
grid-row: 8;
}
#MegaMenu-Content-3 > ul > li:nth-child(1) > ul > li:nth-child(4) {
grid-row: 9;
}
#MegaMenu-Content-3 > ul > li:nth-child(1) > ul > li:nth-child(5) {
grid-row: 10;
}
#MegaMenu-Content-3 > ul > li:nth-child(1) > ul > li:nth-child(6) {
grid-row: 11;
}
#MegaMenu-Content-3 > ul > li:nth-child(1) > ul > li:nth-child(7) {
grid-row: 12;
}
#MegaMenu-Content-3 > ul > li:nth-child(1) > ul > li:nth-child(8) {
grid-row: 13;
}
#MegaMenu-Content-3 > ul > li:nth-child(1) > ul > li:nth-child(9) {
grid-row: 14;
}
I’ve just found this and it’s exactly hat I’m looking for. I added to my “base.css” but it didn’t change anything to this menu list, It’s still the same.
Thanks for your reply! Not quite… I guess what I’m trying to do is create one header and then several “headerless” columns underneath it, for only one particular menu item. Specifically only the “Shop By Collections” menu.