SWELLには標準で右下固定ボタンとして「トップへ戻る(当サイトでは「先頭へ」に変更)」や「目次」といった画面に浮かせるフローティングボタンがあります。過去記事でこれらのボタンに似せたデザインで PC画面専用として特定のページへ飛ぶフローティングボタンを設置していました。
今回、特定のページへ飛ぶフローティングボタンを同じデザインでPC、タブレット、スマホ画面に追加表示した際の作業メモです。

カスタムHTMLコードと CSSの動作確認時のWordPress、SWELL、PHPのバージョンです。
- WordPress7.1
- SWELL2.19.0
- PHP8.3.31
表示・非表示の確認(2026/10/03 追記)
SWELLに標準で用意されているフローティングボタンの表示・非表示設定
SWELL(バージョン2.19.0)の場合、標準で用意されている「トップへ戻る」や「目次」のフローティングボタンの切り替え(表示・非表示、形状、ボタンのテキストなど)は、WordPress管理画面の「外観」>「カスタマイズ」>「サイト全体設定」>「■下部固定ボタン」メニュー から行います。

スマホ専用「固定フッターメニュー」の表示・非表示の切り替え
固定フッター(SP)が有効化されている場合、スマートフォンなどの画面の最下部にメニューバーが常に表示されます。これに伴い、標準の「トップへ戻る」や「目次」のフローティングボタンは、固定フッターメニューの少し上の位置に自動的に押し上げられて表示される仕組みになっています。
- 非表示にしたい場合:
「外観」→「メニュー」から、メニュー位置の「固定フッター(SP)」のチェックをすべて外して保存(何も登録されていない(未割り当ての)状態だと自動的に非表示)。 - 表示したい場合:
新しくスマホ用のメニューを作成し、メニュー設定の 「固定フッター(SP)」 にチェックを入れて保存

ボタンを表示するカスタムHTMLコード(2026/09/03 コード追記)
ボタンを表示するカスタムHTMLコードは、過去記事ではPC専用としてブログパーツ内に書いてウィジェットを介していましたが、今回 タブレット、スマホ画面にも追加表示するにあたりSWELLのシステム設定に直接コードを書き込む方法に変更しました。
- WordPress管理画面から「外観」>「カスタマイズ」タブを開き、「高度な設定」を開きます
- その中にある「bodyタグ終了直前に出力するコード(/body直前)」の入力欄に、ボタンを出力する「カスタムHTMLのコード」を直接貼り付け、画面下の「変更を保存」をクリック
当サイトで運用中の特定のページへ飛ぶ7つのボタンを表示するカスタムHTMLコードです。ボタンの中のアイコン(ホーム、フォルダ、虫眼鏡、メール)はHTMLの特殊文字コードを使っています。「特殊文字コード」は、端末(Windows/Mac/iPhone/Androidnなど)のOSに内蔵されている絵文字データを自動で呼び出す仕組みになっています。そのため、PC(Windows)ではカラー、スマホ(iPhone)ではモノクロのアイコンでした。PCでもタブレット・スマホでもモノクロの線画アイコンで統一されるように、CSS側でカラー化を強制禁止しています。
下記カスタムHTMLコード中の「特殊文字コード」はそのまま入力してブラウザ上で表示すると特殊文字(文字参照)の始まりと
認識されフォルダアイコンの場合、絵文字「 📁 」が表示されます。本ページではエスケープ処理して特殊文字コード
「 📁 」として表示しています。そのため、「bodyタグ終了直前に出力するコード(/body直前)」の入力欄に
コピーすると絵文字「 📁 」として表示されます。「bodyタグ終了直前に出力するコード(/body直前)」の入力欄に下記「カスタムHTMLのコード」をコピーして貼り付けます。
<div id="my-custom-float-wrapper">
<div class="my-custom-float-btn btn-page-1">
<a href="https://yokahiyori.com/" class="my-fix-circle-btn">
<span class="sw-custom-icon">⌂</span>
<span>ホーム</span>
</a>
</div>
<div class="my-custom-float-btn btn-page-2">
<a href="https://yokahiyori.com/category/menu/" class="my-fix-circle-btn">
<span class="sw-custom-icon">📁</span>
<span>カテゴリ</span>
<span>全記事</span>
</a>
</div>
<div class="my-custom-float-btn btn-page-3">
<a href="https://yokahiyori.com/#tag-elework" class="my-fix-circle-btn">
<span>電子工作</span>
</a>
</div>
<div class="my-custom-float-btn btn-page-4">
<a href="https://yokahiyori.com/#tag-diy" class="my-fix-circle-btn">
<span>DIY</span>
</a>
</div>
<div class="my-custom-float-btn btn-page-5">
<a href="https://yokahiyori.com/#tag-webconst" class="my-fix-circle-btn">
<span>BLOG</span>
<span>サイト</span>
<span>構築</span>
</a>
</div>
<div class="my-custom-float-btn btn-page-6">
<a href="https://yokahiyori.com/#tag-parts" class="my-fix-circle-btn">
<span class="sw-custom-icon">🔍</span>
<span>検索・タグ</span>
</a>
</div>
<div class="my-custom-float-btn btn-page-7">
<a href="https://yokahiyori.com/contact-form/" class="my-fix-circle-btn">
<span class="sw-custom-icon">✉</span>
<span>お問合せ</span>
</a>
</div>
</div>フローティングボタンを同じデザインでPC、タブレット、スマホ画面に追加表示するCSS
WordPress管理画面から「外観」>「 テーマファイルエディター」> スタイルシート(style.css)にコピー。 ブラウザによって挙動が異なる事象があったので「!important」を付けていますが環境によっては不要な箇所もあると思います。
/* 共通設定(PC・スマホ・タブレット共通) */
.my-custom-float-btn {
display: block !important;
position: fixed !important;
z-index: 99999 !important;
width: 54px !important;
height: 54px !important;
}
.my-fix-circle-btn {
display: flex !important;
flex-direction: column !important;
align-items: center !important;
justify-content: center !important;
width: 54px !important;
height: 54px !important;
border-radius: 50% !important;
box-shadow: 0 2px 10px rgba(0,0,0,0.1) !important;
text-decoration: none !important;
transition: all .3s !important;
line-height: 1 !important;
overflow: hidden !important;
background-color: rgba(255, 255, 255, 0.85) !important;
color: #001f3f !important;
border: 1px solid rgba(0, 31, 63, 0.8) !important;
box-sizing: border-box !important;
backdrop-filter: blur(4px) !important;
-webkit-backdrop-filter: blur(4px) !important;
}
/* アイコンをモノクロの線画に統一 */
.my-fix-circle-btn .sw-custom-icon {
font-size: 18px !important;
line-height: 1 !important;
margin-bottom: 2px !important;
display: block !important;
text-align: center !important;
width: 100% !important;
color: #001f3f !important;
font-family: "Segoe UI Symbol", "Apple Color Emoji", "Noto Color Emoji", sans-serif !important;
text-shadow: none !important;
}
/* ホバー時の色変更 */
.my-fix-circle-btn:hover {
background-color: rgba(0, 31, 63, 0.8) !important;
color: #ffffff !important;
transform: translateY(-3px) !important;
border-color: #001f3f !important;
}
.my-fix-circle-btn:hover .sw-custom-icon {
color: #ffffff !important;
}
/* 下部テキストの調整 */
.my-fix-circle-btn span {
display: block !important;
width: 100% !important;
text-align: center !important;
font-size: 11px !important;
font-weight: 500 !important;
transform: scale(0.75) !important;
transform-origin: center top !important;
white-space: nowrap !important;
}
/* 文字のみボタン用の調整(上下中央へ配置) */
.my-fix-circle-btn:not(:has(.sw-custom-icon)) span {
transform: scale(0.85) !important;
transform-origin: center center !important;
padding: 0 4px !important;
}
/* PC表示時の位置設定(画面幅960px以上) */
@media screen and (min-width: 960px) {
.my-custom-float-btn {
right: 38px !important;
}
.btn-page-1 { bottom: 582px !important; }
.btn-page-2 { bottom: 520px !important; }
.btn-page-3 { bottom: 458px !important; }
.btn-page-4 { bottom: 396px !important; }
.btn-page-5 { bottom: 334px !important; }
.btn-page-6 { bottom: 272px !important; }
.btn-page-7 { bottom: 210px !important; }
}
/* タブレット表示時の位置設定(画面幅600px 〜 959px) */
@media screen and (min-width: 600px) and (max-width: 959px) {
.my-custom-float-btn {
right: 20px !important;
}
.btn-page-1 { bottom: 557px !important; }
.btn-page-2 { bottom: 495px !important; }
.btn-page-3 { bottom: 433px !important; }
.btn-page-4 { bottom: 371px !important; }
.btn-page-5 { bottom: 309px !important; }
.btn-page-6 { bottom: 247px !important; }
.btn-page-7 { bottom: 185px !important; }
}
/* スマホ表示時の位置設定(画面幅599px以下) */
@media screen and (max-width: 599px) {
.my-custom-float-btn {
right: 15.5px !important;
}
.btn-page-1 { bottom: 602px !important; }
.btn-page-2 { bottom: 540px !important; }
.btn-page-3 { bottom: 478px !important; }
.btn-page-4 { bottom: 416px !important; }
.btn-page-5 { bottom: 354px !important; }
.btn-page-6 { bottom: 292px !important; }
.btn-page-7 { bottom: 230px !important; }
}フローティングボタンの表示位置のカスタマイズ
スマホ時のみ追加したボタンを表示しないJavaScript(2026/09/03 注意追記)
スマホ時のみ追加したボタンを表示したくないときは下記のJavaScriptを前述の「bodyタグ終了直前に出力するコード(/body直前)」のカスタムHTMLコードの下に追記します。
<script>
document.addEventListener('DOMContentLoaded', function() {
if (window.innerWidth <= 599) {
var wrapper = document.getElementById('my-custom-float-wrapper');
if (wrapper) {
wrapper.style.setProperty('display', 'none', 'important');
}
}
});
</script>スマホ画面のSWELL標準のフローティングボタンの位置を一括調整(2026/09/28 CSS追記)
アンカー広告(下)と重なるとSWELL標準のフローティングボタンが隠れてしまうので、ボタン位置を上に160px移動してアンカー広告の上に設置します。下記CSSを「外観」>「カスタマイズ」>「追加CSS 」にコピーして貼り付けます。
/* スマホ画面(599px以下)でSWELL標準のフローティングボタンの位置を一括調整 */
@media screen and (max-width: 599px) {
.p-fixBtnWrap {
bottom: 160px !important;
}
}タブレット縦画面時にSWELL標準と追加したフローティングボタン位置を上方向に移動(2026/10/02 CSS追記)
タブレットを縦画面で使うとSWELL標準のフローティングボタンがアンカー広告(下)に隠れてしまうので、縦画面時にSWELL標準と追加したボタン位置を上方向に移動するCSSを追記しました。
下記CSSを「外観」>「カスタマイズ」>「追加CSS 」にコピーして貼り付けます。
/* タブレット縦画面時にSWELL標準と追加したフローティングボタンの位置を上方向に移動 */
@media screen and (min-width: 600px) and (max-width: 959px) and (orientation: portrait) {
.p-fixBtnWrap {
bottom: 160px !important;
}
.my-custom-float-btn {
transform: translateY(-160px) !important;
}
}タブレット横画面時にSWELL標準と追加したフローティングボタンを少し右側に移動(2026/10/02 CSS追記)
タブレットを横画面で使うとSWELL標準のフローティングボタンがアンカー広告(下)に少し重なってしまうので、横画面時にはSWELL標準と追加したボタンの位置を少し右側に移動するCSSを追記しました。max-widthは手持ちのPad Air(横幅1180px)の解像度に合わせた固定値で調整中です。right: 18pxの値を小さくするほど右端に寄ります。
下記CSSを「外観」>「カスタマイズ」>「追加CSS 」にコピーして貼り付けます。
/* タブレット横画面時にSWELL標準と追加したフローティングボタンを少し右側に移動 */
@media screen and (min-width: 600px) and (max-width: 1200px) and (orientation: landscape) {
.p-fixBtnWrap {
right: 18px !important;
}
.my-custom-float-btn {
right: 18px !important;
}
}PC、タブレット、スマホのブラウザ(Firefox、Edge、Chrome、Brave、Safari)で確認
SWELL標準の「先頭へ」ボタンや「目次」ボタンの上に今回設置した特定のページへ飛ぶフローティングボタンがPC、タブレット、スマホで表示され機能することが確認できました。
PC(Windows 11)

タブレット(iPad Air)
タブレットでは縦画面の場合フローティングボタンがアンカー広告に隠れる、横画面ではアンカー広告の右端と重なるのでSWELL標準と追加したボタンの表示位置を変更しました。


縦画面で使うとフローティングボタンがアンカー広告(下)に隠れるので、SWELL標準と追加のボタン位置を上方向に移動(2026/10/02 CSS追記)

横画面で使うとフローティングボタンがアンカー広告(下)の右端が重なるので、SWELL標準と追加のボタンを右方向に移動(2026/10/02 CSS追記)
スマートフォン(iPhone)
スマホ時にはSWELL標準のフローティングボタンを設置したので、WordPressのスマホ向け固定フッターメニュー(画面下部に常時表示されるメニュー)は使っていません。
コンテンツと追加したフローティングボタンが重なるのでJavaScriptで非表示としています。またSWELL標準のフローティングボタンがアンカー広告に隠れないようにボタン位置を上方向に移動しました。


スマホ時のみボタンアイコンを表示しないJavaScriptを追記するとSWELL標準のフローティングボタンのみ表示

SWELL標準のフローティングボタンの位置をアンカー広告の上に変更(2026/09/28 CSS追記)
動作確認は、PC(Windows11)がFirefox(150.0.3 64ビット)、 Edge(151.0.4129.101 公式ビルド 64ビット)、Chrome(151.0.7922.172 公式ビルド 64ビット)、Brave(151.0.7922.173 公式ビルド 64ビット)、SP(iPhone)がSafari(26.6)、Edge(151.0.4129.72)、Chrome(152.0.7977.40)、Brave(1.93(136))、SP(iPad)がSafari(26.6)、Edge(151.0.4129.96)、Chrome(151.0.7922.112)、Brave(1.93(136))、Raspberry Pi OSがFirefox(142.0.1 (aarch64))、Chromium(142.0.7444.162(Official Build)built on Debian GNU/Linux 12 (bookworm) 64 ビット)で行いました。