html 使用flexbox和一些Javascript按列对表进行排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html 使用flexbox和一些Javascript按列对表进行排序相关的知识,希望对你有一定的参考价值。
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<style>
#container {
flex-shrink: 0;
flex-basis: auto;
display: flex;
flex-direction: column;
height: 90%;
margin: 2em;
border: 2px dotted grey;
padding: 0.5em;
}
.row {
flex-flow : row nowrap;
display: flex;
order: 1;
}
.item {
flex: 1;
}
.row.header {
background-color: skyblue;
order: -1;
}
</style>
<div id="container">
<div class="row header">
<div class="item" data-field="nombre">Nombre</div>
<div class="item" data-field="apellidos">Apellidos</div>
<div class="item" data-field="telefono">telefono</div>
</div>
<div class="row">
<div class="item" data-nombre="Jorge">Jorge</div>
<div class="item" data-apellidos="Barrachina">Barrachina</div>
<div class="item" data-telefono="91443456">91443456</div>
</div>
<div class="row">
<div class="item" data-nombre="Susana">Susana</div>
<div class="item" data-apellidos="García">García</div>
<div class="item" data-telefono="91223456">91223456</div>
</div>
<div class="row">
<div class="item" data-nombre="Pedro">Pedro</div>
<div class="item" data-apellidos="Ramirez">Ramirez</div>
<div class="item" data-telefono="91573456">91223456</div>
</div>
<div class="row">
<div class="item" data-nombre="Alba">Alba</div>
<div class="item" data-apellidos="Lopez">Lopez</div>
<div class="item" data-telefono="91833456">91833456</div>
</div>
<div class="row">
<div class="item" data-nombre="Ramón">Ramón</div>
<div class="item" data-apellidos="Casco">Casco</div>
<div class="item" data-telefono="91653456">91653456</div>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded",init,false);
function init () {
var container = document.getElementById('container');
container.onclick = function (e) {
var selected = e.target;
var filter = selected.dataset.field;
[].slice.call(container.querySelectorAll('[data-' + filter +']')).sort(function(a,b){ return (a.dataset[filter].toLowerCase() > b.dataset[filter].toLowerCase()) - (a.dataset[filter].toLowerCase() < b.dataset[filter].toLowerCase()); }).map(function(n,i){ n.parentElement.style.order = i+1; return n;});
};
}
</script>
</body>
</html>
以上是关于html 使用flexbox和一些Javascript按列对表进行排序的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 flexbox 使菜单居中 [关闭]
Img 不尊重 html 中的宽度(使用 flexbox)
FlexboxLayout 的一些基本介绍与基本用法
Flexbox 嵌套元素
flexbox 一个元素固定高度,其他填充
如何更改 flexbox 中图片的大小?