【问题标题】:Bootstrap 4 Collapse show state with Font Awesome iconBootstrap 4 使用 Font Awesome 图标折叠显示状态
【发布时间】:2016-12-22 13:19:30
【问题描述】:

我有一个 Bootstrap 4 折叠如下...

<a data-toggle="collapse" href="#collapseNEWS" aria-expanded="true" aria-controls="collapseNEWS"><i class="fa fa-chevron-circle-up" aria-hidden="true"></i></a>
<div class="row collapse in" id="collapseNEWS">Content</div>

这会自动显示内容,除非单击字体真棒图标。我在初始加载时显示 fa-chevron-circle-up 图标。

单击图标后,内容将关闭,我想改为显示 fa-chevron-circle-down 图标。我将如何实现这一目标?

我查看了 alpha 文档: http://v4-alpha.getbootstrap.com/components/collapse/

...但我不清楚我如何建立要显示的状态...

<i class="indicator fa fa-chevron-circle-up" aria-hidden="true"></i>

或者...

<i class="indicator fa fa-chevron-circle-down" aria-hidden="true"></i>

谢谢 新泽西州

【问题讨论】:

    标签: bootstrap-4 icons


    【解决方案1】:

    html代码

    <a class="list-group-item" aria-current="true" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample"><i class="fas fa-caret-right"></i></a>
    

    css代码

    [aria-expanded="true"] .fa-caret-right{ transform: rotate(90deg); }
    

    【讨论】:

    • 请解释你的答案,而不仅仅是粘贴代码
    【解决方案2】:

    没有 FontAwesome unicode 和 JavaScript 的解决方案:

    1. 在您当前有一个图标的地方包括两个图标
    2. 使用 CSS 在内容展开时隐藏向上箭头元素,并在内容折叠时隐藏向下箭头

    示例:

    HTML:

    <a data-toggle="collapse" href="#collapseNEWS" aria-expanded="true" aria-controls="collapseNEWS">
        <i class="fa fa-chevron-circle-up"></i>
        <i class="fa fa-chevron-circle-down"></i>
    </a>
    

    CSS:

    [aria-expanded="true"] .fa-chevron-circle-up, 
    [aria-expanded="false"] .fa-chevron-circle-down {
        display:none;
    }
    

    【讨论】:

      【解决方案3】:

      在 Fontawesome 5.5 中使用 Rails 和 Bootstrap 4

      这对我来说不太有效,它在重新关闭时翻转它。我不得不添加另一个状态控件:

      [data-toggle="collapse"] .fas:before {  
        content: "\f055";
      }
      
      [aria-expanded="true"] .fas:before {  
        content: "\f056";
      }
      
      [data-toggle="collapse"].collapsed .fas:before {
        content: "\f055";
      }
      

      【讨论】:

      • 这对我帮助很大!谢谢
      【解决方案4】:

      您可以使用自定义 CSS(内容属性)添加 font-awesome 图标:

      只需使用&lt;i class="fa"&gt;&lt;/i&gt;

      [data-toggle="collapse"] .fa:before {   
        content: "\f139";
      }
      
      [data-toggle="collapse"].collapsed .fa:before {
        content: "\f13a";
      }
      

      codepen 中的示例

      【讨论】:

      • 感谢您提供详细示例。
      • 太棒了!只需要它!谢谢
      • 谢谢!我正在尝试使用 js 解决方案。
      • 该死的干净
      【解决方案5】:

      对于 FontAwesome 5 的 SASS 版本,使用 fa-content() mixin

      HTML:

      <i class="fas"></i>
      

      SASS:

      [data-toggle="collapse"] i.#{$fa-css-prefix}s:before {
        content: fa-content($fa-var-chevron-circle-down);
      }
      
      [data-toggle="collapse"].collapsed i.#{$fa-css-prefix}s:before {
        content: fa-content($fa-var-chevron-circle-right);
      }
      

      我更喜欢在圆形背景中使用人字形

      【讨论】:

        【解决方案6】:

        您可以将toggleClass() 添加到&lt;a&gt;&lt;/a&gt; 元素的onclick 事件和Font Awesome icon 元素的附加类fa-rotate-180

        fa-rotate-180 - Font Awesome 的标准类。

        <a href='' onclick="$('#collapsed-chevron').toggleClass('fa-rotate-180')">
           <i class="fa fa-chevron-circle-up" id="collapsed-chevron"></i>
           Link Text
        </a>
        

        【讨论】:

          【解决方案7】:

          为了进一步扩展 - 现在使用 Bootstrap 4 Beta,如果它有所作为:

          当初始状态折叠时这将不起作用 - 图标将被反转。在一个循环中单击按钮将修复它 - 但如果一开始就拥有它会很好。秘诀:加

          class="collapsed"
          

          到切换链接。带有可点击文本标题和图标的示例:

          <div class="card-header d-flex justify-content-between" id="headingCollapse1">
              <div>
                  <a class="collapsed" data-toggle="collapse" href="#collapse1" aria-expanded="false" aria-controls="collapse1">
                      Card Header
                  </a>
              </div>
              <div>
                  <a data-toggle="collapse" class="collapsed btn btn-default btn-xs text-right" href="#collapse1" aria-label="Expand/Collapse Card 1" aria-expanded="false" role="button">
                      <i class="fa" aria-hidden="true"></i>
                      <span class="sr-only">Expand/Collapse Card 1</span>
                  </a>
              </div>
          </div>
          <div id="collapse1" class="collapse" aria-labelledby="headingCollapse1">
              <div class="card-body">
                  Here is some wonderful content that you can't see...until expanded!
              </div>
          </div>
          

          我还发现加号/减号符号更直观 - 带有箭头,我不太确定它是否表示“当前状态已打开/关闭”或“按此打开/关闭”。基于树视图等,我习惯“+”表示“关闭/点击打开”,“-”表示“打开/点击关闭”。因此,虽然不是问题的直接部分,但我会将其留给其他人查找(格式完全归功于上面的@tmg - 我只是插入了“正确”的字符):

          [data-toggle="collapse"] i:before{
              content: "\f146";
          }
          
          [data-toggle="collapse"].collapsed i:before{
              content: "\f0fe";
          }
          

          【讨论】:

            猜你喜欢
            • 2018-04-10
            • 1970-01-01
            • 2013-08-21
            • 2021-10-16
            • 2019-01-09
            • 2018-10-11
            • 2019-07-01
            • 2022-09-28
            • 1970-01-01
            相关资源
            最近更新 更多