onhover列表项目会更改特定样式

时间:2015-05-17 13:52:19

标签: jquery html css css3 jquery-hover

你好堆叠器,

我有以下情况,我不确切知道如何解决它。 我有一些列表项,当在项目或onclick上进行onhover时,此项应如下所示:

hover and active list item http://i61.tinypic.com/16atz6h.jpg

我有以下HTML代码,但我真的不知道如何解决这个CSS3(而不是图片)的最佳方法,因为它包含箭头

<div class="select-items">
    <h4>Available items:</h4>
    <div class="select-row-item">
        <div class="select-row-item-inner">
            <div class="selectableRow" style="float: left;">First Item</div>
            <img class="arrowRight" src="images/right-arrow.png">
        </div>
    </div>              
    <div class="select-row-item">
        <div class="select-row-item-inner">
            <div class="selectableRow" style="float: left;">Second Item</div>
            <img class="arrowRight" src="images/right-arrow.png">
        </div>
    </div>                        
    <div class="select-row-item">
        <div class="select-row-item-inner">
            <div class="selectableRow" style="float: left;">Third Item</div>
            <img class="arrowRight" src="images/right-arrow.png">
        </div>
    </div>                       
</div>

希望有人能帮助我。

4 个答案:

答案 0 :(得分:2)

DEMO:http://jsfiddle.net/murid/wv107qgo/

我获得了一些尺寸和颜色的创意许可证,您应该能够根据自己的需要进行修复,但效果很好。右边的三角形是用纯CSS完成的。

.select-items {
    width: 300px;
    border: 1px solid #eee;
    color: #444;
    font-family: Helvetica, Arial, 'sans-serif';
    padding: 10px 20px;
}

ul {
    padding: 0;    
}

ul li {
    list-style: none;
}

ul li a {
    text-decoration: none;
    color: #444;
    display: block;
    padding: 10px;
    font-size: 12px;
    position: relative;
    height: 16px;
}

ul li a:after {
    content:"";
    width:0;
    height:0;
    border-top:18px solid transparent;
    border-bottom:18px solid transparent;
    border-left:18px solid #fff;
    position: absolute;
    right: -18px;
    top: 0;
}

ul li a:hover {
    background-color: #69a0ff;
    color: #fff;
}

ul li a:hover:after {
    border-left:18px solid #69a0ff;
}

ul li a i.arrow {
    width: 6px;
    height: 10px;
    display: inline-block;
    float: right;
    background: url('http://s7.postimg.org/ze62pveef/arrow.png') right top no-repeat;
    background-size: 6px 20px;
}

ul li a:hover i.arrow {
    background-position: right bottom;
}
<div class="select-items">
    <ul>
        <li>
            <a href="">First Item <i class="arrow"></i></a>
        </li>
        <li>
            <a href="">Second Item <i class="arrow"></i></a>
        </li>
        <li>
            <a href="">Third Item <i class="arrow"></i></a>
        </li>
    </ul>
</div>

答案 1 :(得分:0)

只需使用:hover即可。例如:

.selectableRow:hover{
    background-color: lightblue;
}

您还可以使用以下内容更改箭头图像:

.selectableRow:hover .arrowRight {
   content: url("images/right-arrow-hover.png");
}

答案 2 :(得分:0)

你应该选择&#34; select-row-item-inner&#34;等级并在悬停时更改其背景。

.select-row-item-inner:hover {

    background-color: blue;

}

答案 3 :(得分:0)

*{
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

ul{    
    max-width: 250px;   
    background: #FDFDFD;    
    margin: 25px auto;
    list-style: none;
}
ul li{
    padding-right: 20px;
}
ul li a{
    display: block;
    padding: 10px 15px;    
    color: #555;
    text-decoration: none;   
    position: relative;
}

ul li a:hover{
    background: #5CA5FF;
    color: #fff;
}
ul li a::before{
    content: '>';
    position: absolute; top: 50%; right: 5px;
     -webkit-transform: translate(0,-50%);
    -ms-transform: translate(0,-50%);
        transform: translate(0,-50%);
}


ul li a:hover:after {
    content: ''; 
    position: absolute; right: -38px; top: 50%; 
    border: 19px solid transparent;	
    border-left: 19px solid #5CA5FF;
    -webkit-transform: translate(0,-50%);
    -ms-transform: translate(0,-50%);
        transform: translate(0,-50%);
}
<ul>
    <li><a href="#">item 1</a>
     <li><a href="#">item 2</a>
     <li><a href="#">item 3</a>
</ul>