Carrdart
Listen to the audio commentary
☆Carrdのページ内リンクがわかりました。
1.+からControlを選びます。
2.クリックしてTypeをScroll pointに変えます。
3.Nameを小文字で入れます(hitorigoto)
4.Scroll pointをHITORIGOTOの真上に配置します。
5.リンク元にマークダウン方式[HITORIGOTO](#hitorigoto)でリンクを張ればページ内リンクができます。
Carrdで構築されるようなモダンなシングルページウェブサイトにおいて、ページ内リンクは単なる機能ではなく、ユーザーエクスペリエンス(UX)を向上させるための戦略的なツールです。長いページをスクロールする手間を省き、訪問者を特定の情報へ直接誘導することで、コンテンツの消化を容易にし、エンゲージメントを高めます 1。適切に設計されたページ内ナビゲーションは、訪問者をサイトの物語に沿って導き、最終的にはコンバージョン(問い合わせ、登録など)へと繋げる強力な役割を果たします。このガイドでは、Carrdの機能を最大限に活用し、直感的でプロフェッショナルなページ内ナビゲーションを構築するための包括的な手法を解説します。
Carrdは、ページ内ナビゲーションを実現するために2つの主要なネイティブツールを提供しています。「Scroll Point(スクロールポイント)」と「Section Break(セクションブレーク)」です 2。これらは似た目的で使用されますが、サイトの構造とユーザー体験に与える影響が根本的に異なります。
Scroll Point: 長い単一ページ内で、特定の位置へスムーズにスクロールさせるために使用します。ポートフォリオやブログ記事、詳細なサービス説明ページなど、連続したコンテンツ内を移動するのに最適です。
Section Break: ページを明確な「スライド」や「セクション」に分割し、コンテンツを一度に一つずつ表示させるために使用します。マーケティング用のランディングページやプレゼンテーション形式のサイトなど、明確に区切られたメッセージを順番に伝えたい場合に適しています。
これらのツールの選択は、サイトの設計思想そのものを決定づける重要な要素です。Carrdのこれらの機能は、標準的なウェブ技術であるHTMLのアンカーリンク(例:<a href="#id">と<div id="id">)を、ユーザーが直感的に操作できるインターフェースで抽象化したものです 5。この抽象化により、コードを記述することなく高度なナビゲーションを実装できるのがCarrdの強みです。しかし、その根底にあるのはブラウザの標準的な挙動であるため、固定ヘッダー使用時にリンク先がずれるといった、ウェブ開発で一般的に見られる課題も同様に発生します 6。したがって、問題を効果的に解決するためには、Carrdのシンプルな操作方法だけでなく、その背景にあるウェブの基本原則を理解することが不可欠です。
ページ内リンクを実装する最も一般的で基本的な方法が「Scroll Point」の使用です。ここでは、その設定から各種要素への適用までを段階的に解説します。
まず、リンクの「飛び先」となるアンカーポイントを作成します。
Carrdエディタ画面の右上にある「+」(Add Element)アイコンをクリックします。
エレメント一覧から「Control」を選択します。
追加されたControlエレメントの設定パネルで、「Type」を「Scroll Point」に変更します 3。
次に、「Name」フィールドにこのScroll Pointを識別するための名前を入力します。この名前は、リンクを設定する際に使用する重要な識別子となります。命名には厳格なルールがあり、小文字のアルファベット、数字、ハイフンのみで構成する必要があります(例:contact-form, section-2)3。また、この名前はURLの末尾に表示される可能性があるため、訪問者に見られても問題ない、短く分かりやすいプロフェッショナルな名称にすることが推奨されます 8。
Scroll Pointの配置場所が、リンクをクリックした際の表示位置を決定します。作成したScroll Pointエレメントを、ページ上でドラッグ&ドロップして配置します 3。重要なのは、
ユーザーに表示させたいコンテンツの直上にScroll Pointを配置することです。例えば、「お問い合わせ」という見出しにジャンプさせたい場合、その見出しエレメントのすぐ上にScroll Pointを置きます。これにより、リンククリック時にその見出しが画面の最上部に表示されるようになります。
アンカーポイントを作成したら、次はリンクの「出発点」となるボタンやテキストに設定を行います。
ボタンへのリンク設定
リンク元としたい「Button」エレメントを選択します。
設定パネルを開き、URLを入力するフィールド(通常は「URL」と表示)を見つけます。
そのフィールドに、先ほど設定したScroll PointのNameの前にハッシュ記号(#)を付けた文字列を入力します(例:#contact-form)7。
「Done」をクリックして設定を完了します。
テキストへのリンク設定
Carrdでは、Markdown形式を使用してテキストの一部にリンクを設定できます。
「Text」エレメントを選択します。
リンクにしたいテキストを角括弧 `` で囲み、その直後に丸括弧 () を記述します。
丸括弧 () の中に、ハッシュ記号を付けたScroll Point名を入力します。
記述例:お問い合わせは[こちら](#contact-form)からどうぞ。 7
この方法では、Buttonエレメントほど詳細なスタイルのカスタマイズはできませんが、文章中の特定の単語からリンクさせたい場合に便利です。
画像へのリンク設定
画像をクリックした際に特定のセクションへスクロールさせることも可能です。
「Image」エレメントを選択します。
設定パネル内の「Link URL」フィールドに、ハッシュ記号を付けたScroll Point名を入力します 7。
これで、画像がクリック可能なリンクとして機能するようになります。
Scroll Pointは、サイト内だけでなく、外部からのアクセスにも利用できます。サイトのURLの末尾にハッシュ記号付きのScroll Point名を追加することで、そのページの特定セクションを直接表示するURLを作成できます 3。
URLの例: https://your-site.carrd.co/#services
このURLをメールマガジンやSNSの投稿に記載すれば、ユーザーをランディングページの特定の部分(例えば料金プランやサービス詳細)へ直接誘導することができ、マーケティング活動において非常に効果的です。
Scroll Pointがページ内の特定「地点」への移動を目的とするのに対し、「Section Break」はページ全体を大きな「区画」に分割し、構造化するためのツールです。
Section Breakを使用すると、1つの長いページが、まるでプレゼンテーションのスライドのように、複数の独立した全画面セクションで構成されているかのようなサイトを構築できます 4。ユーザーがセクション間を移動すると、コンテンツがスクロールするのではなく、次のセクションが画面全体に表示されるという、よりダイナミックな体験を提供します。これは、伝えるべき情報が明確に3〜4つに分かれている場合や、物語を章立てて見せたい場合に特に有効なアプローチです。
Section Breakの作成とリンク設定のプロセスは、Scroll Pointと非常によく似ています。
「+」(Add Element)アイコンから「Control」を追加します。
Typeを「Section Break」に設定します。
Scroll Pointと同様に、小文字、数字、ハイフンのみで構成される「Name」を設定します(例:about, works)4。
このSection Breakを、セクションの開始点としたい場所に配置します。そのSection Breakから次のSection Break(またはページの末尾)までが、一つのセクションとして定義されます。
リンクの設定方法はScroll Pointと全く同じで、ButtonやText、ImageエレメントのURLフィールドに #section-name の形式で入力します。
Section BreakがScroll Pointと大きく異なる点の一つが、セクション間の移動にアニメーション効果を付けられることです。
エディタ上のどこでもない、ページの背景部分をクリックして「Page」エレメントの設定を開きます。
「Animation」タブに切り替えます。
「On Section Change」という項目で、好みのトランジション効果(例:Fade, Slide Left, Slide Up)を選択します 4。
この設定により、ユーザーがセクションリンクをクリックした際に、単に表示が切り替わるだけでなく、洗練されたアニメーションが再生され、サイト全体のプロフェッショナルな印象を高めることができます。
どちらのツールを使用するかは、サイトの目的と構造によって決まります。以下の表は、両者の特徴を比較し、最適なツールを選択するための判断材料を提供します。
基本的なページ内リンクを実装した後は、より洗練されたユーザー体験を提供するための工夫を加えましょう。簡単なコードの追加や、Carrdの隠れた機能を活用することで、サイトの質を一段と高めることができます。
デフォルト設定では、ページ内リンクをクリックすると、目的地へ一瞬でジャンプします。これは機能的ですが、やや唐突でユーザーを驚かせてしまう可能性があります 10。この挙動を、目的地まで滑らかにスクロールするアニメーションに変更することで、はるかに快適でプロフェッショナルな印象を与えることができます。
この実装は、以下の簡単な手順で完了します。
「+」(Add Element)アイコンから「Embed」エレメントを追加します。ページの一番下など、編集の邪魔にならない場所に配置するのがおすすめです。
追加したEmbedエレメントの設定パネルで、「Type」を「Code」に設定します。
「Style」を「Hidden」に設定し、さらに「Head」を選択します。これにより、コードはページの<head>タグ内に挿入され、画面上には表示されなくなります。
コード入力欄に、以下のCSSコードを貼り付けます。
HTML
<style>
html {
scroll-behavior: smooth;
}
</style>
10
「Done」をクリックし、サイトを公開(Publish)します。
たったこれだけで、サイト上のすべてのページ内リンクがスムーズスクロールで動作するようになります。この一行のCSSは、ブラウザに対してアンカーリンクへの移動をジャンプではなくアニメーションで行うよう指示するものです。最小限の労力で最大限の効果が得られる、非常に価値のあるカスタマイズです。
Carrdには、特定の名前を知らなくてもナビゲーションを制御できる、強力な特殊URLコマンドが用意されています 3。これらを使用することで、「次へ」「前へ」ボタンや「トップに戻る」リンクなどを簡単に実装できます。
以下の表は、利用可能な特殊コマンドとその機能をまとめたものです。これらのコマンドをButtonやLinkエレメントのURLフィールドに入力して使用します。
例えば、各セクションの末尾に「次へ」ボタンを配置し、そのURLに scrollpoint:next を設定すれば、ユーザーを順番にコンテンツへ誘導できます。また、フッターに「トップに戻る」ボタンを設置し、URLに browser:top を設定するのは非常に一般的な使い方です。これらのコマンドは、サイトのナビゲーションをより動かで直感的なものにします。
ページ内リンクは便利ですが、特にサイトのデザインが複雑になると、いくつかの一般的な問題が発生することがあります。このセクションでは、最も頻繁に遭遇する問題の原因を診断し、具体的な解決策を提示します。
ページ内リンクをクリックした際に、目的のセクションがヘッダーの下に隠れてしまったり、想定とは少しずれた位置に表示されたりする現象は、最も一般的な問題です。
5.1.1 原因の診断
この「ズレ」問題には、主に2つの原因が考えられます。
固定ヘッダー(Fixed Header): 最も一般的な原因です。CSSのposition: fixedプロパティを使用して画面上部に固定されたヘッダーは、ページの通常のコンテンツフローから切り離され、コンテンツの上に覆いかぶさる形で表示されます。ブラウザはアンカーリンクの目的地を正しくビューポート(表示領域)の最上部に配置しますが、その上に固定ヘッダーが重なっているため、目的のコンテンツがヘッダーの高さ分だけ隠れてしまうのです 6。
画像の遅延読み込み(Lazy Loading): より繊細な原因です。ブラウザは、ページ上のすべての画像が読み込まれる前にアンカーリンク先の座標を計算してしまうことがあります。リンクをクリックしてスクロールしている間に、リンク先より上にある画像が遅れて読み込まれると、コンテンツ全体が下に押し出されます。しかし、ブラウザはすでに古い座標に向かってスクロールしてしまっているため、結果的にずれた位置に表示されてしまいます 15。
5.1.2 最新の解決策(推奨):scroll-padding-top
この固定ヘッダーによるズレ問題を解決するために、現代のCSSにはscroll-padding-topという、まさにこの目的のために設計されたプロパティが存在します 13。これが最もクリーンで推奨される解決策です。
実装方法はスムーズスクロールと同様に、Embedエレメントを使用します。
Embedエレメントを追加し、TypeをCode、StyleをHiddenとHeadに設定します。
コード入力欄に以下のCSSを貼り付けます。
HTML
<style>
html {
scroll-padding-top: 80px; /* ここに固定ヘッダーの高さを指定 */
}
</style>
80pxの部分を、ご自身のサイトの固定ヘッダーの実際の高さに置き換えてください。このCSSは、ブラウザに対して「すべてのアンカーリンクへのスナップ位置は、ビューポートの最上部から80px下の位置とみなす」よう指示します。これにより、ヘッダーのための安全な余白が確保され、リンク先が隠れることなく正確に表示されます。
5.1.3 代替・旧来の解決策(クラシックCSS)
何らかの理由でscroll-padding-topが機能しない場合や、他のアプローチが必要な場合には、古くから使われているいくつかのCSSテクニックも有効です。
パディングとネガティブマージンを利用する方法:
リンク先の要素自体に、ヘッダーの高さ分のpadding-top(内側の余白)を追加してコンテンツを下に押し下げ、同時に同等のmargin-top(外側の余白)をマイナス値で指定してレイアウト上の位置を元に戻すという手法です。これにより、スクロールの停止位置だけをずらすことができます 18。
::before疑似要素を利用する方法:
上記の方法をよりクリーンにしたものです。リンク先の要素に直接スタイルを適用するのではなく、::before疑似要素を使って空のブロックを生成し、それにオフセット(ずれ)たせるためのスタイルを適用します。これにより、元の要素のレイアウトに影響を与えることなく、スクロール位置のみを調整できます 21。
これらの方法は有効ですが、レイアウトに予期せぬ影響を与える可能性があるため、まずはscroll-padding-topの使用を検討することが最善です。このプロパティは、スクロールの挙動のみを対象とするため、他のレイアウトを破壊するリスクが最も低い、現代的で優れたアプローチと言えます。
Carrdの便利な機能にも、いくつかの既知のバグや仕様上の制限が存在します。
問題:scrollpoint:nextが機能しない、または最後のポイントに飛んでしまう
scrollpoint:nextコマンドを使用すると、次のポイントではなく、ページの一番最後のポイントに飛んでしまうという報告があります 22。
診断: これはCarrdエディタ内のエレメントの重なり順や、キャッシュの問題が原因である可能性があります。
解決策: 最も確実な回避策は、scrollpoint:nextのような相対的なコマンドの代わりに、#twoや#threeのように、目的のScroll Point名を直接指定することです。また、問題が発生しているScroll Pointを一度削除し、再作成することで解決する場合もあります 22。
問題:Scroll PointをContainer(コンテナ)内に配置できない
ユーザーが直面する大きなアーキテクチャ上の制限として、Scroll PointエレメントをContainerエレメントの中にドラッグ&ドロップできないという問題があります 23。
原因: これはCarrdの仕様です。Control系エレメント(Scroll PointやSection Breakなど)は、ページのレイアウトを定義する最上位の要素として扱われ、他のコンテナ内に入れ子にすることはできません。
回避策: リンクしたいコンテンツを複数のContainerに分割し、目的のContainerの直上(つまり、2つのContainerの間)にScroll Pointを配置します。これにより、コンテナ内のコンテンツへ擬似的にリンクさせることが可能になります 23。
問題:「Invisible」に設定したScroll Point名がURLに表示される
Scroll Pointの設定で「Invisible」チェックボックスをオンにしても、リンクをクリックするとブラウザのアドレスバーに#scrollpoint-nameが表示されてしまう、という問い合わせがあります 1。
原因の解明: これは機能の誤解に起因します。Carrdの「Invisible」設定は、Scroll Pointエレメント自体がページ上で視覚的なスペースを占有しないようにするためのものであり、サイトマップなどに表示されなくする効果があると考えられます。しかし、アンカーリンクをクリックした際にURLの末尾にハッシュ(#)が表示されるのは、ブラウザのネイティブで基本的な挙動です。Carrdの機能でこのブラウザの挙動自体を上書きすることはできません。この仕様を理解し、URLに名前が表示されることは正常な動作であると認識することが重要です。
効果的でメンテナンス性の高いページ内ナビゲーションシステムを構築するために、これまでの内容を総括し、いくつかのベストプラクティスを提案します。
Scroll PointやSection Breakの名前は、URLに表示され、時にはユーザーの目に触れることを再度強調します。section-1のような機械的な名前ではなく、#about-usや#pricing-plansのように、内容を的確に表す短くプロフェッショナルな名前を使用しましょう 8。これにより、URLが共有された際にもリンク先の内容が推測しやすくなります。
ナビゲーションのテストは、必ずデスクトップとモバイルの両方で行うことが不可欠です。特に固定ヘッダーは、デバイスの画面幅によって高さが変わることがよくあります。デスクトップで設定したscroll-padding-topの値が、モバイルでは不十分、あるいは過剰になる可能性があります。このような場合は、CSSのメディアクエリを使用して、特定の画面幅でのみ異なるパディング値を適用する高度なカスタマイズが必要になることがあります。
メディアクエリの例(Embedエレメントに記述):
HTML
<style>
/* デスクトップ用のデフォルト設定 */
html {
scroll-padding-top: 80px;
}
/* 画面幅が600px以下のモバイルデバイスに適用 */
@media screen and (max-width: 600px) {
html {
scroll-padding-top: 60px; /* モバイル用のヘッダーの高さ */
}
}
</style>
サイトを公開する前に、以下の項目を確認してください。
[ ] サイトの目的に合った適切なツール(Scroll PointかSection Breakか)を選択しましたか?
[ ] すべてのリンクは、正しいハッシュ記号付きの名前に設定されていますか?
[ ] より良いUXのために、スムーズスクロールを実装しましたか?
[ ] 固定ヘッダーがある場合、ズレを防ぐためにscroll-padding-topのCSSルールを追加しましたか?
[ ] すべてのページ内リンクが、デスクトップとモバイルの両方で意図通りに機能することをテストしましたか?
本ガイドで解説した主要なテクニックは以下の通りです。
基本実装: ControlエレメントからScroll PointまたはSection Breakを作成し、名前を付け、リンク元のURLに#name形式で設定する。
UX向上: EmbedエレメントにCSSを追加し、scroll-behavior: smooth;でスムーズスクロールを実装する。
問題解決: 固定ヘッダーによるリンク先のズレは、同じくEmbedエレメントにscroll-padding-top: (ヘッダーの高さ)px;を追加することで解決する。
高度なナビゲーション: scrollpoint:nextやbrowser:topなどの特殊コマンドを活用し、動的なナビゲーションを構築する。
これらのテクニックを習得することで、訪問者を効果的に導き、プロフェッショナルで使いやすいCarrdサイトを構築することが可能になります。