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

カスタムHTMLコードと CSSの動作確認時のWordPress、SWELL、PHPのバージョンです。
- WordPress7.1
- SWELL2.19.0
- PHP8.3.31
ボタンを表示するカスタムHTMLコード
ボタンを表示するカスタムHTMLコードは、これまでブログパーツ内に書いてウィジェットを介していましたが、今回PC、タブレット、スマホ画面に追加表示するにあたりSWELLのシステム設定に直接コードを書き込む方法に変更しました。
- WordPress管理画面から「外観」>「カスタマイズ」タブを開き、「高度な設定」を開きます
- その中にある「bodyタグ終了直前に出力するコード(/body直前)」の入力欄に、ボタンを出力する「カスタムHTMLのコード」を直接貼り付け、画面下の「変更を保存」をクリック
ボタンを表示するカスタムHTMLコード
当サイトで運用中の特定のページへ飛ぶ7つのボタンを表示するカスタムHTMLコードです。ボタンの中のアイコン(ホーム、フォルダ、虫眼鏡、メール)はHTMLの特殊文字コードを使っています。「特殊文字コード」は、端末(Windows/Mac/iPhone/Android)のOSに内蔵されている絵文字データを自動で呼び出す仕組みになっています。そのため、PC(Windowsなど)では立体的なカラー絵文字になったり、スマホ(iPhoneなど)ではシンプルなモノクロに見えたりします。PCでもタブレット・スマホでもモノクロの線画アイコンで統一されるように、CSS側でカラー化を強制禁止しています。
<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>スマホ時のみボタンを表示しないJavaScript
スマホ時のみボタンを表示したくないときはカスタムHTMLコードに下記のJavaScriptを追記します。
<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>フローティングボタンを同じデザインで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; }
}PC、タブレット、スマホのブラウザ(Firefox、Edge、Chrome、Brave)で確認
SWELL標準の「先頭へ」ボタンや「目次」ボタンの上に今回設置した特定のページへ飛ぶフローティングボタンがPC、タブレット、スマホで表示され機能することが確認できました。




スマホ時のみボタンアイコンを表示しないJavaScriptを追記するとSWELLオリジナルのアイコンのみが表示される
動作確認は、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 ビット)で行いました。