Bulmaをブルマから学ぶ ~リターンズ~
※タイトル画像はChatGPTで作成したイメージです
前回の内容です
再び、帰ってきたわよ。
今回はね、
ホーム/サービス/お問い合わせをクリックしたら、その場所へスッと移動させるわ。
覚えておきなさい。
Bulmaは見た目担当。
これは HTMLの id と aタグの href だけでできるの。
JavaScript?
いらないわ。
Step1:移動先に “目印(id)” を付ける
まずは「ここに来いよ」っていう目印をつけるの。
移動したいセクションに id="..." を付けなさい。
✅ 例:
Hero(トップ) → id="home"
サービス紹介 → id="services"
お問い合わせ → id="contact"
あなたのHTMLでは、こうするのよ。
<section class="hero is-medium hero-bg" id="home">
<section class="section" id="services">
<section class="section" id="contact">会社紹介はこうよ
<section class="section" id="company">って増やせばいいだけ。簡単でしょ?
Step2:Navbarのリンク先を「#id」にする
次はリンク側。
href="#id" にするだけよ。
<div class="navbar-end">
<a class="navbar-item" href="#home">ホーム</a>
<a class="navbar-item" href="#services">サービス</a>
<a class="navbar-item" href="#contact">お問い合わせ</a>
</div>これでクリックすると、その id の場所へジャンプするわ。
# がつくのがポイントよ。
Step3:「スッ…」と移動させる(スムーズスクロール)
ジャンプってカクッと動くでしょ?
あれ、ちょっとダサいのよ。
だからCSSで滑らかにするわ。
<head>の<style> 内に追加しなさい。
<style>
html {
scroll-behavior: smooth;
}
</style>これだけで、
スッ…と気持ちよくスクロールするの。
Step4:固定Navbarの“見出しが隠れる問題”対策(重要)
is-fixed-top を使うとね、
ジャンプ先の見出しがナビに隠れるの。
それはダサい。
だからこうするの。
もし固定ナビにするなら:
<nav class="navbar is-dark is-fixed-top" role="navigation">そして<head>の<style>にこれを追加。
<style>
section[id] {
scroll-margin-top: 4rem;
}
</style>4remは目安よ。
ナビが大きいなら 5rem にしなさい。
“見た目が隠れない”っていうのは、実務では超重要よ。


まとめ:最低限やること(3点)
覚えるのはこれだけ。
✔ 各セクションに id を付ける
✔ Navbarのリンクを href="#id" にする
✔ scroll-behavior: smooth; を追加
たったこれだけ。
サンプルコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Bulmaチュートリアル</title>
<!-- Bulmaを読み込む(CDN) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.0/css/bulma.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
<style>
/* Heroの背景画像+暗いフィルター */
.hero-bg {
background-image:
linear-gradient(rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.55)),
url("https://images.unsplash.com/photo-1521737604893-d14cc237f11d?auto=format&fit=crop&w=1600&q=80");
background-size: cover;
background-position: center;
}
.hero-bg {
background-image:
linear-gradient(rgba(0, 0, 0, 0.55), rgba(0, 0, 0, 0.55)),
url("https://images.unsplash.com/photo-1521737604893-d14cc237f11d?auto=format&fit=crop&w=1600&q=80");
background-size: cover;
background-position: center;
}
/* カードを少し浮かせて、ホバーで気持ちよく */
.card-hover {
border-radius: 14px;
overflow: hidden;
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.card-hover:hover {
transform: translateY(-4px);
box-shadow: 0 10px 28px rgba(0, 0, 0, 0.15);
}
/* タイトルとアイコンの間隔を少し整える */
.title .icon {
margin-right: 0.35rem;
}
/* すでにあるCSSの下に追記OK */
/* セクション見出しの間隔を少し美しく */
.section .title {
margin-bottom: 0.25rem;
}
.section .subtitle {
margin-top: 0.25rem;
}
/* フォームの箱を少し上品に */
.box {
border-radius: 14px;
}
html {
scroll-behavior: smooth;
}
section[id] {
scroll-margin-top: 4rem;
}
</style>
</head>
<body>
<nav class="navbar is-dark is-fixed-top" role="navigation">
<div class="navbar-brand">
<a class="navbar-item">
Bulma入門
</a>
</div>
<div class="navbar-menu">
<div class="navbar-end">
<a class="navbar-item" href="#home">ホーム</a>
<a class="navbar-item" href="#services">サービス</a>
<a class="navbar-item" href="#contact">お問い合わせ</a>
</div>
</div>
</nav>
<section class="hero is-medium hero-bg" id="home">
<div class="hero-body">
<div class="container">
<p class="title has-text-white">
Bulmaで画面デザイン
</p>
<p class="subtitle has-text-white">
初心者向けチュートリアル
</p>
<div class="buttons">
<a class="button is-primary">
<span class="icon"><i class="fa-solid fa-circle-info"></i></span>
<span>会社概要</span>
</a>
<a class="button is-light">
<span class="icon"><i class="fa-solid fa-envelope"></i></span>
<span>お問い合わせ</span>
</a>
</div>
</div>
</div>
</section>
<section class="section" id="services">
<div class="container">
<h2 class="title is-4">
<span class="icon"><i class="fa-solid fa-briefcase"></i></span>
サービス紹介
</h2>
<div class="columns is-variable is-5">
<!-- 1 -->
<div class="column is-4-desktop is-6-tablet">
<div class="card card-hover">
<div class="card-image">
<figure class="image is-16by9">
<img src="https://images.unsplash.com/photo-1523240795612-9a054b0db644?auto=format&fit=crop&w=1200&q=80"
alt="研修">
</figure>
</div>
<div class="card-content">
<p class="title is-5">
<span class="icon"><i class="fa-solid fa-chalkboard-user"></i></span>
教育
</p>
<p class="content">初心者向け研修を、現場で使える形で提供します。</p>
<a class="button is-link is-light is-small">詳しく</a>
</div>
</div>
</div>
<!-- 2 -->
<div class="column is-4-desktop is-6-tablet">
<div class="card card-hover">
<div class="card-image">
<figure class="image is-16by9">
<img src="https://images.unsplash.com/photo-1555066931-4365d14bab8c?auto=format&fit=crop&w=1200&q=80"
alt="開発">
</figure>
</div>
<div class="card-content">
<p class="title is-5">
<span class="icon"><i class="fa-solid fa-code"></i></span>
開発
</p>
<p class="content">業務システムの設計から実装・運用まで支援します。</p>
<a class="button is-link is-light is-small">詳しく</a>
</div>
</div>
</div>
<!-- 3 -->
<div class="column is-4-desktop is-6-tablet">
<div class="card card-hover">
<div class="card-image">
<figure class="image is-16by9">
<img src="https://images.unsplash.com/photo-1553877522-43269d4ea984?auto=format&fit=crop&w=1200&q=80"
alt="相談">
</figure>
</div>
<div class="card-content">
<p class="title is-5">
<span class="icon"><i class="fa-solid fa-comments"></i></span>
相談
</p>
<p class="content">DX推進や開発体制づくりの相談に対応します。</p>
<a class="button is-link is-light is-small">詳しく</a>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="section" id="company">
<div class="container">
<h2 class="title is-4">
<span class="icon"><i class="fa-solid fa-building"></i></span>
会社紹介
</h2>
<p class="subtitle is-6">3つの特徴をカードでまとめます</p>
<div class="columns is-variable is-5">
<!-- Card 1 -->
<div class="column is-4-desktop is-6-tablet">
<div class="card card-hover">
<div class="card-image">
<figure class="image is-16by9">
<img src="https://images.unsplash.com/photo-1522071820081-009f0129c71c?auto=format&fit=crop&w=1200&q=80"
alt="チーム">
</figure>
</div>
<div class="card-content">
<div class="media">
<div class="media-left">
<figure class="image is-48x48">
<img class="is-rounded" src="https://placehold.co/96x96?text=ABC" alt="ロゴ">
</figure>
</div>
<div class="media-content">
<p class="title is-5">ABCソリューションズ</p>
<p class="subtitle is-6">業務システム / 教育</p>
</div>
</div>
<div class="content">
現場で役立つシステム開発と、新人研修をワンストップで提供します。
<br><br>
<span class="tag is-info is-light">#業務システム</span>
<span class="tag is-success is-light">#研修</span>
<span class="tag is-link is-light">#伴走</span>
</div>
<div class="buttons">
<a class="button is-primary is-small" href="#">会社概要</a>
<a class="button is-light is-small" href="#">実績</a>
</div>
</div>
</div>
</div>
<!-- Card 2 -->
<div class="column is-4-desktop is-6-tablet">
<div class="card card-hover">
<div class="card-image">
<figure class="image is-16by9">
<img src="https://images.unsplash.com/photo-1556761175-129418cb2dfe?auto=format&fit=crop&w=1200&q=80"
alt="会議">
</figure>
</div>
<div class="card-content">
<div class="media">
<div class="media-left">
<figure class="image is-48x48">
<img class="is-rounded" src="https://placehold.co/96x96?text=DX" alt="ロゴ">
</figure>
</div>
<div class="media-content">
<p class="title is-5">DX支援</p>
<p class="subtitle is-6">改善提案 / 仕組み化</p>
</div>
</div>
<div class="content">
業務の棚卸しから改善案の提案、運用定着まで支援します。
<br><br>
<span class="tag is-warning is-light">#業務改善</span>
<span class="tag is-info is-light">#可視化</span>
<span class="tag is-success is-light">#定着</span>
</div>
<div class="buttons">
<a class="button is-link is-small" href="#">支援内容</a>
<a class="button is-light is-small" href="#">相談</a>
</div>
</div>
</div>
</div>
<!-- Card 3 -->
<div class="column is-4-desktop is-6-tablet">
<div class="card card-hover">
<div class="card-image">
<figure class="image is-16by9">
<img src="https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?auto=format&fit=crop&w=1200&q=80"
alt="オフィス">
</figure>
</div>
<div class="card-content">
<div class="media">
<div class="media-left">
<figure class="image is-48x48">
<img class="is-rounded" src="https://placehold.co/96x96?text=DEV" alt="ロゴ">
</figure>
</div>
<div class="media-content">
<p class="title is-5">開発体制づくり</p>
<p class="subtitle is-6">設計 / テスト / 品質</p>
</div>
</div>
<div class="content">
設計レビュー、テスト方針、開発プロセス整備で品質を上げます。
<br><br>
<span class="tag is-dark is-light">#設計</span>
<span class="tag is-link is-light">#テスト</span>
<span class="tag is-success is-light">#品質</span>
</div>
<div class="buttons">
<a class="button is-success is-small" href="#">取り組み</a>
<a class="button is-light is-small" href="#">事例</a>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="section" id="contact">
<div class="container">
<h2 class="title is-4">
<span class="icon"><i class="fa-solid fa-envelope"></i></span>
お問い合わせ
</h2>
<div class="box">
<div class="columns is-variable is-5">
<!-- 左列 -->
<div class="column">
<div class="field">
<label class="label">お名前</label>
<div class="control has-icons-left">
<input class="input" type="text" placeholder="例:山田 太郎">
<span class="icon is-left"><i class="fa-solid fa-user"></i></span>
</div>
</div>
<div class="field">
<label class="label">メールアドレス</label>
<div class="control has-icons-left">
<input class="input" type="email" placeholder="example@example.com">
<span class="icon is-left"><i class="fa-solid fa-at"></i></span>
</div>
</div>
<div class="field">
<label class="label">ご用件</label>
<div class="control">
<div class="select is-fullwidth">
<select>
<option>研修の相談</option>
<option>開発の相談</option>
<option>DX支援の相談</option>
<option>その他</option>
</select>
</div>
</div>
</div>
</div>
<!-- 右列 -->
<div class="column">
<div class="field">
<label class="label">内容</label>
<div class="control">
<textarea class="textarea" rows="8" placeholder="お問い合わせ内容を入力してください"></textarea>
</div>
</div>
<div class="field">
<div class="control">
<label class="checkbox">
<input type="checkbox">
個人情報の取り扱いに同意します
</label>
</div>
</div>
<div class="field is-grouped is-grouped-right">
<div class="control">
<button class="button is-primary">
<span class="icon"><i class="fa-solid fa-paper-plane"></i></span>
<span>送信</span>
</button>
</div>
<div class="control">
<button class="button is-light" type="reset">クリア</button>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="content has-text-centered">
<p>© 2026 Bulma Tutorial Site</p>
</div>
</footer>
</body>
</html>どう?
これで“ただの練習ページ”が、ちゃんとしたWebサイトの動きになったでしょ?
こういう細かい完成度の積み重ねが、
「素人っぽい」と「プロっぽい」を分けるのよ。😏✨
