To achieve your goal, you can crop the image in the shape of an arrow and apply a negative margin so that the element below overlaps the header image.
Check out this proof of concept:
.example {
-webkit-clip-path: polygon(0 0, 100% 0, 100% calc(100% - 20px), calc(50% + 20px) calc(100% - 20px), 50% 100%, calc(50% - 20px) calc(100% - 20px), 0 calc(100% - 20px));
clip-path: polygon(0 0, 100% 0, 100% calc(100% - 20px), calc(50% + 20px) calc(100% - 20px), 50% 100%, calc(50% - 20px) calc(100% - 20px), 0 calc(100% - 20px));
background: #fff url(https://source.unsplash.com/random/800x120) no-repeat 50% 50% /cover;
pointer-events: none;
/* additional styling specific to this snippet */
height: 120px;
margin-bottom: -20px;
}
.example > * {
/* ensure elements inside the header div can still receive pointer actions */
pointer-events: all;
}
.test {
background-color: #777;
min-height: 80px;
}
<div class="example"></div>
<div class="test"></div>
Since the second element is a map, the clicks on the overlapping area should go to the map and not the header. By adding pointer-events: none
to the header and reverting the property for its immediate children, the children will respond to pointer actions instead.