【overflowプロパティ】SPの表スクロールCSS

HTML&CSS

SPの表スクロールCSS

こんにちは。今日は「SPの表スクロールCSS」について書きます!

テーブルレイアウトで、SPはPCのレイアウトのままでスクロール対応といったデザインが多いと思います。

実は今までスクロールにするのは難しいと思っていたのですがたまに使うoverflowプロパティを使えば簡単にできるとわかりました!(←今更感)

きっちり幅とか合わせるにはJSを使わないといけないみたいですが、基礎的な構造はCSSでできるんですね。

ではさっそく見ていきましょう〜!

 

コード

HTML編

        <div class="tableBlock">
          <table>
            <tr>
              <th>タイトル01</th>
              <th>タイトル02</th>
              <th>タイトル03</th>
            </tr>
            <tr>
              <td>
                <div class="txtInner"><strong>5,000</strong>円以上</div>
              </td>
              <td>
                <div class="txtInner"><strong>40,000</strong>円以上</div>
              </td>
              <td>
                <div class="txtInner"><strong>100</strong>ポイント</div>
              </td>
            </tr>
            <tr>
              <td>
                <div class="txtInner"><strong>10,000</strong>円以上</div>
              </td>
              <td>
                <div class="txtInner"><strong>80,000</strong>円以上</div>
              </td>
              <td>
                <div class="txtInner"><strong>500</strong>ポイント</div>
              </td>
            </tr>
            <tr>
              <td>
                <div class="txtInner"><strong>20,000</strong>円以上</div>
              </td>
              <td>
                <div class="txtInner"><strong>120,000</strong>円以上</div>
              </td>
              <td>
                <div class="txtInner"><strong>1,000</strong>ポイント</div>
              </td>
            </tr>
            <tr>
              <td>
                <div class="txtInner"><strong>30,000</strong>円以上</div>
              </td>
              <td>
                <div class="txtInner"><strong>200,000</strong>円以上</div>
              </td>
              <td>
                <div class="txtInner"><strong>2,000</strong>ポイント</div>
              </td>
            </tr>
          </table>
        </div>

 

CSS編

.tableBlock
{
  table
  {
    tr
    {
      border-left: 1px solid #ccc;
      border-bottom: 1px solid #ccc;
    }
    th,td
    {
      text-align: center;
      border-top: 1px solid #ccc;
      border-right: 1px solid #ccc;
      font-weight: bold;
      &:first-child
      {
        width: 37%;
      }
      &:nth-child(2)
      {
        width: 37%;
      }
      &:last-child
      {
        width: 26%;
      }
    }
    th
    {
      line-height: 1.3;
      color: #fff;
      background-color: #1A20A7;
    }
    td
    {
      position: relative;
      line-height: 1.2;
      background-color: #D9FAFE;
      &:first-child
      {
        .txtInner
        {
          min-width: 7em;
        }
      }
     &:nth-child(2)
      {
        .txtInner
        {
          min-width: 8em;
        }
      }
    }
    .txtInner
    {
      text-align: right;
      display: inline-block;
    }
  }
}

@media only screen and (max-width: 768px)
{
  .tableBlock
  {
    overflow: auto; //ポイント
    table
    {
      width: 840px; //幅を固定する
      th,
      td
      {
        padding: 5px 15px;
      }
      th
      {
        font-size: 1.5rem;
      }
      td
      {
        font-size: 1.8rem;
        strong
        {
          font-size: 2.2rem;
        }
      }
      .txtInner
      {
      }
    }
  }
}

今回<td>の文字を右揃えにしているので記述が増えていますが、ポイントは【tableBlock】に指定している【overflow: auto;】です!

tableの幅を固定した上で親要素にoverflowを指定するだけで簡単にスクロールができます^^

 

値の「auto」と「scroll」の違いを調べたのですが、scrollだと文字がはみ出ない場合でもスクロールバーが表示されて、その点autoだとはみ出た場合のみスクロールバーが表示されるみたいです(^○^)

なので値はautoにしておくと良いです◎

では今日はここまで〜〜

コメント

タイトルとURLをコピーしました