Jquery Datatable到响应式数据表

时间:2014-03-23 06:33:04

标签: jquery css3 responsive-design datatables media-queries

我是数据表的新手,从未创建过响应式数据表。所以我可能会请求很多帮助。

这是JQuery数据表可编辑的link。我想创建它响应。我做的第一件事是我移除了它的容器宽度,现在它调整到平板电脑尺寸屏幕,看起来还不错。

#fw_container {
    margin: 0 auto;
    max-width: 90%;
    padding-top: 2em;
}
.full_width {
    width: 90%;
}

但是在屏幕尺寸下面比表格搞乱了。

我希望数据表像this一样工作。

我无法为您提供我实际实施的网站链接,因为它位于网站管理面板中。

任何想法/有用的链接或方向都会对我有所帮助。非常感谢!

2 个答案:

答案 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
});