Liquid、JavaScriptなどに関する質問
Brooklynのテーマを使用しています。
モバイル表示の際、現在は1列で縦に商品が並んで、表示されている状態です。
それを、2列で表示したいのですが、方法はありますでしょうか。
ご教授いただけますと大変助かります。
よろしくお願いいたします。
解決済! ベストソリューションを見る。
成功
ディスプレイの画面サイズを指定することで、表示される列を指定できると言うことでしょうか。
コード編集画面の「Assets」の中にある「timber.scss.liquid」をクリックして開いていただくと、298行目からグリッドシステムの画面サイズが定義されています。この中の「$small」の値を変更することで、質問者さまが希望する動作にできるかもしれません。
$small: 590px;
→顧客の画面サイズが590px以下なら1列、591px以上なら2列で表示
(※私が最初に回答した内容を元に戻している前提です)
$small: 400px;
→顧客の画面サイズが400px以下なら1列、401px以上なら2列で表示
(※私が最初に回答した内容を元に戻している前提です)
ただし、この設定はコレクションページ以外の全てのページで共通の設定です。コレクションページはご希望の表示になったとしても、他のページでの表示がご希望に沿わなくなる可能性もあります。
閲覧する人の見やすさを考慮するのは良いことですが、閲覧者の環境は多種多様です。全ての人をカバーしようとして「あちらを立てればこちらが立たず」に陥ることもありますのでご注意を。
調べてみたところ、テーマのコードを編集することで対応できるようです。
{% unless grid_item_width %}
{% assign grid_item_width = 'large--one-third medium--one-half' %}
{% endunless %}
{% assign grid_item_width = 'one-half medium--one-half large--one-half' %}
(※前後の {% unless %} と {% endunless %} は削除してください。)
「product-grid-item.liquid」のソースファイルで、商品の表示画面を制御しているようです。
shopifyのcssにはグリッドシステム(画面サイズと横幅の組み合わせ)のクラス定義がされているので、その定義から設定したいクラスを選んで、このファイルに記述しています。
私の環境ではうまく動作しましたので、そちらの環境でも大丈夫だと思います。
コードの編集は間違ってしまったときのリスクが大きいので、テーマをコピーしてバックアップを作成してから作業すると安心だと思います。
ご丁寧に回答いただきありがとうございます。
ご教授いただいたコード編集で、モバイル画面では思い通りの仕様にすることができたのですが、
デスクトップ画面にも反映されてしまい、モバイル画面同様に2列の表示になってしまいました。
元々の仕様にする方法はございますでしょうか。
宜しくお願いいたします。
Shopifyの設定で使われている「モバイル画面」「デスクトップ画面」という言葉から誤解されるのも無理はありませんが、ユーザが使っている機器の種類によって画面の表示方法を切り替えることはできません。
CSSの仕組みは、ユーザが使っている機器のディスプレイの横幅 (またはブラウザの横幅)を検出して「〇〇pxより小さければ□列、大きければ△列」としているからです。
そのため、質問者さまが理想とする設定は不可能です。
残念かと思いますが、元々の設定か、私が回答した設定か、どちらかで妥協していただく必要があります。
元々の設定に戻したい場合は、コード編集で編集前のコードに書き換えていただければ戻ります。
ご回答いただきまして、ありがとうございます。
私の知識不足で、初歩的な質問をしてしまい申し訳ございません。
では、Hori_Koh様がおっしゃっている内容は
ディスプレイの画面サイズを指定することで、表示される列を指定できると言うことでしょうか。
閲覧してくださる方が見やすい仕様にしたいので、方法をご存知でしたらご教授いただけますと幸いです。
成功
ディスプレイの画面サイズを指定することで、表示される列を指定できると言うことでしょうか。
コード編集画面の「Assets」の中にある「timber.scss.liquid」をクリックして開いていただくと、298行目からグリッドシステムの画面サイズが定義されています。この中の「$small」の値を変更することで、質問者さまが希望する動作にできるかもしれません。
$small: 590px;
→顧客の画面サイズが590px以下なら1列、591px以上なら2列で表示
(※私が最初に回答した内容を元に戻している前提です)
$small: 400px;
→顧客の画面サイズが400px以下なら1列、401px以上なら2列で表示
(※私が最初に回答した内容を元に戻している前提です)
ただし、この設定はコレクションページ以外の全てのページで共通の設定です。コレクションページはご希望の表示になったとしても、他のページでの表示がご希望に沿わなくなる可能性もあります。
閲覧する人の見やすさを考慮するのは良いことですが、閲覧者の環境は多種多様です。全ての人をカバーしようとして「あちらを立てればこちらが立たず」に陥ることもありますのでご注意を。
諸々、ご丁寧に回答いただきありがとうございます。
試してみたところ、私が確認できた閲覧環境ですと希望の仕様にすることができました。
今回は大変お世話になりました。
ありがとうございました。
サポートの選択肢が増えていく中、最適となる選択の判断が難しくなっているかと存じます。今回は問題の解決に最適となるサポートの選択方法を、紹介させて頂きます。 選択肢のご紹介...
By Mirai Oct 7, 20242023年初頭、Shopifyペイメントアカウント、及びShopifyアカウント全体のセキュリティを強化する為の変更が適用されました。ユーザーのアカウントセキュリティを強化す...
By Mirai Sep 30, 2024概要: 年末/年明けは、消費者が最もショッピングを行う時期の一つです。特に、ブラックフライデー・サイバーマンデー(BFCM)は、世界中で注目される大規模なセールイベントであ...
By JapanGuru Sep 25, 2024