首页  编辑  

简单优雅的横向多列长表格自适应手机电脑屏幕响应式CSS

Tags: /计算机文档/网页制作/   Date Created:
参考: Responsive Data Tables | CSS-Tricks - CSS-Tricks
一个网页上,有个表格,有很多列,如果在PC网页上显示,是能显示出来的,没有问题,但是如果用手机打开,由于屏幕较小,所以就有横向滚动条,查看就非常不方便,有什么简单的方法,能够自适应手机和电脑屏幕,并且保证显示效果比较好?

例如表格如下:
  1. <table>
  2.  <thead>
  3.  <tr>
  4.   <th>First Name</th>
  5.   <th>Last Name</th>
  6.   <th>Job Title</th>
  7.  </tr>
  8.  </thead>
  9.  <tbody>
  10.  <tr>
  11.   <td>James</td>
  12.   <td>Matman</td>
  13.   <td>Chief Sandwich Eater</td>
  14.  </tr>
  15.  <tr>
  16.   <td>The</td>
  17.   <td>Tick</td>
  18.   <td>Crimefighter Sorta</td>
  19.  </tr>
  20.  </tbody>
  21. </table>

解决方法,CSS如下:
  1. /* 
  2. Max width before this PARTICULAR table gets nasty
  3. This query will take effect for any screen smaller than 760px
  4. and also iPads specifically.
  5. */
  6. @media 
  7. only screen and (max-width: 760px),
  8. (min-device-width: 768pxand (max-device-width: 1024px)  {
  9.  /* Force table to not be like tables anymore */
  10.  tabletheadtbodythtdtr { 
  11.   display: block; 
  12.  }
  13.  
  14.  /* Hide table headers (but not display: none;, for accessibility) */
  15.  thead tr { 
  16.   position: absolute;
  17.   top: -9999px;
  18.   left: -9999px;
  19.  }
  20.  
  21.  tr { border1px solid #ccc; }
  22.  
  23.  td { 
  24.   /* Behave  like a "row" */
  25.   border: none;
  26.   border-bottom1px solid #eee
  27.   position: relative;
  28.   padding-left50%
  29.  }
  30.  
  31.  td:before { 
  32.   /* Now like a table header */
  33.   position: absolute;
  34.   /* Top/left values mimic padding */
  35.   top6px;
  36.   left6px;
  37.   width45%
  38.   padding-right10px
  39.   white-space: nowrap;
  40.  }
  41.  
  42.  /*
  43.  Label the data
  44.  */
  45.  td:nth-of-type(1):before { content"First Name"; }
  46.  td:nth-of-type(2):before { content"Last Name"; }
  47.  td:nth-of-type(3):before { content"Job Title"; }
  48.  td:nth-of-type(4):before { content"Favorite Color"; }
  49.  td:nth-of-type(5):before { content"Wars of Trek?"; }
  50.  td:nth-of-type(6):before { content"Secret Alias"; }
  51.  td:nth-of-type(7):before { content"Date of Birth"; }
  52.  td:nth-of-type(8):before { content"Dream Vacation City"; }
  53.  td:nth-of-type(9):before { content"GPA"; }
  54.  td:nth-of-type(10):before { content"Arbitrary Data"; }
  55. }

显示效果,PC上为正常的表格,手机屏幕显示效果如下: