Site logo

Archived topic

Can't get hide overflow to stick

9 replies · Started by Salty Communication on September 16, 2022

Viewing posts 1–10 of 10

Hi!

I added this to the additional CSS:

/* Hide overflow */
html {
    overflow-x: hidden;
}

Somehow, it doesn't work when I browse the page on mobile. I have gone through the CSS and I can't find anything that interrupts..

Hi there,

in your CSS you have this:


/* Logo in the middle */
@media(min-width: 769px) {

That open @media query never closes ie. has a } to close the last rule. So every CSS rule below that only applies to screens over 768px width

Do you know what CSS is meant to be inside that media query ?

Hi David,

Hmm. I think it closes, this is the code:

/* Logo in the middle */
@media(min-width: 769px) {
    .inside-header>.site-branding,
    .inside-header>.navigation-branding,
    .inside-header>.site-logo,
    .site-branding-container,
    #site-navigation .navigation-branding .site-logo,
    #sticky-navigation .navigation-branding {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        z-index: 1000;
    }

    #site-navigation {
        margin-left: unset !important;
        display: flex;
    }

    .site-header .main-navigation:not(#sticky-navigation) .inside-navigation {
        margin: unset;
    }

    #site-navigation,
    #primary-menu,
    .main-navigation .inside-navigation {
        flex: 1;
    }

    /* Change nth-child(#) to first item to right */
    .main-navigation ul li:nth-child(4) {
        margin-left: auto;
    }
	
.main-navigation {
    position: relative;
}

Nope - i checked :)

See this CSS rule:

/* Change nth-child(#) to first item to right */
    .main-navigation ul li:nth-child(4) {
        margin-left: auto;
    }

Change that to:

/* Change nth-child(#) to first item to right */
    .main-navigation ul li:nth-child(4) {
        margin-left: auto;
    }
}

That extra } will close the media query.

Perfect David. Thanks!
Another problem appeared now though. However the logo padding on desktop isnt working right now..

-J

I exctracted your CSS and tidied it up.
Try this:

.main-navigation {
    position: relative;
}

/* Menu shadow */
:not(.header-wrap)>.site-header,
#mobile-header.is_stuck,
#sticky-navigation {
    box-shadow: 0px 1px 3px 2px rgba(0, 0, 0, 0.43);
}

/* Site logo padding */
.site-logo {
    padding: 35px 0 0 0;
}

/* Hide overflow */
html {
    overflow-x: hidden;
}

/* Animated underline */
.underline mark {
    background-repeat: no-repeat;
    background-image: linear-gradient(180deg, #EBBF52 0%, #EBBF52 100%);
    background-size: 0% 18%;
    background-position: 0 89%;
    transition: background-size .8s ease-in-out;
    margin: 0 -3px;
    padding: 0 3px;
    font-style: normal;
    will-change: background-size;
}

.underline:is(.animate-underline) mark {
    background-size: 100% 18% !important;
    transition-delay: .4s !important;
}

/*--- Desktop only CSS ---*/
@media(min-width: 769px) {
    
    /* Logo in the middle */
    .inside-header>.site-branding,
    .inside-header>.navigation-branding,
    .inside-header>.site-logo,
    .site-branding-container,
    #site-navigation .navigation-branding .site-logo,
    #sticky-navigation .navigation-branding {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        z-index: 1000;
    }

    #site-navigation {
        margin-left: unset !important;
        display: flex;
    }

    .site-header .main-navigation:not(#sticky-navigation) .inside-navigation {
        margin: unset;
    }

    #site-navigation,
    #primary-menu,
    .main-navigation .inside-navigation {
        flex: 1;
    }

    /* Change nth-child(#) to first item to right */
    .main-navigation ul li:nth-child(4) {
        margin-left: auto;
    }
}

/* --- Mobile only CSS -- */
@media (max-width: 768px) {
    
    .main-navigation .main-nav {
        max-height: 0;
        overflow: hidden;
        transition: max-height 500ms ease-out;

    }

    .main-navigation.toggled .main-nav {
        max-height: 1000px;
        transition: max-height 500ms ease-in;
    }

    .main-navigation .main-nav>ul {
        display: block !important;
    }

    .has-inline-mobile-toggle #site-navigation.toggled {
        margin-top: 0;
    }

    .main-navigation .menu-item-has-children .dropdown-menu-toggle {
        float: right;
    }

    .main-navigation .main-nav {
        flex-basis: 100%;
        order: 3;
    }
}

NOTE - its in 3 sections.
The top section is where you add your general styles, so a style that applies to all devices. Then below is the Desktop only CSS and Mobile CSS. If you keep the CSS in that order in those 2 sections then you're less likely to have issues.

THANKS David!
Everything works right now, but the overflow is still kind of funky on mobile. The page doesnt stick when I am scrolling horizontally during the animations.

Change:


/* Hide overflow */
html {
    overflow-x: hidden;
}

to:


/* Hide overflow */
html, body {
    overflow-x: hidden;
}

Got it! Thanks!

Glad to hear that!

This archived topic is closed to new replies.