将后退箭头与下拉列表对齐的问题

时间:2015-04-22 16:17:02

标签: html css

在下拉列表旁边间隔后退箭头时遇到问题。问题在于它使箭头居中,就像下拉列表处于活动状态一样。我希望它在下拉列表的左侧不对齐它是如何的。

我在显示器中添加了一个jsfiddle。

HTML

<div id="portfolio">
 <table>
 <tr>
 <td>
    <a href="index.html"><div class="back-arrow-left" ></div></a>
 </td>
 <td>
 <dropdown>
    <input id="toggle2" type="checkbox">
    <label for="toggle2" class="animate">Portfolio<i class="fa fa-list float-right"></i></label>
    <ul class="animate">
       <li class="animate">Websites</li>
       <li class="animate">Computer Animations</li>
       <li class="animate">C/C++ Programs</li>
    </ul>
 </dropdown>
 </td>
 </tr>
 </table>
 </div>

CSS

.back-arrow-left {
width: 0;
height: 0;
border-top: 30px solid transparent;
border-bottom: 30px solid transparent;
border-right:30px solid gray;
vertical-align: top;
}

.back-arrow-left:hover {
border-right:30px solid #1ABC9C;
}

#portfolio{
width: 400px;
float: right;
}

*{
 padding: 0;
 margin: 0;
 font-family: 'Lato', sans-serif;
 box-sizing: border-box;
   }
   .float-right{
 float: right;
   }
   .fa{
    font-size: .8em;
  line-height: 22px !important;
    }
    dropdown{
   display: inline-block;
   margin: 0px 50px;
    }
    dropdown label, dropdown ul li{
    display: block;
    width: 200px;
    background: #ECF0F1;
    padding: 15px 20px;
     }
   dropdown label:hover, dropdown ul li:hover{
   background: #1ABC9C;
   color: white;
   cursor: pointer;}

   dropdown label{
   color: #1ABC9C;
   border-left: 4px solid #1ABC9C;
   border-radius: 0 5px 0 0; 
  position: relative;
   z-index: 2;
}
  dropdown input{
  display: none;
}
dropdown input ~ ul{
position: relative;
 visibility: hidden;
 opacity: 0;
 top: -20px;
 z-index: 1;
}
dropdown input:checked + label{
 background: #1ABC9C;
 color: white;
 }

dropdown input:checked ~ ul{
 visibility: visible;
 opacity: 1;
 top: 0;
 }
  $colors: #E74C3C, #0072B5, #2C3E50;

@for $i from 1 through length($colors) {
 dropdown ul li:nth-child(#{$i}) {
  border-left: 4px solid nth($colors, $i);
  .fa{
    color: nth($colors, $i);
  }
  &:hover {
    background: nth($colors, $i);
    color: white;
    .fa{
    color: white; 
    }
  }
  }
 }

.animate{
-webkit-transition: all .3s;
-moz-transition: all .3s;
-ms-transition: all .3s;
-ms-transition: all .3s;
transition: all .3s;  
backface-visibility:hidden;
-webkit-backface-visibility:hidden; /* Chrome and Safari */
-moz-backface-visibility:hidden; /* Firefox */
-ms-backface-visibility:hidden; /* Internet Explorer */

http://jsfiddle.net/e1nuabgs/

2 个答案:

答案 0 :(得分:2)

您可以为表格数据提供一个类,并将垂直对齐方式更改为顶部。

.arrow_box{
    vertical-align: top;
}

Updated jsFiddle

答案 1 :(得分:2)

您使用该表是否有特殊原因?这不符合HTML 5,可能会在以后引起问题。

事实上,它是导致您出现问题的表格。你有围绕数据的表格,它应该将它定位到你想要的顺序,但你已经在使用css将它与表格对齐!

如果你取出桌子并在你的CSS上添加一行,它就可以完美地运作。

.back-arrow-left {
       float: left;
       width: 0;
       height: 0;
       border-top: 30px solid transparent;
       border-bottom: 30px solid transparent;
       border-right:30px solid gray;
       vertical-align: top;
}

<div id="portfolio">
    <a href="index.html"><div class="back-arrow-left" ></div></a>
    <dropdown>
      <input id="toggle2" type="checkbox">
      <label for="toggle2" class="animate">Portfolio<i class="fa fa-list float-right"></i></label>
         <ul class="animate">
           <li class="animate">Websites</li>
           <li class="animate">Computer Animations</li>
         <li class="animate">C/C++ Programs</li>
      </ul>
   </dropdown>
 </div>

I've updated your JSFiddle