Create an Like Mega Menu

Create an Like Mega Menu

Just launched! Checkout the CSS Course for Elementor users.

Table of Contents

In this tutorial, I'm going to show you how to replicate a mega menu that is similar to the one found on themselves used and improved upon (design wise!) my tutorial about creating a mega menu for Elementor without any plugin.

Here is what we will be creating. You will also find the template file in your download zip bundle that came with the course.


  • CSS only, no plugins needed
  • mega menu design
  • Customizable
  • Desktop only

Let's get started!

First, let's get the proper structure in place

Let's add a container, and in it, let's add our logo, 4 headings and a button.

Create an Like Mega Menu 1

The container should have these settings: width should be set to full width, direction to Row, align items to Stretch and gap to 0.

Create an Like Mega Menu 2

The headings that should have a sub menu need the classes navItem and  navItem_SubIndicator.

Create an Like Mega Menu 3

The headings that don't need a sub menu only need the class navItem.

Each heading should also have a link. If you don't want or need one, add #.

The button will need the following custom CSS to take full advantage of the flexbox container, and push the nav items to the left:

selector {
margin-left: auto;
background-color: #999999;

Create an Like Mega Menu 4

The sub menu indicators

Create an Like Mega Menu 5

We will be adding a small down triangle to indicate that there is a sub menu for certain nav items, those with the class name navItem_SubIndicator.

We will be using CSS pseudo elements for this, along with position:absolute; and the border trick to create triangles with CSS only.

All the CSS provided in this tutorial can be added wherever you prefer, really. Personally I like to add it all here under Settings > Advanced > Custom CSS, so that I can have a live preview of the modifications.

Create an Like Mega Menu 6Create an Like Mega Menu 7

In the template file, you will find the CSS in HTML elements, so that it works even with Elementor Free. Move it to where you want!

Let's add the following CSS to our project to get our triangles in place.

.navItem_SubIndicator::after {
content: '';
position: absolute;
top: calc(50% - 4px);
right: 6px;
border: 7px solid #000000;
border-right-color: transparent;
border-left-color: transparent;
border-bottom-color: transparent;

This works to create a triangle essentially because the element itself has a base width and height of 0px. This results into the four border sides automatically creating triangles that all meet in the middle.

For instance, the following CSS:

::after {
content: '';
position: absolute;
border: 37px solid #000000;
border-right-color: green;
border-left-color: yellow;
border-bottom-color: purple;

Results in:

Create an Like Mega Menu 8

Now all we have left to do is make all but the top border transparent, and we have a downward facing triangle with CSS only!

Back to our triangle CSS.

The line top: calc(50% - 4px); allows us to position the pseudo-element carefully, starting from the exact center of the first ancestor element that has position:relative; (more info about this in the CSS positioning chapter).

You can adjust the values of the top property, as well as the right property, to position the triangle as you wish.

You can also play with the PX and color value in the declaration border: 7px solid #000000;.

Let's prepare the sub nav containers

Get the full CSS course now to unlock this chapter, and 50+ others. also provides premium tutorials showing awesome advanced designs, check them out here.

Looking for something else? Search across 2445 Elements right here:

Checkout the Elementor Addon Finder directly


Leave a Reply