| この記事の要点 |
|
style 属性とは
HTML の style 属性は、要素に直接 CSS を書き込む「インラインスタイル」の指定方法です。style="プロパティ:値; ..." の形式で記述し、その要素にだけ CSS が適用されます。
基本構文
<p style="color: #f00; font-size: 16px;">赤い文字</p>
<div style="background: yellow; padding: 1em; border: 1px solid black;">
黄色背景のボックス
</div>
<a href="/" style="text-decoration: none; color: navy;">リンク</a>
CSS の組み込み方 3 方式
HTML に CSS を適用する方法は 3 つあり、style 属性はその 1 つです。
| 方式 | 書き方 | 適用範囲 | 優先度 |
|---|---|---|---|
| インライン(style 属性) | <p style="..."> | その要素のみ | ★★★ 最高 |
| <style> 要素 | <style>p{...}</style> | その HTML 内 | ★★ |
| 外部 CSS ファイル | <link href="style.css"> | リンクされたページ全体 | ★ |
3 方式の比較例
1. インライン(style 属性)
<p style="color: red;">赤い段落</p>
2. <style> 要素
<head>
<style>
p { color: red; }
</style>
</head>
<body>
<p>赤い段落</p>
</body>
3. 外部 CSS ファイル
<!-- index.html -->
<head>
<link rel="stylesheet" href="style.css">
</head>
<!-- style.css -->
p { color: red; }
カスケード(優先順位)
同じ要素に複数の CSS が当たったとき、どれが優先されるかの順序をカスケードと呼びます。一般的な優先順位は次の通りです。
!important付き宣言(最強)- インライン(style 属性)
- ID セレクタ(
#id) - クラス・属性・擬似クラス(
.class/[attr]/:hover) - 要素・擬似要素(
p/::before) - 後に書かれた宣言が勝つ
style 属性は ID セレクタより強いため、外部 CSS で上書きするには !important が必要になることが多く、保守性を著しく落とします。
JavaScript からの style 操作
JS から要素の style プロパティを操作すると、style 属性が動的に書き換わります。プロパティ名はキャメルケースになる点に注意(font-size → fontSize)。
const el = document.querySelector('#box');
el.style.color = 'red';
el.style.backgroundColor = 'yellow';
el.style.fontSize = '24px';
// 一括設定
el.style.cssText = 'color:red; background:yellow; font-size:24px';
// 削除
el.style.color = '';
style 属性のデメリット
| 問題 | 内容 |
|---|---|
| 再利用不可 | 同じスタイルを別要素で使いたいときコピペになる |
| 保守性が低い | 色を変えるのに全 HTML を grep する羽目に |
| キャッシュが効かない | HTML の一部なので CSS ファイルのようなブラウザキャッシュが使えない |
| HTML が肥大化 | 本文と装飾が混ざり可読性低下 |
| CSP で禁止される可能性 | セキュリティポリシー的に厳しい |
| メディアクエリが書けない | レスポンシブ対応が困難 |
使いどころ
style 属性を使う妥当な場面もあります。
- JavaScript による動的スタイル変更(要素の表示/非表示、アニメーション)
- HTML メール(多くのメールクライアントは外部 CSS や <style> を無視するためインラインが必須)
- プロトタイプ・モック(CSS ファイルを作るほどでない試作)
- 1 箇所だけの微調整(CMS 上で限定的に位置だけ調整したい等)
- CSS-in-JS の一部実装パターン
CSP(Content Security Policy)
セキュリティを重視するサイトでは、style-src ディレクティブで 'unsafe-inline' を禁止していることがあり、その場合 style 属性は動作しません。本番投入時は次のいずれかで対応します。
- 外部 CSS / <style> に移行する
nonce属性を付与する(CSP のstyle-src 'nonce-xxx'と一致)- hash で許可する(CSP の
style-src 'sha256-xxx')
FAQ
Q: style 属性で擬似クラス(:hover 等)は書ける?
A: 書けません。擬似クラス・擬似要素・メディアクエリは <style> 要素または外部 CSS でしか定義できません。
Q: 複数プロパティはどう書く?
A: セミコロン区切り。style="color:red; background:yellow; padding:1em;"
Q: 変数(CSS カスタムプロパティ)も書ける?
A: 書けます。style="--main-color:red; color: var(--main-color);"
関連
- <style> 要素 — HTML 内に CSS をまとめて書く方法
- <link> 要素 — 外部 CSS の読み込み
- CSS 詳細度 — セレクタの優先度
- !important — 強制的に優先する宣言
- CSP — コンテンツセキュリティポリシー
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Git pushした変更の取消し|revert・履歴変更と保護の注意点 2026-10-15 23:49:01
- Gitでローカルを戻す前に|reset・restoreの違いと退避範囲 2026-10-15 23:49:01
- Git rebaseの使い方|対象範囲・競合解決・pushの判断 2026-10-15 22:50:59
- Git pullの使い方|取込み先・ff-only・競合とstashの注意点 2026-10-15 22:50:59
- Git pushの使い方|送信先・タグ・force-with-leaseの条件 2026-10-15 22:12:47
- Git remoteの設定・確認・削除|SSH URLとfetch/pushの違い 2026-10-15 22:12:47
- Gitリモートリポジトリの作成|初回push・既存履歴・mirrorの注意 2026-10-15 15:48:16
- Gitのuser.name・user.email設定|local/global・確認と過去履歴の注意 2026-10-15 15:30:07
- LinuxにGitをインストール|配布元・初期設定・TLSと認証の確認 2026-10-15 15:30:06
- Git導入と初回push|Linuxサーバー・Windows/macOS・SSH設定 2026-10-15 14:51:54
- Db2のCREATE INDEX|索引定義・INCLUDEと実行計画の確認 2026-10-15 14:10:22
- Db2の自動採番|IDENTITY・ID取得とRESTARTの注意点 2026-10-15 14:10:22
- 【DB2】特定スキーマの全テーブルの全カラム情報を取得する方法 2026-10-15 13:53:15
- Db2のシーケンスとIDENTITYの違い|採番とカタログの確認SQL 2026-10-15 13:53:15
- Db2で複数カラムをUPDATEする方法|SET・WHEREと更新前の値 2026-10-15 13:53:15