2016-07-12 4 views
0

このコードは2つのラップdiv内にあり、外部はdisplay: table、内側はdisplay:table-cell; vertical-align: middleとなっているため、画面の中央に表が表示されます。小さな画面で私のテーブルが身体の幅の100%以上を占めるのはなぜですか?

しかし、問題は、550px未満にウィンドウのサイズを変更すると、私のコードが期待どおりに表示されないということです。テーブルの幅はその幅より小さくなります。

.page.vcenterのラッパーを削除すると、テーブルのサイズが予期したとおりに変更されます。

* { 
 
    -webkit-touch-callout: none; 
 
    /* iOS Safari */ 
 
    -webkit-user-select: none; 
 
    /* Chrome/Safari/Opera */ 
 
    -khtml-user-select: none; 
 
    /* Konqueror */ 
 
    -moz-user-select: none; 
 
    /* Firefox */ 
 
    -ms-user-select: none; 
 
    /* Internet Explorer/Edge */ 
 
    user-select: none; 
 
    /* Non-prefixed version, currently 
 
\t \t \t \t \t \t \t \t \t \t not supported by any browser */ 
 
} 
 
/*************************************/ 
 

 
html, 
 
body { 
 
    margin: 0; 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 
.page { 
 
    display: table; 
 
    text-align: center; 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 
.vcenter { 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
} 
 
/*************************************/ 
 

 
table { 
 
    display: flex; 
 
    overflow: hidden; 
 
} 
 
thead { 
 
    display: flex; 
 
    flex-shrink: 0; 
 
    width: 30%; 
 
} 
 
tbody { 
 
    display: flex; 
 
    position: relative; 
 
    overflow-x: auto; 
 
    overflow-y: hidden; 
 
    width: 70%; 
 
} 
 
tr { 
 
    display: flex; 
 
    flex-direction: column; 
 
    flex-shrink: 0; 
 
} 
 
td, 
 
th { 
 
    display: block; 
 
} 
 
td { 
 
    border-left: 0; 
 
} 
 
td, 
 
th { 
 
    border: 1px solid; 
 
} 
 
th:not(:last-child), 
 
td:not(:last-child) { 
 
    border-bottom: 0; 
 
} 
 
tr { 
 
    width: 100%; 
 
} 
 
th { 
 
    background-color: DarkSlateBlue; 
 
    text-weight: bold; 
 
    color: white; 
 
}
<div class="page"> 
 
    <div class="vcenter"> 
 

 
    <table> 
 
     <thead> 
 
     <tr> 
 
      <th>&nbsp;</th> 
 
      <th>Filipe</th> 
 
      <th>Crisp</th> 
 
      <th>Marco</th> 
 
     </tr> 
 
     </thead> 
 
     <tbody> 
 
     <tr> 
 
      <td>Fase 1</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 2</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 3</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 4</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 5</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 6</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 7</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 8</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 9</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 10</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 11</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 12</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 13</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 14</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 15</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     </tbody> 
 
    </table> 
 

 
    </div> 
 
</div>

(「ビューフルページ」をクリックすると何が起こるかを見るために以下550pxにウィンドウのサイズを変更してみてください)

が起こっていますか?

答えて

1

あなたはtable-layout: fixed

* { 
 
    -webkit-touch-callout: none; 
 
    /* iOS Safari */ 
 
    -webkit-user-select: none; 
 
    /* Chrome/Safari/Opera */ 
 
    -khtml-user-select: none; 
 
    /* Konqueror */ 
 
    -moz-user-select: none; 
 
    /* Firefox */ 
 
    -ms-user-select: none; 
 
    /* Internet Explorer/Edge */ 
 
    user-select: none; 
 
    /* Non-prefixed version, currently 
 
\t \t \t \t \t \t \t \t \t \t not supported by any browser */ 
 
} 
 
/*************************************/ 
 

 
html, 
 
body { 
 
    margin: 0; 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 
.page { 
 
    display: table; 
 
    table-layout: fixed; 
 
    text-align: center; 
 
    width: 100%; 
 
    height: 100%; 
 
} 
 
.vcenter { 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
} 
 
/*************************************/ 
 

 
table { 
 
    display: flex; 
 
    overflow: hidden; 
 
} 
 
thead { 
 
    display: flex; 
 
    flex-shrink: 0; 
 
    width: 30%; 
 
} 
 
tbody { 
 
    display: flex; 
 
    position: relative; 
 
    overflow-x: auto; 
 
    overflow-y: hidden; 
 
    width: 70%; 
 
} 
 
tr { 
 
    display: flex; 
 
    flex-direction: column; 
 
    flex-shrink: 0; 
 
} 
 
td, 
 
th { 
 
    display: block; 
 
} 
 
td { 
 
    border-left: 0; 
 
} 
 
td, 
 
th { 
 
    border: 1px solid; 
 
} 
 
th:not(:last-child), 
 
td:not(:last-child) { 
 
    border-bottom: 0; 
 
} 
 
tr { 
 
    width: 100%; 
 
} 
 
th { 
 
    background-color: DarkSlateBlue; 
 
    text-weight: bold; 
 
    color: white; 
 
}
<div class="page"> 
 
    <div class="vcenter"> 
 

 
    <table> 
 
     <thead> 
 
     <tr> 
 
      <th>&nbsp;</th> 
 
      <th>Filipe</th> 
 
      <th>Crisp</th> 
 
      <th>Marco</th> 
 
     </tr> 
 
     </thead> 
 
     <tbody> 
 
     <tr> 
 
      <td>Fase 1</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 2</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 3</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 4</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 5</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 6</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 7</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 8</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 9</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 10</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 11</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 12</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 13</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 14</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     <tr> 
 
      <td>Fase 15</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
      <td>&nbsp;</td> 
 
     </tr> 
 
     </tbody> 
 
    </table> 
 

 
    </div> 
 
</div>

+0

うわーを使用する必要があります!私はそれを決して考えないだろう! :Dありがとう! –

+0

@FilipeTeixeiraこれで問題が解決した場合は、回答を受け付けたものと必ずマークしてください;) – dippas

+0

もちろん!..... –

関連する問題