emeraldhieu
emeraldhieu

Reputation: 9439

Display table correctly on all devices

I have this code to generate a table. The problem is it gets broken on mobiles and tablets (Nexus 4, Nexus 7, ...). I think the table should have a layout when it scales to smaller viewport. How to display the table correctly on all devices?

Table layout got from here

<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <script type='text/javascript' src='http://code.jquery.com/jquery-1.2.6.js'></script>   
    <script type='text/javascript'> 
    $(document).ready(function(){

    });
    </script>

    <style>
    .div-table {
        display:table;
        width:auto;
        border-spacing:5px; /*cellspacing:poor IE support for this*/
    }

    .div-table-header {
        display:table-row;
        width:auto;
        clear:both;
    }

    .div-table-row {
        display:table-row;
        width:auto;
        clear:both;
    }

    .div-table-col {
        float:left; /*fix for  buggy browsers*/
        display:table-column;
        width:96px;

        overflow: hidden;
        text-align: center;
        vertical-align: middle;
    }

    .div-table .div-table-row:nth-child(even) {
        background-color: #FFE9CB;
    }

    .div-table .div-table-row:nth-child(odd) {
        background-color: #FFF;
    }

    .div-table .div-table-row {
        border-top: 1px solid #FFB312;
        border-bottom: 1px solid #FFB312;
    }

    .skillLabel {
        text-align: right;
    }
    </style>
</head>

<div class="div-table">
   <div class="div-table-header">
      <div class="div-table-col">&nbsp;</div>
      <div class="div-table-col">Don't know</div>
      <div class="div-table-col">Less than 1 year</div>
      <div class="div-table-col">More than 1 year</div>
      <div class="div-table-col">More than 2 year</div>
      <div class="div-table-col">More than 3 year</div>
   </div>
   <div class="div-table-row">
      <div class="skillLabel div-table-col">Java</div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-SmF2YQ0=" value="0"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-SmF2YQ0=" value="1"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-SmF2YQ0=" value="2"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-SmF2YQ0=" value="3"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-SmF2YQ0=" value="4"></div>
   </div>
   <div class="div-table-row">
      <div class="skillLabel div-table-col">PHP</div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-UEhQDQ==" value="0"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-UEhQDQ==" value="1"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-UEhQDQ==" value="2"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-UEhQDQ==" value="3"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-UEhQDQ==" value="4"></div>
   </div>
   <div class="div-table-row">
      <div class="skillLabel div-table-col">Javascript</div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-SmF2YXNjcmlwdA0=" value="0"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-SmF2YXNjcmlwdA0=" value="1"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-SmF2YXNjcmlwdA0=" value="2"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-SmF2YXNjcmlwdA0=" value="3"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-SmF2YXNjcmlwdA0=" value="4"></div>
   </div>
   <div class="div-table-row">
      <div class="skillLabel div-table-col">MySQL</div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-TXlTUUwN" value="0"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-TXlTUUwN" value="1"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-TXlTUUwN" value="2"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-TXlTUUwN" value="3"></div>
      <div class="div-table-col"><input type="radio" class="skillRadioButton" name="jobman-field-9-TXlTUUwN" value="4"></div>
   </div>
</div>

</body>
</html>

Upvotes: 0

Views: 81

Answers (1)

Tushar
Tushar

Reputation: 4418

Check if this changes helps you.

Change border-spacing:0; for .div-table

and remove float:left; width:96px; overflow: hidden; for .div-table-col and change display: to table-cell;

.div-table-col {
        /*float:left;        
        width:96px;
        overflow: hidden;*/

        display:table-cell;
        text-align: center;
        vertical-align: middle;
    }

Upvotes: 1

Related Questions