Bootstrap 3 种手风琴的奇怪行为
Bootstrap 3 strange behavior with accordion
我的页面上展示了我的产品,总共 8 个。
我目前有这个设置
<div class="row">
<div class="col-lg-12">
@foreach (var item in Model)
{
<div class="col-lg-4" style="margin-bottom:5%; position:relative">
<div class="boxTop"></div>
<div class="box">
<img src="/Content/Images/YogurtImages_280x135/@item.ImageName" width="280" height="135" alt="@item.ImageName" class="productMarginTop">
<br />
<p style="color: @item.ProductTextColor; font-size: @item.FontSize;" class="productTitle text-center">
@item.ProductTitle
</p>
<br />
<hr style="border: 1px solid @item.ProductTextColor" />
<h5 style="color: @item.ProductTextColor; font-size:19px" class="text-center" id="nutritionInfo" data-productid="@item.ProductId" data-colorcode="@item.ProductTextColor" data-productname="@item.ProductTitle">
NUTRITIONAL INFO <span class="glyphicon glyphicon-chevron-right"></span>
</h5>
<hr style="border: 1px solid @item.ProductTextColor" />
<h5 class="text-center" id="findStore">
<a data-toggle="collapse" data-parent="#accordion" href="#@item.ProductId" aria-expanded="true" aria-controls="@item.ProductId" style="color: @item.ProductTextColor;font-size:19px" class="text-center">
FIND A STORE <span class="glyphicon glyphicon-chevron-down"></span>
</a>
</h5>
<div id="@item.ProductId" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
<p>
Content
</p>
<p>
More Content
</p>
</div>
</div>
<hr style="border: 1px solid @item.ProductTextColor" />
</div>
<div class="boxBtm"></div>
</div>
}
</div>
</div>
所以有 12 列,每个产品占 4 列。每个产品都有其手风琴,因此当单击“查找商店”时,会展开显示该产品库存的详细信息。因为我有八个产品,所以我当前的布局是这样的
第一行:3 个产品
第二行:3 个产品
第三行:2 个产品
如图所示
现在,当我在第一行或第二行的第一个或第二个产品上单击“查找商店”时,所有内容都会被推到右侧,因此它不会保持此处所示的结构,正如您可以看到第二个产品或者第一行被展开导致布局混乱
但是如果我单击第一行或第二行的第三个产品,布局将保持不变...
我有点疑惑为什么会这样?有人可以透露一些这方面的知识吗?
首先 <div class="col-lg-12">
是多余的,可以删除。其次,您的 'foreach' 中是否显示了所有产品?因为那会让你的 HTML 结构看起来像这样:
<div class="row">
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..1</div>
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..2</div>
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..3</div>
...
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..12</div>
</div>
但是你要的是这个:
<div class="row">
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..1</div>
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..2</div>
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..3</div>
</div>
<div class="row">
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..4</div>
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..5</div>
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..6</div>
</div>
这应该可以解决您的行未对齐的问题
我的页面上展示了我的产品,总共 8 个。
我目前有这个设置
<div class="row">
<div class="col-lg-12">
@foreach (var item in Model)
{
<div class="col-lg-4" style="margin-bottom:5%; position:relative">
<div class="boxTop"></div>
<div class="box">
<img src="/Content/Images/YogurtImages_280x135/@item.ImageName" width="280" height="135" alt="@item.ImageName" class="productMarginTop">
<br />
<p style="color: @item.ProductTextColor; font-size: @item.FontSize;" class="productTitle text-center">
@item.ProductTitle
</p>
<br />
<hr style="border: 1px solid @item.ProductTextColor" />
<h5 style="color: @item.ProductTextColor; font-size:19px" class="text-center" id="nutritionInfo" data-productid="@item.ProductId" data-colorcode="@item.ProductTextColor" data-productname="@item.ProductTitle">
NUTRITIONAL INFO <span class="glyphicon glyphicon-chevron-right"></span>
</h5>
<hr style="border: 1px solid @item.ProductTextColor" />
<h5 class="text-center" id="findStore">
<a data-toggle="collapse" data-parent="#accordion" href="#@item.ProductId" aria-expanded="true" aria-controls="@item.ProductId" style="color: @item.ProductTextColor;font-size:19px" class="text-center">
FIND A STORE <span class="glyphicon glyphicon-chevron-down"></span>
</a>
</h5>
<div id="@item.ProductId" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
<div class="panel-body">
<p>
Content
</p>
<p>
More Content
</p>
</div>
</div>
<hr style="border: 1px solid @item.ProductTextColor" />
</div>
<div class="boxBtm"></div>
</div>
}
</div>
</div>
所以有 12 列,每个产品占 4 列。每个产品都有其手风琴,因此当单击“查找商店”时,会展开显示该产品库存的详细信息。因为我有八个产品,所以我当前的布局是这样的
第一行:3 个产品 第二行:3 个产品 第三行:2 个产品
如图所示
现在,当我在第一行或第二行的第一个或第二个产品上单击“查找商店”时,所有内容都会被推到右侧,因此它不会保持此处所示的结构,正如您可以看到第二个产品或者第一行被展开导致布局混乱
但是如果我单击第一行或第二行的第三个产品,布局将保持不变...
我有点疑惑为什么会这样?有人可以透露一些这方面的知识吗?
首先 <div class="col-lg-12">
是多余的,可以删除。其次,您的 'foreach' 中是否显示了所有产品?因为那会让你的 HTML 结构看起来像这样:
<div class="row">
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..1</div>
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..2</div>
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..3</div>
...
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..12</div>
</div>
但是你要的是这个:
<div class="row">
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..1</div>
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..2</div>
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..3</div>
</div>
<div class="row">
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..4</div>
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..5</div>
<div class="col-lg-4" style="margin-bottom:5%; position:relative">..6</div>
</div>
这应该可以解决您的行未对齐的问题