Bootstrap

时间:2019-01-04 15:17:54

标签: css twitter-bootstrap twitter-bootstrap-3 bootstrap-4

我几乎通过创建panels(其中包含一些cards)来完成我的Django项目中非常重要的部分。我正在使用Bootstrap 3 (BS3),并且集成了从BS4BS3的卡。

我遇到了一个问题,我想引起您的注意,因为这种行为有点怪异。

我的问题:

从下面的动画图片中可以看到,当我打开出版物n°1 出版物n°2 的下拉菜单时,会有一个偏移。它从第二行开始使用卡片创建偏移量。

[![在此处输入图片描述] [1]] [1]

我的问题是:如何重写代码中的引导程序部分以使行为正常?

我希望从每张卡中获得什么:

这就是我想要的每张卡:打开卡>对以下整行进行补偿

[![在此处输入图片描述] [2]] [2]

我所拥有和不想要的行为:

不要有这样的行为:

[![在此处输入图片描述] [3]] [3]

我的代码:

这是我的完整代码:

{% for category in research_categories|dictsort:'name' %}
  <div class="panel-group accordion" id="accordion_{{ category.id }}" role="tablist"
       aria-multiselectable="true">
    <div class="panel panel-default">
      <div class="panel-heading" role="tab">
        <h4 class="panel-title">
          <a data-toggle="collapse" data-parent="#accordion_{{ category.id }}"
             href="#collapseOne_{{ category.id }}" aria-expanded="true" aria-controls="collapseOne">
            <i class="more-less glyphicon glyphicon-plus"></i>
            {{ category }}
            {% for item in category.publication.all %}
              {% if item.new_publication == True %}
                <span class="glyphicon glyphicon-flag"></span>
              {% endif %}
            {% endfor %}
          </a>
        </h4>
      </div>
      <div id="collapseOne_{{ category.id }}" class="panel-collapse collapse" role="tabpanel"
           aria-labelledby="#accordion_{{ category.id }}">
        <div class="panel panel-default subpanel ">
          <div class="row">
            {% for element in research_publications|dictsort:'pub_id' %}
              {% if element.category|stringformat:"s"  == category|stringformat:"s" %}
                <div class="col-md-4">
                  <div class="card" style="width:350px">
                    <img class="card-img-top" style="width: 350px; height: 350px" src="{{ element.cover.url }}" alt="Card image">
                    <div class="card-body">
                      <h4 class="card-title">{{ element }} - {{ element.pub_id }}
                        {% if element.new_publication == True %}
                          <span class="glyphicon glyphicon-flag"></span>
                        {% endif %}
                      </h4>

                      <button class="btn btn-default display-document" type="button" data-toggle="collapse"
                              data-target="#dropdown_{{ element.id }}"
                              aria-expanded="false"><span
                        class="glyphicon glyphicon-chevron-down"></span></button>
                      <div id="dropdown_{{ element.id }}" class="collapse">
                        <div class="publication-title">
                          <table class="table table-condensed">
                            <tbody>

                            {% for item in test_research %}
                              {% if item.publication|stringformat:"s"  == element|stringformat:"s" %}
                                <tr>
                                  <td class="col-md-1">
                                    <input type="checkbox" class="fakeRadio" name="DocumentChoice"
                                           value="{{ item.code }}">
                                  </td>
                                  <td class="col-md-5 document-title">{{ item.title }}</td>
                                  <td class="col-md-1 document-language"> {{ item.language }}</td>
                                  <td class="col-md-1">
                                    {% if item.format == 'pdf' %}
                                      <img src="{% static 'app/img/pdf-icon.png' %}"
                                           style="width:20px; height:20px;"/>
                                    {% endif %}
                                    {% if item.format == 'epub' %}
                                      <img src="{% static 'app/img/epub-icon.png' %}"
                                           style="width:20px; height:20px;"/>
                                    {% endif %}
                                  </td>
                                  <td class="col-md-1 document-flag">
                                    {% if item.publication.new_publication == True %}
                                      <span class="glyphicon glyphicon-flag"></span>
                                    {% else %}
                                      <span></span>
                                    {% endif %}
                                  </td>
                                  <td class="col-md-1 document-cover">
                                    {% if item.publication.cover %}
                                      <a href="{{ item.publication.cover.url }}">
                                        <img class="popup_image"
                                             style="width:20px; height:20px; border-radius:2px;"
                                             id="myImg_{{ item.id }}" src="{{ item.publication.cover.url }}">
                                      </a>
                                    {% endif %}
                                  </td>
                                </tr>
                              {% endif %}
                            {% endfor %}

                            </tbody>
                          </table>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              {% endif %}
            {% endfor %}
          </div>
        </div>
      </div>
    </div>
  </div>
{% endfor %}

这是我以前的代码的简化版本,目的是尝试一些事情:

{% for category in research_categories|dictsort:'name' %}
  <div class="panel-group accordion" id="accordion_{{ category.id }}" role="tablist"
       aria-multiselectable="true">
    <div class="panel panel-default">
      <div class="panel-heading" role="tab">
        <h4 class="panel-title">
          <a data-toggle="collapse" data-parent="#accordion_{{ category.id }}"
             href="#collapseOne_{{ category.id }}" aria-expanded="true" aria-controls="collapseOne">
            <i class="more-less glyphicon glyphicon-plus"></i>
            {{ category }}
          </a>
        </h4>
      </div>
      <div id="collapseOne_{{ category.id }}" class="panel-collapse collapse" role="tabpanel"
           aria-labelledby="#accordion_{{ category.id }}">
        <div class="panel panel-default subpanel ">
          <div class="row">
            {% for element in research_publications|dictsort:'pub_id' %}
              {% if element.category|stringformat:"s"  == category|stringformat:"s" %}
                <div class="col-md-4">
                  <div class="card" style="width:350px">
                    <img class="card-img-top" style="width: 350px; height: 350px" src="{{ element.cover.url }}" alt="Card image">
                    <div class="card-body">
                      <h4 class="card-title">{{ element }}</h4>
                      <button class="btn btn-default display-document" type="button" data-toggle="collapse"
                              data-target="#dropdown_{{ element.id }}"
                              aria-expanded="false"><span
                        class="glyphicon glyphicon-chevron-down"></span></button>
                      <div id="dropdown_{{ element.id }}" class="collapse">
                        <div class="publication-title">
                          <table class="table table-condensed">
                            <tbody>
                            {% for item in test_research %}
                              {% if item.publication|stringformat:"s"  == element|stringformat:"s" %}
                                <tr>
                                  <td class="col-md-5 document-title">{{ item.title }}</td>
                                </tr>
                              {% endif %}
                            {% endfor %}

                            </tbody>
                          </table>
                        </div>
                      </div>
                    </div>
                  </div>
                </div>
              {% endif %}
            {% endfor %}
          </div>
        </div>
      </div>
    </div>
  </div>
{% endfor %}

我不知道您是否需要我的css部分,但我认为问题可能是由于我的自举网格?

谢谢!

1 个答案:

答案 0 :(得分:1)

这似乎是一个clearfix问题。您可以尝试将其添加到CSS中吗?

.panel.panel-default.subpanel > .row  > .col-md-4:nth-child(3n+1) {
  clear: both;
}

根据您的其他代码,对于不同的屏幕尺寸,可能需要更多的变化。