在第一个按钮旁边添加下拉箭头或三角形

时间:2017-11-09 13:34:11

标签: html css

在下面的导航栏中

https://codepen.io/shaswat/pen/XzpRXL

如何在家中创建向下三角形或向下箭头,当悬停在家中时,三角形或箭头应转换为上行。

  1. 无法更改任何html(输入类型,值等),但您可以添加一些不应破坏导航栏的元素现在看起来如何

  2. no bootstrap

  3. HTML

    <div id='cssmenu'>
    <ul>
       <li ><input type=submit value=home>
         <ul>
             <li><input type=submit value=home1 /></li>
             <li><input type=submit value=home2 /></li>
             <li><input type=submit value=home3 /></li>
          </ul>
    
    
       </li>
       <li><input type=submit value=products class=active />
    
       </li>
       <li><input type=submit value=about />
       </li>
       <li><input type=submit value=Contact /></li>
    </ul>
    </div>
    

    CSS

    #cssmenu > ul ul input{
      border-top: 1px solid;  
    }
    #cssmenu input {
      padding: 0;
      border-right: 1px solid;
      border-top: none;
      border-bottom: none;
      border-left: none;
      background: none;
        border-radius : 0px 5px 0px 0px;
    }
    /* Menu CSS */#cssmenu,
    #cssmenu > ul {
      background: black;  
      padding-bottom: 3px; 
      border-radius: 5px 5px 5px 5px;
    }
    #cssmenu:before,
    #cssmenu:after,
    #cssmenu > ul:before,
    #cssmenu > ul:after {
      content: "";
      display: table;
      box-sizing: border-box;
    }
    #cssmenu:after,
    #cssmenu > ul:after {
      clear: both;
    }
    #cssmenu {
      width: auto;
      zoom: 1;
    }
    #cssmenu > ul {
      background: blue;
      margin: 0;
      padding: 0;
      position: relative;
    }
    #cssmenu > ul li {
      margin: 0;
      padding: 0;
      list-style: none;
    }
    #cssmenu > ul > li {
      float: left;
      position: relative;
    }
    #cssmenu > ul > li > input {
      padding: 12px 25px;
      display: block;
      color: white;
      font-size: 13px;
      text-decoration: none;  
      text-shadow: 0 -1px 0 #0d0d0d;
      text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.7);
    
    }
    #cssmenu > ul > li:hover > input {
      background: red;
      -webkit-transition: all 0.40s ease-in-out;
      -moz-transition: all 0.40s ease-in-out;
      -ms-transition: all 0.40s ease-in-out;
      transition: all 0.40s ease-in-out;
    }
    
    #cssmenu > ul > li.active > input,
    #cssmenu > ul > li > input.active {
      background: black;
      color:#fff;
    }
    /* Childs */
    #cssmenu > ul ul {
      opacity: 0;
      visibility: hidden;
      position: absolute;
      top: 40px;
      background: green;
      margin: 0;
      padding: 0;
      z-index: -1;
      box-shadow: 5px 5px 5px #808080;
    }
    #cssmenu > ul li:hover ul {
      opacity: 1;
      visibility: visible;
      margin: 0;
      color: #fff;
      z-index: 2;
      top: 40px;
      left: 0;
    }
    
    #cssmenu > ul ul li {
      list-style: none;
      padding: 0;
      margin: 0;
      width: 100%;
    }
    #cssmenu > ul ul li input {
      padding: 12px ;
      display: block;
      color: white;
      font-size: 14px;
      text-decoration: none;
      width: 150px;
      border-left: 4px solid transparent;
      -webkit-transition: all 0.30s ease-in-out;
      -moz-transition: all 0.30s ease-in-out;
      -ms-transition: all 0.30s ease-in-out;
      transition: all 0.30s ease-in-out;
    }
    #cssmenu > ul ul li input:hover {
      border-left: 10px solid #d64e34;
      background: grey;
    }
    #cssmenu > ul ul li input:active {
      background: green;
    }
    

2 个答案:

答案 0 :(得分:0)

使用字体真棒图标类fa-caret-upfa-caret-down 并使用javascript onmousehoveronmouseout函数来上下切换插入符号。 包括font-awesome和jquery libs

<a onmouseover="changecaretup()" onmouseout="changecaretdown()" >home <i id="caret" class="fa fa-caret-down" aria-hidden="true"></i></a>

java脚本

function changecaretup(){
$("#caret").removeClass("fa-caret-down");
$("#caret").addClass("fa-caret-up");

}

   function changecaretdown(){
    $("#caret").removeClass("fa-caret-up");
    $("#caret").addClass("fa-caret-down");

    }

答案 1 :(得分:0)

Atlast通过HTML unicodes解决方案自己做到了

https://codepen.io/shaswat/pen/XzpRXL

使用css只能让它在uparrow和downarrow之间转换

HTML

<div id='cssmenu'>
<ul>
   <li ><input type=submit value='Home'/>
     <div class="downArrow"> &#9660; </div>
     <div class="upArrow"> &#9650; </div>     
     <ul>
         <li><input type=submit value=home1 /></li>
         <li><input type=submit value=home2 /></li>
         <li><input type=submit value=home3 /></li>
      </ul>


   </li>
   <li><input type=submit value=products class=active />

   </li>
   <li><input type=submit value=about />
   </li>
   <li><input type=submit value=Contact /></li>
</ul>
</div>

CSS

#cssmenu > ul ul input{
  border-top: 1px solid;  
}
#cssmenu input {
  padding: 0;
  border-right: 1px solid;
  border-top: none;
  border-bottom: none;
  border-left: none;
  background: none;
    border-radius : 0px 5px 0px 0px;
}
/* Menu CSS */#cssmenu,
#cssmenu > ul {
  background: black;  
  padding-bottom: 3px; 
  border-radius: 5px 5px 5px 5px;
}
#cssmenu:before,
#cssmenu:after,
#cssmenu > ul:before,
#cssmenu > ul:after {
  content: "";
  display: table;
  box-sizing: border-box;
}
#cssmenu:after,
#cssmenu > ul:after {
  clear: both;
}
#cssmenu {
  width: auto;
  zoom: 1;
}
#cssmenu > ul {
  background: blue;
  margin: 0;
  padding: 0;
  position: relative;
}
#cssmenu > ul li {
  margin: 0;
  padding: 0;
  list-style: none;
}
#cssmenu > ul > li {
  float: left;
  position: relative;
}
#cssmenu > ul > li > input {
  padding: 12px 30px;
  display: block;
  color: white;
  font-size: 13px;
  text-decoration: none;  
  text-shadow: 0 -1px 0 #0d0d0d;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.7);

}
#cssmenu > ul > li:hover > input {
  background:violet;
  -webkit-transition: all 0.40s ease-in-out;
  -moz-transition: all 0.40s ease-in-out;
  -ms-transition: all 0.40s ease-in-out;
  transition: all 0.40s ease-in-out;
}

#cssmenu > ul > li.active > input,
#cssmenu > ul > li > input.active {
  background: black;
  color:#fff;
}
/* Childs */
#cssmenu > ul ul {
  opacity: 0;
  visibility: hidden;
  position: absolute;
  top: 40px;
  background: green;
  margin: 0;
  padding: 0;
  z-index: -1;
  box-shadow: 5px 5px 5px #808080;
}
#cssmenu > ul li:hover ul {
  opacity: 1;
  visibility: visible;
  margin: 0;
  color: #fff;
  z-index: 2;
  top: 40px;
  left: 0;
}

#cssmenu > ul ul li {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
}
#cssmenu > ul ul li input {
  padding: 12px ;
  display: block;
  color: white;
  font-size: 14px;
  text-decoration: none;
  width: 150px;
  border-left: 4px solid transparent;
  -webkit-transition: all 0.30s ease-in-out;
  -moz-transition: all 0.30s ease-in-out;
  -ms-transition: all 0.30s ease-in-out;
  transition: all 0.30s ease-in-out;
}
#cssmenu > ul ul li input[type=submit]:hover {
  border-left: 10px solid #d64e34;
  background: grey;
}
#cssmenu > ul ul li input[type=submit]:active {
  background: green;
}

.downArrow { 
    display: block;  
    position: absolute;
    top: 12px;
    right: 2px;  
    color:white;
}

.upArrow { 
  display: none;
    position: absolute;
    top: 12px;
    right: 2px;  
  color:white;    
}

#cssmenu li:first-child:hover .upArrow{
   display: block;
}

#cssmenu li:first-child:hover .downArrow{
   display: none;
}