Simplicityの特徴 › フォーラム › Simplicity2に関する話題何でも › 関連記事をpc版、スマホ版で分けたい!
- このトピックには6件の返信、1人の参加者があり、最後に
シンにより10年、 2ヶ月前に更新されました。
-
投稿者投稿
-
-
2016年8月14日 6:25 PM #44367
シン
ゲスト現在、simplicityで関連記事を表示させています。
pc版はサムネイル4列(8記事)でスマホ版はデフォルトで3記事という風に関連記事をpc版、スマホ版で分けることができますでしょうか?
もし、できたら方法も教えてくれたら大変嬉しいです。
-
2016年8月14日 9:04 PM #44370
hidekichi
ゲストアイテムが少ないのを増やすためにはPHPをいじらないといけませんが、多いのを減らすのはcssだけでもできます。
例えばのサンプル: ulのliの3つ目以降を非表示 | jsFiddle
これが関連記事に適用できるかどうかはアイデア次第です。
-
2016年8月14日 9:10 PM #44371
hidekichi
ゲストちなみに、スマホを判断するのは画面サイズと、ユーザーエージェントを調べる方法があって、モバイルではなくスマホと限定ならば、大体の所、
@media screen and (max-width: 48em){ //該当のセレクタとそのプロパティ {...略...} }※ 48em = 768px
768pxというのは、iphone6plusを横向きにした時ぐらいの横幅です。縦幅だけを考慮するなら(横向きは考慮しない)、30em(480px)でも良いだろうと思います。
768px以上になるとタブレットとの境界になるのと#mainの幅を超えているのでPC表示で良いだろうと思います。 -
2016年8月15日 9:21 AM #44374
シン
ゲストhidekichiさん、返信ありがとうございます。
アドバイスは大変嬉しいのですが、具体的にcssにどのように書き込めばいいのでしょうか?
cssに関しては初心者なのでまだコードの作り方などはよく分かってないです。
-
2016年8月15日 10:21 AM #44376
hidekichi
ゲストほぼまんま当てはめるだけなのですが、サンプルではサムネイル表示のhtmlがなかったので、デフォルトの表示のままでしてあります。原理は同じです。
サンプル: 関連記事をスマホのときだけ任意の数にする | codepen
サンプルではリサイズは考慮してませんが、ソースとリザルト画面の境界を動かして480px以下の幅になればメディアクエリが動作して10個表示してある(だろうと思う)関連記事が3つになるかと思います。
他の方法として、いったん全部display: none;した後、3つ目までをそれぞれdisplay: blockしてもよいです。表示する数が少ないのでできる技です。表示する数が多くなると最初に書くのも面倒ですし、また修正するときも面倒です。
.test その子要素 { display: block; } .test その子要素:nth-child(1), .test その子要素:nth-child(2) .test その子要素:nth-child(3) { display: block; }おまけとしてjQueryでやるのも書いておきました。完全レスポンシブの状態(on|offいずれか)で使い分けしてください。
jQueryでやる場合は.hideというクラスだけ必要です。メディアクエリは必要ありません。そもそもcssでできるのでjQueryでやるメリットは少ないですが、例えば.hideでアニメーション付きで消すとか、縮小して消す、あるいは完全レスポンシブがonの方ならシームレスにリサイズに対応しているので、画面幅が大きくなれば消えていたアイテムを拡大して表示することもできます。
(ただしjQueryはやっつけで書いたので、もっとうまい方法や簡単にかける方法があるかもしれないと思います。こんなのもできますよという例です)こういうのは、cssのアイデア次第ですので汎用性が高いのはjQueryかと思いますが、簡単に実装できるメディアクエリを使うほうが良いだろうと思います。
-
2016年8月15日 1:52 PM #44380
hidekichi
ゲスト.test その子要素:nth-child(1), .test その子要素:nth-child(2), .test その子要素:nth-child(3) { display: block; },が抜けてました。正しくは上記
-
2016年8月17日 4:18 PM #44430
シン
ゲストhidekichiさん、ありがとうございます!
教えられた方法で試してみます。
-
-
投稿者投稿
- このトピックに返信するにはログインが必要です。