我是数据表的新手,从未创建过响应式数据表。所以我可能会请求很多帮助。
这是JQuery数据表可编辑的link。我想创建它响应。我做的第一件事是我移除了它的容器宽度,现在它调整到平板电脑尺寸屏幕,看起来还不错。
#fw_container {
margin: 0 auto;
max-width: 90%;
padding-top: 2em;
}
.full_width {
width: 90%;
}
但是在屏幕尺寸下面比表格搞乱了。
我希望数据表像this一样工作。
我无法为您提供我实际实施的网站链接,因为它位于网站管理面板中。
任何想法/有用的链接或方向都会对我有所帮助。非常感谢!
答案 0 :(得分:1)
在响应式设计中,大多数技巧都按百分比值完成,直到某个点,之后我们开始使用@media查询。
对于你的例子,我认为用于th和td标签的百分比可以管理它,但如果它小于40em那么完全不同的CSS控制如下;
//when width less than 40em you can also use px
@media (max-width: 40em)
{
// show every item as a line
.movie-list td, .movie-list th {
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
float: left;
clear: left;
}
//for th and .titles display them as a big bold title with different background color
.movie-list tbody th, .movie-list tbody td.title {
display: block;
font-size: 1.2em;
line-height: 110%;
padding: .5em .5em;
background-color: #fff;
color: #77bbff;
-moz-box-shadow: 0 1px 6px rgba(0,0,0,.1);
-webkit-box-shadow: 0 1px 6px rgba(0,0,0,.1);
box-shadow: 0 1px 6px rgba(0,0,0,.1);
}
//for th only this is only for margin to override previous css
.movie-list tbody th {
margin-top: 0;
text-align: left;
}
}
希望这有帮助,这只是一些开始;
这里你的鱼伴侣:)只需使用开发人员工具栏并在h2 Live Example标签下添加代码;
<style>
// check if it is a small device ipad iphone android etc.
// google for example 'css media queries for mobile"
@media (max-width: 40em) {
// just did something to display second row use your skills
table#example tr.even
{
border: 2px solid red;
}
// exactly the same with other one to display td as rows
// with css selector you can hide first one display 2nd one like a title etc
table#example tr td
{
background-color:white;
width: 90%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
float: left;
clear: left;
}
// remove the thead as we dont need it
// you should do similar to the footer as well
table#example thead
{
display:none;
}
// hide unwanted pagination elements
table#example ~ div.fg-toolbar div#example_info,
table#example ~ div.fg-toolbar div a
{
display:none;
}
// and only display next and prev
// it s not what I actually wanted to make it more tab able make it bigger and try to cover half of the row.
table#example ~ div.fg-toolbar div a#example_previous,
table#example ~ div.fg-toolbar div a#example_next
{
display:inline-block;
width:46% !important;
}
}
</style>
据我所知,编辑和添加内容正在运行,因为这完全是css,只需要深入挖掘。
答案 1 :(得分:0)
您只能使用jquery来做到这一点。 fnAdjustColumnSizing函数会自动调整标题的with。当您调整窗口大小时,我们将使用此功能。
$(window).resize(function(){
//Redraw datable
$('#your-table').dataTable().fnAdjustColumnSizing();//Automatically sets header size
});