タブ/アコーディオン切り替えjQueryを幅100%にしたメモ

目次

どうも。お久しぶりです。

17.04.30追記:「そっか、最初っから全部パーセンテージで設定すればいいやん…」と気づき修正。

17.05.02追記: 書き忘れてましたが当然HTMLの方も項目を増やしてあげる必要があります。

最近はEC-CUBEなんぞをいじっており、jQueryのスクリプトを設置したりしていちいち感動しております。まだまだそんなレベルの技術。

今日はその際ちょっと苦労した部分を書いてみようと思います。使わせていただいたのはこちらのコード一式。いやぁ素晴らしい。

PCでの表示を100%にしたい

幅いっぱいに表示させたかったので#tabAccordionのwidthを100%に。CSSの600pxの部分を100%にしてあげます。


#tabAccordion {
margin: 0 auto;
width: 100%;
height: 400px;
font-size: 12px;
border: #999 1px solid;
position: relative;
}
#tabAccordion dl {
top: 0;
left: 0;
width: 100%;
position: absolute;
}

「やった!これで幅いっぱいだ!」と思いきや、タブの幅も固定なので変える必要あり。ここからが手間のかかるポイント。

タブの数も増やしたい

設置したい項目が7つあり、デフォルトの5つに2つ足すことに。レスポンシブなので幅をパーセントで指定してあげます。100÷7…なんとも中途半端な数字。ここに倍数を足していきます。ああ苦手な計算!でも電卓があるから大丈夫。


#tabAccordion dl:nth-child(2) dt {
left: 14.2857143%;
}
#tabAccordion dl:nth-child(3) dt {
left: 28.5714286%;
}
#tabAccordion dl:nth-child(4) dt {
left: 42.8571429%;
}
#tabAccordion dl:nth-child(5) dt {
left: 57.1428572%;
}
#tabAccordion dl:nth-child(6) dt {
left: 71.4285715%;
}
#tabAccordion dl:nth-child(7) dt {
left: 85.83%;
}

85.7142858%で「計算通り!」と思いきやこれだとズレが。右端で帳尻を合わすべく85.8%にしてみるとEdgeではぴしゃりと合うんですけどまたもFirefoxとChromeでズレが。85.9%にすると今度ははみだしてしまう。そして微調整に微調整を重ねついに見つけましたぴったりの数字!85.83%でございます。

こんな感じで増やしたいだけ増やしましょう。

次はタブレットとか向けの表示部分。


@media only screen and (max-width: 800px) {
#tabAccordion {
width: 100%;
box-sizing: border-box;
}
#tabAccordion dl {
width: 100%;
box-sizing: border-box;
}
#tabAccordion dl dt {
width: 14.2857143%;
}
#tabAccordion dl:nth-child(2) dt {
left: 14.2857143%;
}
#tabAccordion dl:nth-child(3) dt {
left: 28.5714286%;
}
#tabAccordion dl:nth-child(4) dt {
left: 42.8571429%;
}
#tabAccordion dl:nth-child(5) dt {
left: 57.1428572%;
}
#tabAccordion dl:nth-child(6) dt {
left: 71.4285715%;
}
#tabAccordion dl:nth-child(7) dt {
left: 85.83%;
}

スマホ表示も忘れず

アコーディオンの数も増やしておきましょう。


#tabAccordion dl:nth-child(2) dt,
#tabAccordion dl:nth-child(3) dt,
#tabAccordion dl:nth-child(4) dt,
#tabAccordion dl:nth-child(5) dt,
#tabAccordion dl:nth-child(6) dt,
#tabAccordion dl:nth-child(7) dt  {
left: auto;
}

これでスマホ表示でもメニューが増えてくれます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次