ladanta
ladanta

Reputation: 469

&:hover with Sass not working

I'm using SASS with bootstrap to create a nav here and can't quite get the pseudo class for hover to work, can anyone see what I'm doing wrong?

HTML:

    <div class="container">
    <nav class="navbar navbar-default" role="navigation">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
        </div>
        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse navbar-ex1-collapse">
            <ul class="nav navbar-nav">
                <li><a href="#">Home</a></li>
                <li><a href="#">Our Clients</a></li>
                <li class="logo"></li>
                <li><a href="#">Our Products</a></li>
                <li><a href="#">Contact Us</a></li>
            </ul>
        </div>
    </nav>
</div>

CSS/SASS here:

.navbar {
    background-color: transparent;
    border: none;
    padding-top: 3em;
    .navbar-nav {
        display: inline-block;
        float: none;
    }
    .navbar-collapse {
        text-align: center;
        a {
            width: 8em;
            font-family: 'Allan', cursive;
            font-size: 2em;
            &:hover {
                color: #f00;
            }
        }
    }
}

I'm being told I need to add more detail because my post is mostly code so I'm just adding this sentence.

Upvotes: 3

Views: 22011

Answers (2)

Nikit Barochiya
Nikit Barochiya

Reputation: 1091

.classname {
    margin:50px;
    color:white;
    &:hover {
        color:red;
    }
}

Upvotes: 6

lmgonzalves
lmgonzalves

Reputation: 6588

Your SASS code is working, but Bootstrap have defined this rule:

.navbar-default .navbar-nav > li > a:hover{
    color: #333;
}

So you need to set a rule more specific than it, example adding li before a in the cascade chain:

.navbar {
    background-color: transparent;
    border: none;
    padding-top: 3em;
    .navbar-nav {
        display: inline-block;
        float: none;
    }
    .navbar-collapse {
        text-align: center;
        li{
            a {
                width: 8em;
                font-family: 'Allan', cursive;
                font-size: 2em;
                &:hover {
                    color: #f00;
                }
            }
        }
    }
}

DEMO

Or use !important, like:

&:hover {
    color: #f00 !important;
}

DEMO2

Upvotes: 6

Related Questions