代码之家  ›  专栏  ›  技术社区  ›  Dave

中心位置:TD内的相对位置

  •  1
  • Dave  · 技术社区  · 7 年前

    我有一个表,想添加一个手风琴切换到某些行,以显示更多信息。我找到了一个好看的+动画与手风琴切换,但似乎无法使它在我的TD正确的中心。到目前为止,我的代码如下:

    <tr ng-repeat="item in c.list track by $index" ng-if="$index >= data.window_start && $index < data.window_end">
              <td>
                <div ng-class="{'accordion-toggle collapsed':item.work_history_type == 'Uniformed Service'}" data-toggle="collapse" href="#{{item.sys_id}}" role="button" aria-expanded="false" aria-controls="collapseDetails"></div>
              </td>
              <td>{{item.work_history_type}}
              </td>
              <td>{{item.work_name}}
                <div id="{{item.sys_id}}" class="collapse">
                  <div ng-repeat="item2 in c.list2 | filter: {'uni' : item.sys_id}">
                    <span ng-click="c.newEntry(item2.sys_id, 'campaign_table','newWork')"class="h4 edit" >{{item2.camp}}: From: {{item2.from}} To: {{item2.to}}</span>
                  </div>
                </div>          
              </td>
    
              <td>{{item.from}}</td>
              <td>{{item.to}}</td>
            </tr>
    

    我的css如下所示:

    .accordion-toggle {
      position: relative;
    }
    
    .accordion-toggle::before,
    .accordion-toggle::after {
      content: '';
      display: block;
      position: absolute;
      width: 12px;
      height: 2px;
      background-color: $color-darkest;
      -webkit-transform-origin: 50% 50%;
      -ms-transform-origin: 50% 50%;
      transform-origin: 50% 50%;
      -webkit-transition: all 0.25s;
      transition: all 0.25s;
    }
    .accordion-toggle::before {
      -webkit-transform: rotate(-90deg);
      -ms-transform: rotate(-90deg);
      transform: rotate(-90deg);
      opacity: 0;
    }
    .accordion-toggle.collapsed::before {
      -webkit-transform: rotate(0deg);
      -ms-transform: rotate(0deg);
      transform: rotate(0deg);
      opacity: 1;
    }
    .accordion-toggle.collapsed::after {
      -webkit-transform: rotate(-90deg);
      -ms-transform: rotate(-90deg);
      transform: rotate(-90deg);
    }
    
    .accordion-toggle > span {
      margin-left: 20px;
    }
    

    最终结果如下:

    enter image description here

    加号没有正确对齐,关于如何解决这个问题有什么指导吗? 谢谢!

    2 回复  |  直到 7 年前
        1
  •  0
  •   Sam    7 年前

    我假设你说的是垂直对齐TD内的加号,虽然底部的句子说它们对齐正确,但它们是对齐到顶部而不是垂直中心。

    因为它们是绝对的位置,你需要给它们一个在容器内的位置。试着看看这个密码笔: https://codepen.io/samandalso/pen/LrbpqJ

    .accordion-toggle::before,
    .accordion-toggle::after {
      content: '';
      display: block;
      position: absolute;
      width: 12px;
      height: 2px;
      background-color: red;
      -webkit-transform-origin: 50% 50%;
      -ms-transform-origin: 50% 50%;
      transform-origin: 50% 50%;
      -webkit-transition: all 0.25s;
      transition: all 0.25s;
      top: 50%;
      left: 0;
    }
    
    • 固定代码笔链接:)
        2
  •  0
  •   Menefee    7 年前

    试着让它居中

    .accordion-toggle > span {
        margin-left:20%;
        top:50%;
    }