我可以按类名控制HTML元素的顺序吗?

前端之家收集整理的这篇文章主要介绍了我可以按类名控制HTML元素的顺序吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有几个固定类名的div:
<div class="type-a"></div>
<div class="type-b"></div>
<div class="type-c"></div>

可能有这些的倍数,这些div并不总是有序.它们是动态添加的.

<div class="type-a"></div>
<div class="type-b"></div>
<div class="type-c"></div>
<div class="type-c"></div>
<div class="type-b"></div>
<div class="type-b"></div>
<div class="type-c"></div>
<div class="type-a"></div>

我想将所有类型-a和类型-b div分组并在type-c div前面显示它们(可以通过浮动类型a-amp; type-b到右边,type-c到左边) .同样在type-a和type-b之间我想首先显示type-a div.然后键入-b秒.

如果不重新安排上面的HTML或使用JavaScript,我试图得到这个输出

[type-a] [type-a] [type-b] [type-b] [type-b] [type-c] [type-c] [type-c]

这只能用CSS吗?

这是fiddle,div左右浮动.现在需要发生的排序是在type-a和type-b之间.

解决方法

您可以使用flexBox和order属性
.container>div {
  width: 20px;
  height: 20px;
  background-color: yellow;
}

.container {
  display: inline-flex;
}

.type-a {
  order: 1;
}

.type-b {
  order: 2;
}

.type-c {
  order: 3;
}
<div class="container">
  <div class="type-a">A</div>
  <div class="type-b">B</div>
  <div class="type-c">C</div>
  <div class="type-c">C</div>
  <div class="type-b">B</div>
  <div class="type-b">B</div>
  <div class="type-c">C</div>
  <div class="type-a">A</div>
</div>

订单也适用于Grid:

.container>div {
  background-color: yellow;
}

.type-a {
  order: 1;
}

.type-b {
  order: 2;
}

.type-c {
  order: 3;
}

.container {
  display: grid;
  grid-template-columns: repeat(auto-fit,20px);
  
}
<div class="container">
  <div class="type-a">A</div>
  <div class="type-b">B</div>
  <div class="type-c">C</div>
  <div class="type-c">C</div>
  <div class="type-b">B</div>
  <div class="type-b">B</div>
  <div class="type-c">C</div>
  <div class="type-a">A</div>
</div>
原文链接:/html/227646.html

猜你在找的HTML相关文章