<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Yuki Shibata - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ エキスパートの手によるプログラミングチュートリアル記事を幅広く掲載。ウェブ開発、データサイエンス、DevOps、セキュリティ、開発者としてのキャリアなどについて学びましょう。 ]]>
        </description>
        <link>https://www.freecodecamp.org/japanese/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Yuki Shibata - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/japanese/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Fri, 15 May 2026 19:50:04 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/japanese/news/author/yuki/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ JavaScript における非同期処理 – コールバック関数、Promise、Async/Await ]]>
                </title>
                <description>
                    <![CDATA[ JavaScript をある程度学習している方なら、「非同期」という言葉を聞いたことがあるかもしれません。 それは JavaScript が非同期言語だからなのですが、そもそも非同期とはどういう意味なのでしょうか？この記事では、非同期の概念をできるだけわかりやすく説明しようと思います。 同期 vs 非同期 本題に入る前に、同期と非同期という言葉にフォーカスしてみましょう。 デフォルトでは、JavaScript は同期的でシングルスレッドのプログラミング言語です。 つまり、命令は一つずつしか実行できず、並列には実行できません。 こちらのコードを見てみましょう:  let a = 1; let b = 2; let sum = a + b; console.log(sum); 上記のコードはとてもシンプルです。二つの数値を合計し、その合計値をブラウザのコンソールに出力しています。インタプリタがこれらの命令を一つずつ順番に実行しているのです。 しかし、この仕組みにはデメリットがあります。例えば、何かサイズの大きいデータをデータベースから取得して、そのデータを画面上に表示すると ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/asynchronous-javascript-explained/</link>
                <guid isPermaLink="false">65e555331059c803f19b4803</guid>
                
                    <category>
                        <![CDATA[ Async/Await ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Yuki Shibata ]]>
                </dc:creator>
                <pubDate>Thu, 26 Sep 2024 07:02:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2024/03/Purple-Minimal-We-Are-Hiring-Twitter-Post--1--1.gif" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/asynchronous-javascript-explained/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">Asynchronous JavaScript – Callbacks, Promises, and Async/Await Explained</a>
      </p><p>JavaScript をある程度学習している方なら、「非同期」という言葉を聞いたことがあるかもしれません。</p><p>それは JavaScript が非同期言語だからなのですが、そもそも非同期とはどういう意味なのでしょうか？この記事では、非同期の概念をできるだけわかりやすく説明しようと思います。</p><h1 id="-vs-"><strong>同期 vs 非同期</strong></h1><p>本題に入る前に、同期と非同期という言葉にフォーカスしてみましょう。</p><p>デフォルトでは、JavaScript は同期的でシングルスレッドのプログラミング言語です。</p><p>つまり、命令は一つずつしか実行できず、並列には実行できません。</p><p>こちらのコードを見てみましょう: </p><pre><code class="language-javascript">let a = 1;
let b = 2;
let sum = a + b;
console.log(sum);</code></pre><p>上記のコードはとてもシンプルです。二つの数値を合計し、その合計値をブラウザのコンソールに出力しています。インタプリタがこれらの命令を一つずつ順番に実行しているのです。</p><p>しかし、この仕組みにはデメリットがあります。例えば、何かサイズの大きいデータをデータベースから取得して、そのデータを画面上に表示するとします。インタプリタがデータ取得のコードまで到達した時、そのデータ取得が完了するまで他のコードの実行はブロックされてしまいます。</p><p>「データ取得の処理にそんなに時間がかかるわけがない」と思われたかもしれません。しかし、このようなデータ取得を複数箇所で行うことを想像してみてください。短時間の処理が積み重なった結果、ユーザーにとって無視できない遅延につながってしまうでしょう。</p><p>幸運なことに、JavaScript の同期処理の問題は、非同期処理の登場により解決されました。</p><p>非同期処理のコードは、今すぐ実行を開始し、後で実行を終了できるコードだと考えてください。JavaScript が非同期で実行される場合、必ずしも先ほどのコードのように命令が順番に実行されるとは限りません。</p><p>この非同期処理を適切に実装するために、開発者達が長年にわたって使用してきたいくつかの異なるソリューションがあります。それぞれの解決策は、その解決策以前の解決策を改良することで、コードをより最適化し、複雑になった場合でも理解しやすくしています。</p><p>JavaScript の非同期処理をさらに理解するために、コールバック関数、Promise、そして async と await について説明します。</p><h1 id="-"><strong>コールバック関数とは？</strong></h1><p>コールバック関数とは、他の関数に渡され、その関数内で呼び出されてタスクを実行する関数のことです。</p><p>混乱してきましたか？実装しながら詳しく見ていきましょう。</p><pre><code class="language-javascript">console.log('fired first');
console.log('fired second');

setTimeout(()=&gt;{
    console.log('fired third');
},2000);

console.log('fired last');</code></pre><p>上記のコードは、ブラウザのコンソールにログを出力する小さなプログラムです。しかし、見慣れないコードがありますね。インタプリタは一つ目の命令を実行し、次に二つ目の命令を実行します。しかし、三つ目の処理はスキップし、四つ目の命令を実行します。</p><p><code>setTimeout</code> は JavaScript の関数で、二つのパラメータを取ります。最初の引数は関数で、二番目の引数はその関数が実行されるまでの時間をミリ秒単位で指定します。これで、コールバック関数の定義が見えてきたのではないでしょうか。</p><p>この場合、<code>setTimeout</code> 内の関数は 2 秒後 (2000 ミリ秒後) に実行される必要があります。他の命令が実行され続けている間に、この関数がブラウザの別の場所で実行されることを想像してみてください。そして 2 秒後、関数の実行結果が返されます。</p><p>そのため、上記のコードを実行すると、次のようになります。</p><pre><code class="language-javascript">fired first
fired second
fired last
fired third</code></pre><p><code>setTimeout</code> 内の関数が結果を返す前に、最後の実行結果がログに出力されていることがわかります。この方法を使ってデータベースからデータを取得したとしましょう。ユーザーがデータベースからの取得結果を待っている間、実行中の処理が中断されることはありません。</p><p>この方法は特定条件下ではとても効率的です。しかし、開発者はコード内で一度に複数のリソース先へ処理の呼び出しをすることがあります。このような呼び出しを行おうとすると、コールバックは非常に読みづらく、保守しづらくなるまでネストされていきます。これは<strong>コールバック地獄</strong>と言われます。</p><p>この問題を解決するために、Promise が導入されました。</p><h1 id="promise-">Promise とは？</h1><p>人が約束をするのはよく聞く話です。無条件でお金を送ると約束したいとこ、クッキーの瓶を勝手に触らないと約束した子供…しかし、JavaScript における約束 (Promise) は少し違います。</p><p>JavaScript の文脈では、約束 (Promise) とは、実行するまでに時間がかかることです。Promise は以下の 2 種類のうちどちらかの結果を返します: </p><ul><li>命令を実行し、Promise を解決する</li><li>命令の実行途中で何らかのエラーが発生し、Promise が拒否される</li></ul><p>Promise は、コールバック関数の問題を解決するために登場しました。Promise は <code>resolve</code> と <code>reject</code> の 2 つの関数を引数として受け取ります。<code>resolve</code> は成功時、<code>reject</code> はエラー発生時と覚えておきましょう。</p><p>実際のコードで Promise を見てみましょう: </p><pre><code class="language-javascript">const getData = (dataEndpoint) =&gt; {
   return new Promise ((resolve, reject) =&gt; {
     // エンドポイントへのリクエスト;
     
     if(request is successful){
       // リクエスト成功後のコード;
       resolve();
     }
     else if(there is an error){
       reject();
     }
   
   });
};</code></pre><p>上記のコードは、あるエンドポイントへのリクエストを実行する関数内にある Promise です。Promise は、前述したように <code>resolve</code> と <code>reject</code> を受け取ります。</p><p>例えば、API エンドポイントへリクエスト後、リクエストが成功すれば、Promise を resolve (解決) し、そのレスポンスを使って実行を続けます。しかし、エラーがあれば、Promise は reject (拒否) されます。</p><p>Promise は、<strong>プロミスチェーン</strong>と呼ばれる方法で、コールバック地獄によって引き起こされる問題を解決する最適な方法です。この方法を使えば、複数の API エンドポイントから順次、より少ないコードと簡単なメソッドでデータを取得することができます。</p><p>しかし、さらに良い方法があります！以下の方法は、JavaScript でデータや API 呼び出しをする際によく使われるので、ご存知の方も多いかもしれません。</p><h1 id="async-await-">async と await とは？</h1><p>結局、コールバック関数のようにプロミスチェーンで Promise を繋げていくのはコードの肥大化や難読化を引き起こします。それを解決するために登場したのが async と await です。</p><p>以下のように async 関数を定義できます:</p><pre><code class="language-javascript">const asyncFunc = async() =&gt; {

}</code></pre><p>async 関数を呼び出すと必ず Promise が返されることに注意してください。こちらを見てください:</p><pre><code class="language-javascript">const test = asyncFunc();
console.log(test);</code></pre><p>上記のコードをブラウザのコンソールで実行すると、<code>asyncFunc</code> が Promise を返していることが確認できます。</p><p>コードを分解して、以下の小さなコードについて考えてみましょう</p><pre><code class="language-javascript">const asyncFunc = async () =&gt; {
	const response = await fetch(resource);
   	const data = await response.json();
}</code></pre><p>前述した通り、<code>async</code> というキーワードは、非同期関数を定義するために使うものです。では、<code>await</code> はどうでしょう？<code>await</code> は、Promise が解決されるまで、response 変数に fetch メソッドの結果が代入されるのを遅らせます。Promise が解決されると、fetch メソッドの結果を response 変数に代入できるようになります。</p><p>同じことが三行目でも起きます。<code>.json</code> メソッドは Promise を返すため、<code>await</code> を使って Promise が解決されるまで代入を遅らせることができます。</p><h1 id="--1"><strong>コードをブロックするかしないか</strong></h1><p>「遅らせる」というと、async や await を実装することでコードの実行がブロックされるのではないか、リクエストに時間がかかりすぎるのではないか、と思うかもしれません。</p><p>実際はそうなることはありません。非同期関数の中にあるコードはブロックされますが、プログラム全体の実行には何の影響もありません。コードの実行はこれまで通り非同期です。こちらのコードを見てください。</p><pre><code>const asyncFunc = async () =&gt; {
	const response = await fetch(resource);
   	const data = await response.json();
}

console.log(1);
cosole.log(2);

asyncFunc().then(data =&gt; console.log(data));

console.log(3);
console.log(4);
</code></pre><p>ブラウザのコンソールでの出力結果は以下のようになります:</p><pre><code>1
2
3
4
data returned by asyncFunc</code></pre><p>asyncFunc 関数が結果を返すまでは、他のコードが実行され続けたことがわかります。</p><h1 id="--2"><strong>まとめ</strong></h1><p>この記事では、各コンセプトを深く扱うことはしませんでしたが、JavaScript における非同期処理がどのようなものなのか、そして注意すべき点をいくつか紹介できたかと思います。</p><p>これは JavaScript の非常に重要な部分であり、この記事は表面をなぞったに過ぎません。とはいえ、この記事がこれらの概念を理解する助けになれば幸いです。</p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ React Hooks を使って localStorage のデータを保存・取得する方法 ]]>
                </title>
                <description>
                    <![CDATA[ localStorage は、JavaScript を用いて作られたサイトやアプリが、有効期限なしでウェブブラウザにキー・バリュー形式のデータを保存するためのウェブストレージオブジェクトです。 つまり、保存されたデータはページを更新したり、ブラウザを再起動しても残ったままです。これは、ブラウザに保存されたデータは、ブラウザウィンドウが閉じられても残ることを意味します。 要するに、localStorage を使うことで、開発者はブラウザ内にデータを保存したり取得したりできるようになります。 しかし、localStorage をプロジェクトのデータベースとして使用するのは良い方法ではありません。 localStorage は、アプリケーションにダークモード機能を追加したり、ToDo のデータを保存したり、ユーザーのフォーム入力値を永続化したり、その他多くの場面で頻繁に使用されます。 今回は、React Hooks で localStorage を使用し、データを簡単に保存・取得する方法を見ていきましょう。 React Hooks を使って localStorage へデータを保 ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/how-to-use-localstorage-with-react-hooks-to-set-and-get-items/</link>
                <guid isPermaLink="false">65034b9f0e802a03f9dba229</guid>
                
                    <category>
                        <![CDATA[ React ]]>
                    </category>
                
                    <category>
                        <![CDATA[ React Hooks ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Yuki Shibata ]]>
                </dc:creator>
                <pubDate>Thu, 07 Dec 2023 23:49:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2023/09/Yellow-and-Purple-Geometric-Covid-19-General-Facts-Twitter-Post.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/how-to-use-localstorage-with-react-hooks-to-set-and-get-items/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Use localStorage with React Hooks to Set and Get Items</a>
      </p><p>localStorage は、JavaScript を用いて作られたサイトやアプリが、有効期限なしでウェブブラウザにキー・バリュー形式のデータを保存するためのウェブストレージオブジェクトです。</p><p>つまり、保存されたデータはページを更新したり、ブラウザを再起動しても残ったままです。これは、ブラウザに保存されたデータは、ブラウザウィンドウが閉じられても残ることを意味します。</p><p>要するに、localStorage を使うことで、開発者はブラウザ内にデータを保存したり取得したりできるようになります。</p><p>しかし、localStorage をプロジェクトのデータベースとして使用するのは良い方法ではありません。</p><p>localStorage は、アプリケーションにダークモード機能を追加したり、ToDo のデータを保存したり、ユーザーのフォーム入力値を永続化したり、その他多くの場面で頻繁に使用されます。</p><p>今回は、React Hooks で localStorage を使用し、データを簡単に保存・取得する方法を見ていきましょう。</p><h3 id="react-hooks-localstorage-scrim-"><strong>React Hooks を使って localStorage へデータを保存・取得する方法についてのインタラクティブな Scrim:</strong></h3><p>(訳注: Scrimba というサイトの機能で、インタラクティブなエディタと動画がセットになっています。)</p><!--kg-card-begin: html--><iframe src="https://scrimba.com/scrim/crdLpnSG?embed=freecodecamp,mini-header" width="100%" height="480" title="Embedded content" loading="lazy"></iframe><!--kg-card-end: html--><h3 id="react-hooks-"><strong>React Hooks とは</strong></h3><p>React Hooks は、コンポーネントに機能を追加するために React から import する JavaScript の関数です。</p><p>Reat Hooks を使うことで、関数コンポーネント内で state やライフサイクルメソッドを使うことができます。また、既存のコードでも動作するため、導入も簡単です。</p><p>React Hooks を用いて localStorage を使用するには、2 つの React Hooks を使います: </p><ul><li><code>useState()</code> – アプリケーションの state は、いつか必ず変化します。<code>useState()</code> は、初期 state (変数やオブジェクト、あるいはその他のデータ型) を 1 つの引数として受け取り、現在の state とその state の更新関数を返します。</li><li><code>useEffect()</code> – この React Hooks は、デフォルトでは最初のレンダリングの後、state が変更されるたびに実行されます。名前が示すように、state が変更されるたびに副作用 (effect) を実行するために使用されます。この React Hooks は、イベントリスナーを設定したり、API からデータを取得したり、コンポーネントが DOM から削除される前にイベントリスナーを削除したりするのに最適です。</li></ul><h3 id="react-localstorage-"><strong>React で localStorage を操作する方法</strong></h3><p>ブラウザの localStorage にアクセスするためのメソッドは 5 つあります:</p><ul><li><code>setItem()</code> : キー・バリュー形式のデータを localStorage に保存します。</li><li><code>getItem()</code> : データを保存した時のキーを指定して localStorage から値を取得します。</li><li><code>removeItem()</code> : データを保存した時のキーを指定して localStorage から値を削除します。</li><li><code>clear()</code> : localStorage に保存されている全てのデータを削除します。</li><li><code>key(index)</code>: localStorage に保存されている、指定された index 番号のキー名を返します。</li></ul><p>今回は、最も使用頻度の高い <code>setItem()</code> と <code>getItem()</code> に絞って解説していきます。</p><h3 id="setitem-"><strong><code>setItem()</code> の使い方</strong></h3><p>localStorage にキーを設定すると、データを格納できます。このデータの値は、テキスト、整数、オブジェクト、配列など、どのようなデータ型でも構いません。</p><p>localStorage にデータを格納する際、そのデータを <code>JSON.stringify()</code> を使って文字列へ変換する必要があることを忘れないでください。</p><pre><code class="language-react">const [items, setItems] = useState([]);

useEffect(() =&gt; {
  localStorage.setItem('items', JSON.stringify(items));
}, [items]);</code></pre><p>上記のコードでは、まず空配列の state を作成 (配列以外のデータ型でも良い) しています。次に、<code>useEffect()</code> を使うことによって state が更新されたときに localStorage へデータを追加しています。これは <code>useEffect()</code> の第二引数に state を渡すことで実現しています。</p><p>基本的には、以下のように指定することで localStorage にキー・バリュー形式のデータを追加できます:</p><pre><code class="language-react">localStorage.setItem('items', JSON.stringify(items));</code></pre><p>つまり、先ほどのコードではキーに 'items' という名前を付け、それに値を代入しています。ただし、まず追加するデータが JSON 文字列であることを確認する必要がありましたね。</p><p><code>JSON.stringify()</code> を使用して、JSON オブジェクトを文字列である JSON テキストに変換し、ウェブサーバーに送信できるようにします。<br></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645380076460_explaining-useeffect-local-storage.jpg" class="kg-image" alt="s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645380076460_explaining-useeffect-local-storage" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645380076460_explaining-useeffect-local-storage.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645380076460_explaining-useeffect-local-storage.jpg 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645380076460_explaining-useeffect-local-storage.jpg 1600w, https://www.freecodecamp.org/japanese/news/content/images/size/w2400/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645380076460_explaining-useeffect-local-storage.jpg 2400w" sizes="(min-width: 720px) 720px" width="2000" height="1095" loading="lazy"><figcaption>hooks が localStorage と連携してデータを格納する仕組み</figcaption></figure><h3 id="getitem-"><strong><code>getItem()</code> の使い方</strong></h3><p>このメソッドは localStorage からオブジェクトを取得します。React では他の方法もありますが、ここでは <code>useEffect()</code> を使用します。</p><p><code>useEffect()</code> は、最初のレンダリング時にすべてのアイテムを取得してくれます。つまり、コンポーネントがマウントまたは再レンダリングするたびに、localStorage からすべてのデータを取得します。</p><p><code>useEffect()</code> の第二引数を空にしているのはこのためです。</p><pre><code class="language-react">const [items, setItems] = useState([]);

useEffect(() =&gt; {
  const items = JSON.parse(localStorage.getItem('items'));
  if (items) {
   setItems(items);
  }
}, []);</code></pre><p>先ほどデータを localStorage に保存した時、データを JSON 文字列に変換したことを思い出してください。つまり、このデータを利用するためには、JSON 文字列を JSON オブジェクトに変換する必要があります。これは、<code>JSON.parse()</code> メソッドで行います。</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/japanese/news/content/images/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645369611908_explaining-useeffect-local-storage2.jpg" class="kg-image" alt="s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645369611908_explaining-useeffect-local-storage2" srcset="https://www.freecodecamp.org/japanese/news/content/images/size/w600/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645369611908_explaining-useeffect-local-storage2.jpg 600w, https://www.freecodecamp.org/japanese/news/content/images/size/w1000/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645369611908_explaining-useeffect-local-storage2.jpg 1000w, https://www.freecodecamp.org/japanese/news/content/images/size/w1600/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645369611908_explaining-useeffect-local-storage2.jpg 1600w, https://www.freecodecamp.org/japanese/news/content/images/size/w2400/2023/12/s_EAEEAE9063B0CA7CBC6574F36123E82B36B6C1EC3724A86DA7C0B4C67C2DD652_1645369611908_explaining-useeffect-local-storage2.jpg 2400w" sizes="(min-width: 720px) 720px" width="2000" height="1095" loading="lazy"><figcaption>hooks が localstorage と連携してアイテムを取得する仕組み</figcaption></figure><h3 id="-"><strong>まとめ</strong></h3><p>この記事では、React hooks を使って localStorage を使う方法、使うタイミングやどの hooks を使うかについて学びました。</p><p>実際にこれがどのように機能するか知りたい方は、localStorage とこれらの Hooks を使用したシンプルな ToDo リストアプリの<a href="https://github.com/olawanlejoel/Todo-App">ソースコード</a>を参照してください。</p><p>state と props の詳細については、私が書いたこちらの<a href="https://joelolawanle.com/posts/understanding-state-props-react-key-differences-explained">記事</a>で学ぶことができます。また、こちらの <a href="https://joelolawanle.com/contents">content repository</a> から、私が書いた記事の全てを閲覧できます。</p><p></p> ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ CSS を HTML にリンクする方法 – スタイルシートファイルのリンク ]]>
                </title>
                <description>
                    <![CDATA[ HTML は、web ページの構造を定義するために使用されるマークアップ言語です。CSS は、web ページの構造の見栄えを良くしたり、レイアウトを組むために使用されるスタイルシート言語です。 CSS で実装したスタイリングを HTML に反映するためには、CSS を HTML にリンクする必要があります。 リンクする方法として、インライン CSS、内部 CSS、外部 CSS があります。 ベストプラクティスとして CSS と HTML は分けた方がいいので、この記事では外部 CSS で HTML にリンクする方法を説明します。 CSS を HTML にリンクする方法 CSS を HTML にリンクするためには、link タグと複数の属性を使います。 link タグは自己終了タグで、HTML の head タグ内で使用できます。 link タグを使って CSS を HTML にリンクする: <link rel="stylesheet" type="text/css" href="styles.css" ]]>
                </description>
                <link>https://www.freecodecamp.org/japanese/news/how-to-link-css-to-html/</link>
                <guid isPermaLink="false">644ca243575f110652ab43a6</guid>
                
                    <category>
                        <![CDATA[ CSS ]]>
                    </category>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Yuki Shibata ]]>
                </dc:creator>
                <pubDate>Mon, 01 May 2023 10:26:00 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/japanese/news/content/images/2023/04/linkHTMLCSS.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>原文:</strong> <a href="https://www.freecodecamp.org/news/how-to-link-css-to-html/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Link CSS to HTML – Stylesheet File Linking</a>
      </p><p>HTML は、web ページの構造を定義するために使用されるマークアップ言語です。CSS は、web ページの構造の見栄えを良くしたり、レイアウトを組むために使用されるスタイルシート言語です。</p><p>CSS で実装したスタイリングを HTML に反映するためには、CSS を HTML にリンクする必要があります。</p><p>リンクする方法として、インライン CSS、内部 CSS、外部 CSS があります。</p><p>ベストプラクティスとして CSS と HTML は分けた方がいいので、この記事では外部 CSS で HTML にリンクする方法を説明します。</p><h2 id="css-html-"><strong>CSS を HTML にリンクする方法</strong></h2><p>CSS を HTML にリンクするためには、link タグと複数の属性を使います。</p><p>link タグは自己終了タグで、HTML の head タグ内で使用できます。</p><p>link タグを使って CSS を HTML にリンクする:</p><pre><code class="language-css">&lt;link rel="stylesheet" type="text/css" href="styles.css" /&gt;
</code></pre><p>以下のように、head タグ内に link タグを設置してください:</p><pre><code class="language-html">&lt;head&gt;
    &lt;meta charset="UTF-8" /&gt;
    &lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt;
    &lt;link rel="stylesheet" type="text/css" href="styles.css" /&gt; 
    &lt;title&gt;Link CSS to HTML&lt;/title&gt;
&lt;/head&gt;</code></pre><h2 id="link-"><strong>link タグの属性</strong></h2><h3 id="rel-"><code><strong>rel</strong></code><strong> 属性</strong></h3><p><code>rel</code> 属性は、外部ファイルと自ファイルの関係を指定する属性です。CSS の場合、値は <code>stylesheet</code> になります。例えば、<code>rel="stylesheet"</code> のように指定できます。</p><h3 id="type-"><code><strong>type</strong></code><strong> 属性</strong></h3><p><code>type</code> 属性は、HTML にリンクしようとしているドキュメントのタイプを指定する属性です。CSS の場合、値は <code>text/css</code> になります。例えば、<code>type="text/css"</code> のように指定できます。</p><h3 id="href-"><code><strong>href</strong></code><strong> 属性</strong></h3><p><code>href</code> は“hypertext reference”の略称です。CSS ファイルの場所とファイル名を指定するために使用します。クリック可能なリンクになるので、<code>CTRL</code> を押しながらクリックして CSS ファイルを表示することができます。</p><p>例えば、CSS ファイルが HTML ファイルと同じフォルダにある場合、<code>href="styles.css"</code> のように指定できます。CSS ファイルが HTML ファイルと別のフォルダにある場合、<code>href="folder/styles.css"</code> のように指定できます。</p><h2 id="-"><strong>まとめ</strong></h2><p>この記事では、<code>link</code> タグと複数の属性を使って外部 CSS を HTML にリンクする方法を紹介しました。</p><p>また、仕組みを知らないまま使ってしまわないように、それぞれの属性が持つ意味についても見ていきました。</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
