<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル</title>
  
  <subtitle>中野ピク氏(著)</subtitle>
  <link href="/atom.xml" rel="self"/>
  
  <link href="https://css.nakano-pixy.com/"/>
  <updated>2021-02-05T14:51:34.347Z</updated>
  <id>https://css.nakano-pixy.com/</id>
  
  <author>
    <name>中野ピク氏</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>おわりに</title>
    <link href="https://css.nakano-pixy.com/2021/02/04/afterword/"/>
    <id>https://css.nakano-pixy.com/2021/02/04/afterword/</id>
    <published>2021-02-04T14:10:19.000Z</published>
    <updated>2021-02-05T14:51:34.347Z</updated>
    
    <content type="html"><![CDATA[<h2 id="おわりに"><a href="#おわりに" class="headerlink" title="おわりに"></a>おわりに</h2><p>ここまで読んでいただき本当にありがとうございました。</p><p>このとてもやさしいCSS設計チュートリアルを書くにあたっては、「とにかくこれだけをやっておけば大丈夫」というぐらい重要なことだけに絞って説明し、既に一般的に広く知られているMindBEMdingやSCSS記法を使用することで、新たに覚えることがなるべく少なくなるように心がけました。<br>また、一人ひとりの解釈によって判断に迷いが生じやすい事柄も可能な限り排除しました。  </p><p>CSSが壊れていくきっかけとして、メンバーの増員や交代をしたことがきっかけとなるケースが多いように思いますが、可能な限り単純で覚えやすいルールとすることで、チームメンバーが増員される場合や、自身がプロジェクトを離れ引継ぎをした場合にも、安定的にメンテナンスを続けられるようになります。</p><p>このとてもやさしいCSS設計チュートリアルで説明してきたことは、ほとんどがとても基礎的なことの組み合わせです。<br>例えば隣接兄弟要素セレクタ、first-child、last-childなどはとても基礎的なセレクタですが、それらをいつどのように使用するかによって、CSSの保守性に大きな違いが生じます。</p><p>一度読んだだけで理解し使いこなすことは難しいと感じる人もいるかもしれませんが、ぜひこのとてもやさしいCSS設計チュートリアルを繰り返し読んでいただいて、理解を深めていただけたら嬉しいです。</p><p>長期的なメンテナンスを視野に入れてCSSを書くために必要な最低限のことについては、第7章までで全て説明しているつもりですが、あまり細かなことまで挙げすぎると重要なことが埋もれてしまうという考えから、重要性が低いと判断したことや、最低限とは言えない発展的な手法についてはいくつか割愛してきました。</p><p>本編は一旦一区切りとしますが、割愛してきたことについては余裕のあるときに番外編として続きを書くかもしれません。</p><p>多くの場合、このとてもやさしいCSS設計チュートリアルの通りにコーディングしていただくだけでも、色々なデザインを保守しやすいかたちでコーディングするのに充分な内容だと思っていますが、あくまでこれらを基礎として、個々のプロジェクトに対してより適切なCSS設計へと発展させていくこともできると思います。</p><p>このとてもやさしいCSS設計チュートリアルがみなさまの一助となりましたら幸いです。</p><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;おわりに&quot;&gt;&lt;a href=&quot;#おわりに&quot; class=&quot;headerlink&quot; title=&quot;おわりに&quot;&gt;&lt;/a&gt;おわりに&lt;/h2&gt;&lt;p&gt;ここまで読んでいただき本当にありがとうございました。&lt;/p&gt;
&lt;p&gt;このとてもやさしいCSS設計チュートリアルを書くにあたっ
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第7章 2節 特定の要素だけレスポンシブにするコードからポイントを読み取ろう</title>
    <link href="https://css.nakano-pixy.com/2021/01/29/chapter-07-0002/"/>
    <id>https://css.nakano-pixy.com/2021/01/29/chapter-07-0002/</id>
    <published>2021-01-29T07:54:31.000Z</published>
    <updated>2021-02-19T08:23:34.818Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>mod-example-0001のコードを読み返しながら、特定の要素だけレスポンシブにするときのポイントについて学んでいきましょう。</p><h2 id="特定の要素だけレスポンシブにするときのポイントについて学ぼう"><a href="#特定の要素だけレスポンシブにするときのポイントについて学ぼう" class="headerlink" title="特定の要素だけレスポンシブにするときのポイントについて学ぼう"></a>特定の要素だけレスポンシブにするときのポイントについて学ぼう</h2><h3 id="概要"><a href="#概要" class="headerlink" title="概要"></a>概要</h3><p>特定の要素だけレスポンシブにするときのポイントとして、以下のようなことが挙げられます。</p><ol><li>どういう条件のときにどのような状態になるのか分かりやすいクラス名にする</li><li>レスポンシブにするだけのためのModifierクラスを作成する</li></ol><h3 id="1-どういう条件のときにどのような状態になるのか分かりやすいクラス名にする"><a href="#1-どういう条件のときにどのような状態になるのか分かりやすいクラス名にする" class="headerlink" title="1. どういう条件のときにどのような状態になるのか分かりやすいクラス名にする"></a>1. どういう条件のときにどのような状態になるのか分かりやすいクラス名にする</h3><p>前の節で作成したModifierクラスを具体例として挙げると<code>mod-example-0001--display-none-if-media-query-is-sm</code>でした。</p><p>このクラス名からは、media queryがsmの場合にdisplay: none;になることがわかりやすいと思います。</p><p>少し長いクラス名になってしまいますがあまり省略せずに、自分以外の誰が読んでもわかりやすいModifierクラス名を意識して命名すると良いと思います。</p><h3 id="2-レスポンシブにするだけのためのModifierクラスを作成する"><a href="#2-レスポンシブにするだけのためのModifierクラスを作成する" class="headerlink" title="2. レスポンシブにするだけのためのModifierクラスを作成する"></a>2. レスポンシブにするだけのためのModifierクラスを作成する</h3><p>一言で言うと、「レスポンシブにするだけのためのModifierクラスを作成する」ことがポイントです。</p><p>詳細としては、まず以下の「2つの異なる性質の条件を組み合わせている」ことに注目することで理解が深まると思います。</p><ul><li>Modifierクラスを付与することによってスタイルを適用する</li><li>media queryによってスタイルを適用する</li></ul><p>Modifierクラスで派生スタイルを作成すること、media queryでレスポンシブ対応をすること、これら一つひとつについては当たり前に使いこなせている人が多いと思いますが、この2つを組み合わせて、レスポンシブのためだけに使用するという発想を必要なときにパッと思いつくことは意外とできないことのように思います。</p><p>充分に理解して、いざというときに使えるようにしておきましょう。</p><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>この節では、特定の要素だけレスポンシブにするコードが、どのような条件の組み合わせによって実現されるのか、その要因を分解して詳細に学習しました。</p><p>とても便利な方法なので、ぜひ身につけてください。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2021/02/04/afterword/">おわりに</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;mod-example-0001のコードを読み返しながら、特定の要素だけレスポンシブにするときのポイ
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第7章 1節 Modifierクラスを利用して特定の要素だけレスポンシブにしよう</title>
    <link href="https://css.nakano-pixy.com/2021/01/29/chapter-07-0001/"/>
    <id>https://css.nakano-pixy.com/2021/01/29/chapter-07-0001/</id>
    <published>2021-01-29T05:27:15.000Z</published>
    <updated>2021-02-21T07:25:55.760Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>この節では同じモジュールを複数設置した場合に、そのうちの1つだけにModifierクラスを付与してレスポンシブ対応する方法について紹介します。</p><h2 id="通常のレスポンシブ対応コード"><a href="#通常のレスポンシブ対応コード" class="headerlink" title="通常のレスポンシブ対応コード"></a>通常のレスポンシブ対応コード</h2><h3 id="public-html-module-list-htmlの編集"><a href="#public-html-module-list-htmlの編集" class="headerlink" title="public/html/module-list.htmlの編集"></a>public/html/module-list.htmlの編集</h3><p>module-list.htmlのmod-example-0001の下に、もう1つmod-example-0001を追記して以下のようにします。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line">&lt;body&gt;</span><br><span class="line">  &lt;i class&#x3D;&quot;fas fa-cat&quot;&gt;&lt;&#x2F;i&gt;</span><br><span class="line"></span><br><span class="line">  &lt;div class&#x3D;&quot;mod-example-0001 mod-example-0001--danger&quot;&gt;</span><br><span class="line">    &lt;div class&#x3D;&quot;mod-example-0001__first-element&quot;&gt;</span><br><span class="line">      &lt;ul class&#x3D;&quot;mod-example-0001__list-group&quot;&gt;</span><br><span class="line">        &lt;li class&#x3D;&quot;mod-example-0001__list-item mod-example-0001__list-item--danger&quot;&gt;</span><br><span class="line">          サンプル</span><br><span class="line">        &lt;&#x2F;li&gt;</span><br><span class="line">        &lt;li class&#x3D;&quot;mod-example-0001__list-item&quot;&gt;</span><br><span class="line">          サンプル</span><br><span class="line">        &lt;&#x2F;li&gt;</span><br><span class="line">      &lt;&#x2F;ul&gt;</span><br><span class="line">    &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line"></span><br><span class="line">  &lt;div class&#x3D;&quot;mod-example-0001&quot;&gt;</span><br><span class="line">    &lt;div class&#x3D;&quot;mod-example-0001__first-element&quot;&gt;</span><br><span class="line">      &lt;ul class&#x3D;&quot;mod-example-0001__list-group&quot;&gt;</span><br><span class="line">        &lt;li class&#x3D;&quot;mod-example-0001__list-item&quot;&gt;</span><br><span class="line">          サンプル</span><br><span class="line">        &lt;&#x2F;li&gt;</span><br><span class="line">        &lt;li class&#x3D;&quot;mod-example-0001__list-item&quot;&gt;</span><br><span class="line">          サンプル</span><br><span class="line">        &lt;&#x2F;li&gt;</span><br><span class="line">      &lt;&#x2F;ul&gt;</span><br><span class="line">    &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line"></span><br><span class="line">  〜略〜</span><br><span class="line">&lt;&#x2F;body&gt;</span><br></pre></td></tr></table></figure><h3 id="src-scss-modules-mod-example-0001-scssの編集"><a href="#src-scss-modules-mod-example-0001-scssの編集" class="headerlink" title="src/scss/modules/_mod-example-0001.scssの編集"></a>src/scss/modules/_mod-example-0001.scssの編集</h3><p>このとき、例えば<code>src/scss/modules/_mod-example-0001.scss</code>に以下のように追記すると、windowの幅が狭まったときに2つとも非表示になります。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><span class="line">.mod-example-0001 &#123;</span><br><span class="line">  〜略〜</span><br><span class="line">  @media #&#123;$g__is-sm&#125; &#123;</span><br><span class="line">    display: none;</span><br><span class="line">  &#125;</span><br><span class="line">  〜略〜</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="一度ブラウザで確認する"><a href="#一度ブラウザで確認する" class="headerlink" title="一度ブラウザで確認する"></a>一度ブラウザで確認する</h2><p><code>public/html/module-list.html</code> をブラウザで開いて確認してみてください。</p><p>windowの幅を狭めていくと、2つとも非表示になります。</p><h2 id="片方だけをレスポンシブにするコード"><a href="#片方だけをレスポンシブにするコード" class="headerlink" title="片方だけをレスポンシブにするコード"></a>片方だけをレスポンシブにするコード</h2><h3 id="public-html-module-list-htmlの編集-1"><a href="#public-html-module-list-htmlの編集-1" class="headerlink" title="public/html/module-list.htmlの編集"></a>public/html/module-list.htmlの編集</h3><p>先ほど追記した方のモジュールに、<code>mod-example-0001--display-none-if-media-query-is-sm</code>を追記して以下のようにします。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br></pre></td><td class="code"><pre><span class="line">&lt;body&gt;</span><br><span class="line">  &lt;i class&#x3D;&quot;fas fa-cat&quot;&gt;&lt;&#x2F;i&gt;</span><br><span class="line"></span><br><span class="line">  &lt;div class&#x3D;&quot;mod-example-0001 mod-example-0001--danger&quot;&gt;</span><br><span class="line">    &lt;div class&#x3D;&quot;mod-example-0001__first-element&quot;&gt;</span><br><span class="line">      &lt;ul class&#x3D;&quot;mod-example-0001__list-group&quot;&gt;</span><br><span class="line">        &lt;li class&#x3D;&quot;mod-example-0001__list-item mod-example-0001__list-item--danger&quot;&gt;</span><br><span class="line">          サンプル</span><br><span class="line">        &lt;&#x2F;li&gt;</span><br><span class="line">        &lt;li class&#x3D;&quot;mod-example-0001__list-item&quot;&gt;</span><br><span class="line">          サンプル</span><br><span class="line">        &lt;&#x2F;li&gt;</span><br><span class="line">      &lt;&#x2F;ul&gt;</span><br><span class="line">    &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line"></span><br><span class="line">  &lt;div class&#x3D;&quot;mod-example-0001 mod-example-0001--display-none-if-media-query-is-sm&quot;&gt;</span><br><span class="line">    &lt;div class&#x3D;&quot;mod-example-0001__first-element&quot;&gt;</span><br><span class="line">      &lt;ul class&#x3D;&quot;mod-example-0001__list-group&quot;&gt;</span><br><span class="line">        &lt;li class&#x3D;&quot;mod-example-0001__list-item&quot;&gt;</span><br><span class="line">          サンプル</span><br><span class="line">        &lt;&#x2F;li&gt;</span><br><span class="line">        &lt;li class&#x3D;&quot;mod-example-0001__list-item&quot;&gt;</span><br><span class="line">          サンプル</span><br><span class="line">        &lt;&#x2F;li&gt;</span><br><span class="line">      &lt;&#x2F;ul&gt;</span><br><span class="line">    &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line"></span><br><span class="line">  〜略〜</span><br><span class="line">&lt;&#x2F;body&gt;</span><br></pre></td></tr></table></figure><h3 id="src-scss-modules-mod-example-0001-scssの編集-1"><a href="#src-scss-modules-mod-example-0001-scssの編集-1" class="headerlink" title="src/scss/modules/_mod-example-0001.scssの編集"></a>src/scss/modules/_mod-example-0001.scssの編集</h3><p>さきほど追記した箇所を以下のように書き換えます。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">.mod-example-0001 &#123;</span><br><span class="line">  〜略〜</span><br><span class="line">  &amp;.mod-example-0001--display-none-if-media-query-is-sm &#123;</span><br><span class="line">    @media #&#123;$g__is-sm&#125; &#123;</span><br><span class="line">      display: none;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">  〜略〜</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>これで、windowが狭まったときには片方だけが非表示になります。</p><h2 id="この節で編集した-mod-example-0001-scssの全容"><a href="#この節で編集した-mod-example-0001-scssの全容" class="headerlink" title="この節で編集した_mod-example-0001.scssの全容"></a>この節で編集した_mod-example-0001.scssの全容</h2><p>_mod-example-0001.scssは以下のようになりました。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line">.mod-example-0001 &#123;</span><br><span class="line">  padding: 12px 24px;</span><br><span class="line">  background: #eeeeee;</span><br><span class="line">  border: 1px solid #cccccc;</span><br><span class="line">  font-size: 16px;</span><br><span class="line">  &amp;.mod-example-0001--display-none-if-media-query-is-sm &#123;</span><br><span class="line">    @media #&#123;$g__is-sm&#125; &#123;</span><br><span class="line">      display: none;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">  &amp;.mod-example-0001--danger &#123;</span><br><span class="line">    background: #ffeeee;</span><br><span class="line">    border: 1px solid #cc3333;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-example-0001__first-element &#123;</span><br><span class="line">    padding: 6px;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-example-0001__list-group &#123;</span><br><span class="line">    list-style: disc;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-example-0001__list-item &#123;</span><br><span class="line">    color: #222222;</span><br><span class="line">    &amp;.mod-example-0001__list-item--danger &#123;</span><br><span class="line">      color: #cc3333;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="表示確認"><a href="#表示確認" class="headerlink" title="表示確認"></a>表示確認</h2><p><code>public/html/module-list.html</code> をブラウザで開いて確認してみてください。</p><p>さきほど開いた状態でそのままの場合は、_mod-example-0001.scssを編集したあとで、CSSを再読み込みするためにブラウザを忘れずにリロードしてください。</p><p>windowの幅を狭めていくと、片方だけが非表示になります。</p><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>今回は要素を非表示にする例で説明をしましたが、同様の方法を利用して色々なプロパティを制御することが可能です。</p><p>次の節ではこのコードについてポイントの解説をしていきます。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2021/01/29/chapter-07-0002/">第7章 2節 特定の要素だけレスポンシブにするコードからポイントを読み取ろう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;この節では同じモジュールを複数設置した場合に、そのうちの1つだけにModifierクラスを付与してレ
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第7章 概要 レスポンシブなページの作成で使えるテクニックを学ぼう</title>
    <link href="https://css.nakano-pixy.com/2021/01/29/chapter-07-summary/"/>
    <id>https://css.nakano-pixy.com/2021/01/29/chapter-07-summary/</id>
    <published>2021-01-28T16:54:53.000Z</published>
    <updated>2021-02-04T13:14:10.179Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この章について"><a href="#この章について" class="headerlink" title="この章について"></a>この章について</h2><p>レスポンシブなWebページの作成をする機会は非常に多いと思いますが、意外と気付かない人も多い便利なテクニックについて紹介していきます。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2021/01/29/chapter-07-0001/">第7章 1節 Modifierクラスを利用して特定の要素だけレスポンシブにしよう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この章について&quot;&gt;&lt;a href=&quot;#この章について&quot; class=&quot;headerlink&quot; title=&quot;この章について&quot;&gt;&lt;/a&gt;この章について&lt;/h2&gt;&lt;p&gt;レスポンシブなWebページの作成をする機会は非常に多いと思いますが、意外と気付かない人も多い便利なテ
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第6章 まとめ</title>
    <link href="https://css.nakano-pixy.com/2021/01/28/chapter-06-digest/"/>
    <id>https://css.nakano-pixy.com/2021/01/28/chapter-06-digest/</id>
    <published>2021-01-28T14:45:35.000Z</published>
    <updated>2021-02-19T08:23:34.818Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>第6章では、第2章と第3章で学習してきたmarginの制御方法について復習をしてきました。</p><p>第6章自体がmarginについてのまとめなので、この節はまとめのまとめということになってしまいますが、第6章で復習した事柄について整理していこうと思います。</p><h2 id="後で困らないようにmarginを設定するためのポイント"><a href="#後で困らないようにmarginを設定するためのポイント" class="headerlink" title="後で困らないようにmarginを設定するためのポイント"></a>後で困らないようにmarginを設定するためのポイント</h2><p>marginについてのポイントが第2章と第3章に散らばっていたので、「<a href="/2020/11/13/chapter-06-0001/">第6章 1節 marginを制御する方法について復習しよう</a>」でまとめました。</p><p>基本的にBlockクラス(=モジュール)にはmarginを設定せず、設定する場合は隣接兄弟要素セレクタ、first-child、last-child、not(:first-child)などの条件付きでmarginを設定すると後で邪魔にならないようにできます。</p><p>また、余白を設定または変更したくなる理由が、「隣接兄弟要素が変化した」「first-childが変化した」「last-childが変化した」「なんらかの要素と隣接している(first-childでない)」などの場合は、それらに対応するセレクタを意識して使用すると余白の管理がしやすくなると思います。</p><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>marginについて「<a href="/2020/11/13/chapter-06-0001/">第6章 1節 marginを制御する方法について復習しよう</a>」にまとめた内容を、ご自身にとって思い出しやすい表現に変えて、すぐに確認できる場所に書き出しておいてから、実際にコーディングをするときにそれらのポイントを確認しながらコーディングしていくと良いかもしれません。</p><p>動的に表示要素が変化するWebサイトの制作や運用をするにあたっては、第6章の練習問題で行った内容が参考になると思いますので、動的なWebサイトの制作や運用に携わる予定のある方は理解しておくと良いと思います。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2021/01/29/chapter-07-summary/">第7章 概要 レスポンシブなページの作成で使えるテクニックを学ぼう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;第6章では、第2章と第3章で学習してきたmarginの制御方法について復習をしてきました。&lt;/p&gt;

      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第4章 7節 レイアウトのクラスの総合的な特徴や役割について学ぼう</title>
    <link href="https://css.nakano-pixy.com/2020/12/18/chapter-04-0007/"/>
    <id>https://css.nakano-pixy.com/2020/12/18/chapter-04-0007/</id>
    <published>2020-12-18T09:26:07.000Z</published>
    <updated>2020-12-18T15:50:21.829Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>これまで、モジュールのクラスとレイアウトのクラスを作成してきましたが、接頭辞が違うことを除けば作り方は同じでした。</p><p>作り方は同じですが、この「とてもやさしいCSS設計」では、レイアウトのクラスの特徴や役割を明確に定義しモジュールと区別しています。</p><p>モジュールのクラスとレイアウトのクラスとの違いを明確に言語化して定義できていない場合、それらのカテゴリを分ける意味がなく、チームでの制作どころか、自分一人で行っている制作においてさえ、新しく定義するクラスをどちらのカテゴリに分類するべきなのかわからなくなって、ただ混乱を生む要因となってしまいます。</p><p>既にl-body-inner-0001とl-contents-type-0001のそれぞれの命名規則や役割については説明してきましたが、この節では、それら2つを合わせた場合、つまりレイアウトのクラスの特徴や役割について総合的に学習し、モジュールとレイアウトの違いを明確に言語化できるようにしていきましょう。</p><h2 id="新しいポイントについて学ぼう"><a href="#新しいポイントについて学ぼう" class="headerlink" title="新しいポイントについて学ぼう"></a>新しいポイントについて学ぼう</h2><h3 id="概要"><a href="#概要" class="headerlink" title="概要"></a>概要</h3><p>この「とてもやさしいCSS設計」における、レイアウトのクラスの特徴や役割を以下に挙げた3つの項目に分けて学んでいきましょう。</p><ol><li>レイアウトのBlockクラス名はl-body-inner-から始まるものとl-contents-type-から始まるものだけとする</li><li>必ずbodyタグ、l-body-inner-xxxx、l-contents-type-xxxxの順に入れ子にしてページの外郭を構成する</li><li>l-body-inner-xxxxのBlockクラス、l-contents-type-xxxxのBlockクラスは各ページでそれぞれ一度だけ必ず使用する</li></ol><h3 id="1-レイアウトのクラス名はl-body-inner-から始まるものとl-contents-type-から始まるものだけとする"><a href="#1-レイアウトのクラス名はl-body-inner-から始まるものとl-contents-type-から始まるものだけとする" class="headerlink" title="1. レイアウトのクラス名はl-body-inner-から始まるものとl-contents-type-から始まるものだけとする"></a>1. レイアウトのクラス名はl-body-inner-から始まるものとl-contents-type-から始まるものだけとする</h3><p>レイアウトのクラス名は、l-body-inner-から始まるものとl-contents-type-から始まるものだけに限定しています。</p><p>これまで作成してきたものから具体例を挙げると以下のクラスがあります。</p><ul><li><code>l-body-inner-0001</code>と、そのElementクラス</li><li><code>l-contents-type-0001</code>と、そのElementクラス</li></ul><h3 id="2-必ずbodyタグ、l-body-inner-xxxx、l-contents-type-xxxxの順に入れ子にしてページの外郭を構成する"><a href="#2-必ずbodyタグ、l-body-inner-xxxx、l-contents-type-xxxxの順に入れ子にしてページの外郭を構成する" class="headerlink" title="2. 必ずbodyタグ、l-body-inner-xxxx、l-contents-type-xxxxの順に入れ子にしてページの外郭を構成する"></a>2. 必ずbodyタグ、l-body-inner-xxxx、l-contents-type-xxxxの順に入れ子にしてページの外郭を構成する</h3><p>必ずbodyタグ、l-body-inner-xxxx、l-contents-type-xxxxの順に入れ子にしてページの外郭を構成し、その中のどこかにh1タグを設置します。<br>つまり、l-body-inner-xxxxとl-contents-type-xxxxを合わせたものがh1セクションであり、第4章ではh1セクションまでを作成したことになります。</p><p>blog-service-top.htmlのソースコードを読み返すと、bodyタグ、l-body-inner-0001、l-contents-type-0001の順に入れ子になっていることがわかります。</p><h2 id="3-l-body-inner-xxxxのBlockクラス、l-contents-type-xxxxのBlockクラスは各ページでそれぞれ一度だけ必ず使用する"><a href="#3-l-body-inner-xxxxのBlockクラス、l-contents-type-xxxxのBlockクラスは各ページでそれぞれ一度だけ必ず使用する" class="headerlink" title="3. l-body-inner-xxxxのBlockクラス、l-contents-type-xxxxのBlockクラスは各ページでそれぞれ一度だけ必ず使用する"></a>3. l-body-inner-xxxxのBlockクラス、l-contents-type-xxxxのBlockクラスは各ページでそれぞれ一度だけ必ず使用する</h2><p>l-body-inner-xxxxのBlockクラス、l-contents-type-xxxxのBlockクラスは各ページでそれぞれ一度だけ必ず使用するようにしてください。</p><p>一度だけというのは、あくまでもBlockクラスだけの話なので、Elementクラスは以下のように複数回使用されることがあります。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">〜略〜</span><br><span class="line">&lt;div class&#x3D;&quot;l-contents-type-xxxx&quot;&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-contents-type-xxxx__element&quot;&gt;</span><br><span class="line">    コンテンツ</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-contents-type-xxxx__element&quot;&gt;</span><br><span class="line">    コンテンツ</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;div&gt;</span><br><span class="line">〜略〜</span><br></pre></td></tr></table></figure><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>レイアウトのクラスについて、一言でその役割を表すと「ページの外枠」です。<br>別の言い方をすると「h1セクション」であるとも言えます。</p><p>ページの外枠を正確に作成することでページ全体の作成がとても楽になるので「レイアウトのクラスの特徴や役割」をしっかりと学習して、実践できるようにしていってください。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/12/15/chapter-04-digest/">第4章 まとめ</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;これまで、モジュールのクラスとレイアウトのクラスを作成してきましたが、接頭辞が違うことを除けば作り方
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第4章 2節 ブログサービスのトップページを作るために準備したファイルのコードからポイントを読み取ろう</title>
    <link href="https://css.nakano-pixy.com/2020/12/18/chapter-04-0002/"/>
    <id>https://css.nakano-pixy.com/2020/12/18/chapter-04-0002/</id>
    <published>2020-12-17T16:11:10.000Z</published>
    <updated>2021-02-06T09:38:54.770Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>前の節で作成したコードを読み返しながら、新しいポイントについて学んでいきましょう。</p><h2 id="前の節で作成したコードを読み返しながら新しいポイントについて学ぼう"><a href="#前の節で作成したコードを読み返しながら新しいポイントについて学ぼう" class="headerlink" title="前の節で作成したコードを読み返しながら新しいポイントについて学ぼう"></a>前の節で作成したコードを読み返しながら新しいポイントについて学ぼう</h2><h3 id="概要"><a href="#概要" class="headerlink" title="概要"></a>概要</h3><p>前の節で作成したコードを元に説明する新しいポイントとして以下のようなことが挙げられます。</p><ol><li>エントリーポイントをページごとに分けて必要なファイルだけをimportする</li></ol><h3 id="1-エントリーポイントをページごとに分けて必要なファイルだけをimportする"><a href="#1-エントリーポイントをページごとに分けて必要なファイルだけをimportする" class="headerlink" title="1. エントリーポイントをページごとに分けて必要なファイルだけをimportする"></a>1. エントリーポイントをページごとに分けて必要なファイルだけをimportする</h3><p>エントリーポイントとは、一番親となっているSCSSファイルのことです。</p><p>このとてもやさしいCSS設計チュートリアルのエントリーポイントは、これまでmodule-list.scssだけでしたが、新たにblog-service-top.scssを作成しました。</p><p>Webサイトの制作をするとき、サイト全体のページ数やモジュール数が少なくそれ以上増えないことが予めわかっているサイトの場合は、module-list.scssのようにワイルドカード( <code>*</code> )で全てのモジュールをimportして、全てのページでmodule-list.cssを共通して使用し続けていく運用方法でも問題はありませんが、このチュートリアルではサイトの運用に伴ってページ数やモジュールが増えていく場合を想定して、ページごとにcssファイルを分ける方法を選択し、以下のように必要なモジュールだけをimportします。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">&#x2F;&#x2F; base</span><br><span class="line">@import &quot;.&#x2F;base&#x2F;global-variables&#x2F;media-queries&#x2F;media-queries.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;base&#x2F;default.scss&quot;;</span><br><span class="line"></span><br><span class="line">&#x2F;&#x2F; modules</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-button-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-container-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-footer-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-header-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-heading-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-media-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-media-0002.scss&quot;;</span><br></pre></td></tr></table></figure><p>特にサーバーサイドのプログラムによって動的に要素を出し分けているサイトでは、後からCSSファイルをページごとに分けていくのは大変なので、ページを新規に作成するときにSCSSのエントリーポイントも新規に作成することをとてもやさしいCSS設計チュートリアルでは推奨しています。</p><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>この節では、「エントリーポイントをページごとに分けて必要なファイルだけをimportする」ことについて新たに学習しました。</p><p>少し手間に感じるとは思いますが、後でCSSファイルを分割していくよりも最終的な手間としては少なく、ページの表示にかかる時間の面でも各ページ安定的に短く保てますので、ぜひ「エントリーポイントをページごとに分けて必要なファイルだけをimportする」方法を採用してみてください。</p><p>次の節では、bodyタグの中に設置する1つめのレイアウトのクラスを作成していきます。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/12/15/chapter-04-0003/">第4章 3節 l-body-inner-0001を作ろう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;前の節で作成したコードを読み返しながら、新しいポイントについて学んでいきましょう。&lt;/p&gt;
&lt;h2 
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第4章 まとめ</title>
    <link href="https://css.nakano-pixy.com/2020/12/15/chapter-04-digest/"/>
    <id>https://css.nakano-pixy.com/2020/12/15/chapter-04-digest/</id>
    <published>2020-12-15T14:06:14.000Z</published>
    <updated>2021-02-06T09:38:54.771Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>この節では第4章でやってきたことを振り返り、要点をまとめます。</p><h2 id="ブログサービスのトップページを作るための準備で学んだポイントを振り返ろう"><a href="#ブログサービスのトップページを作るための準備で学んだポイントを振り返ろう" class="headerlink" title="ブログサービスのトップページを作るための準備で学んだポイントを振り返ろう"></a>ブログサービスのトップページを作るための準備で学んだポイントを振り返ろう</h2><p>ページを作るための準備作業を通して、以下の項目を新たなポイントとして挙げました。</p><ul><li>エントリーポイントをページごとに分けて必要なファイルだけをimportする</li></ul><h2 id="l-body-inner-0001の作成で学んだポイントを振り返ろう"><a href="#l-body-inner-0001の作成で学んだポイントを振り返ろう" class="headerlink" title="l-body-inner-0001の作成で学んだポイントを振り返ろう"></a>l-body-inner-0001の作成で学んだポイントを振り返ろう</h2><p>l-body-inner-0001の作成では、以下の項目を新たなポイントとして挙げました。</p><ul><li>bodyタグの中に最初に設置するBlockクラス名は必ずl-body-inner-から始まるクラス名にする</li><li>l-body-inner-xxxxの役割を理解する</li></ul><h2 id="l-contents-type-0001の作成で学んだポイントを振り返ろう"><a href="#l-contents-type-0001の作成で学んだポイントを振り返ろう" class="headerlink" title="l-contents-type-0001の作成で学んだポイントを振り返ろう"></a>l-contents-type-0001の作成で学んだポイントを振り返ろう</h2><p>l-contents-type-0001の作成では、以下の項目を新たなポイントとして挙げました。</p><ul><li>コンテンツ領域のBlockクラス名は必ずl-contents-type-から始まるクラス名にする</li><li>l-contents-type-xxxxの役割を理解する</li></ul><h2 id="レイアウトのクラスの総合的な特徴や役割について振り返ろう"><a href="#レイアウトのクラスの総合的な特徴や役割について振り返ろう" class="headerlink" title="レイアウトのクラスの総合的な特徴や役割について振り返ろう"></a>レイアウトのクラスの総合的な特徴や役割について振り返ろう</h2><p>レイアウトのクラスの特徴や役割について、以下の項目を新たなポイントとして挙げました。</p><ul><li>レイアウトのBlockクラス名はl-body-inner-から始まるものとl-contents-type-から始まるものだけとする</li><li>必ずbodyタグ、l-body-inner-xxxx、l-contents-type-xxxxの順に入れ子にしてページの外郭を構成する</li><li>l-body-inner-xxxxのBlockクラス、l-contents-type-xxxxのBlockクラスは各ページでそれぞれ一度だけ必ず使用する</li></ul><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>箇条書きにしたこれらのポイントを見ただけで、どのような内容だったか思い出せますか？<br>ご自身にとって思い出しやすい表現に変えて、すぐに確認できる場所に書き出しておいてから、実際にコーディングをするときにそれらのポイントを確認しながらコーディングしていくと良いかもしれません。</p><p>レイアウトのクラスの役割をしっかりと理解して、モジュールのクラスと明確に使い分けられるようにすることは非常に重要なので、しっかりと身につけていってください。</p><p>次の章では、モジュールを設置してページを完成させます。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/11/05/chapter-05-summary/">第5章 概要 モジュールを設置してブログサービスのトップページを完成させよう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;この節では第4章でやってきたことを振り返り、要点をまとめます。&lt;/p&gt;
&lt;h2 id=&quot;ブログサービ
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第4章 6節 l-contents-type-0001のコードからポイントを読み取ろう</title>
    <link href="https://css.nakano-pixy.com/2020/12/15/chapter-04-0006/"/>
    <id>https://css.nakano-pixy.com/2020/12/15/chapter-04-0006/</id>
    <published>2020-12-15T14:02:04.000Z</published>
    <updated>2021-02-06T09:38:54.770Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>l-contents-type-0001のコードを読み返しながら、新しいポイントについて学んでいきましょう。</p><h2 id="l-contents-type-0001のコードを読み返しながら新しいポイントについて学ぼう"><a href="#l-contents-type-0001のコードを読み返しながら新しいポイントについて学ぼう" class="headerlink" title="l-contents-type-0001のコードを読み返しながら新しいポイントについて学ぼう"></a>l-contents-type-0001のコードを読み返しながら新しいポイントについて学ぼう</h2><h3 id="概要"><a href="#概要" class="headerlink" title="概要"></a>概要</h3><p>l-contents-type-0001のコードを元に説明する新しいポイントとして以下のようなことが挙げられます。</p><ol><li>コンテンツ領域のBlockクラス名は必ずl-contents-type-から始まるクラス名にする</li><li>l-contents-type-xxxxの役割を理解する</li></ol><h3 id="1-コンテンツ領域のBlockクラス名は必ずl-contents-type-から始まるクラス名にする"><a href="#1-コンテンツ領域のBlockクラス名は必ずl-contents-type-から始まるクラス名にする" class="headerlink" title="1. コンテンツ領域のBlockクラス名は必ずl-contents-type-から始まるクラス名にする"></a>1. コンテンツ領域のBlockクラス名は必ずl-contents-type-から始まるクラス名にする</h3><p>「とてもやさしいCSS設計」では、コンテンツ領域の外枠となるBlockクラス名は必ずl-contents-type-から始まるクラス名にすることを厳格に定めています。<br>コンテンツ領域のBlockクラス名のルールを厳格に定めることで、クラスの命名に迷うことを減らし、本質的なスタイル設定に集中できます。</p><p>例えば以下のようなBlockクラス名を付けることができます。</p><ul><li>l-contents-type-0001</li><li>l-contents-type-example-name</li></ul><p>l-contents-type-から始まるBlockクラス名であれば、後に続く文字列は数字でも複数の単語でも、任意の文字列で構いません。</p><p>Elementクラス名は、BEMの命名規則に則って任意の名前を付けてください。<br>前の節で作成したElementクラスを具体例として挙げると以下のようなものがありました。</p><ul><li>l-contents-type-0001__heading-wrapper</li><li>l-contents-type-0001__body</li></ul><p>l-contents-type-0001ではModifierクラスを定義しませんでしたが、BEMの命名規則に則ってModifierクラスを定義することもできます。</p><h3 id="2-l-contents-type-xxxxの役割を理解する"><a href="#2-l-contents-type-xxxxの役割を理解する" class="headerlink" title="2. l-contents-type-xxxxの役割を理解する"></a>2. l-contents-type-xxxxの役割を理解する</h3><p>l-contents-type-xxxxとしていますが、さきほど説明したようにxxxxの部分はどのような文字列でも構いません。</p><p>l-contents-type-xxxxはコンテンツ領域の外枠となるBlockクラスであり、以下の役割を担います。</p><p>4-1. l-body-inner-xxxxで分割したうちの、コンテンツ領域内に水平線を引くようにしてさらにいくつかの領域に分割する<br>4-2. 各領域をセンタリングするかしないか、センタリングする場合はセンタリングされる領域の幅を決定する<br>4-3. 各領域ごとにカラム数を決定する<br>4-4. 複数カラムの領域についてはカラムごとの幅を決定する</p><p>具体例を挙げると、l-contents-type-0001では以下のことを行っています。</p><ul><li>h1見出しを設置する領域とcontainerを設置する領域に分割</li><li>h1見出しを設置する領域もcontainerを設置する領域も「1200pxの幅でセンタリング」</li><li>h1見出しを設置する領域もcontainerを設置する領域も「1カラム」</li><li>いずれも1カラムなのでセンタリングされた幅と等しい</li></ul><p>デザインによっては、とても多くの水平線で領域を分割をすることになったり、領域ごとに異なる幅でセンタリングしたり、水平線で分割した領域内をカラム分けすることになったりと、非常に多くのことをl-contents-type-xxxxクラスで行うことになりますが、上述した4-1から4-4を一つずつ確認しながら落ち着いて進めていけば、簡単に分けられると思います。</p><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>この節では、l-contents-type-xxxxの命名規則や役割について新たに学習しました。</p><p>次の節では第4章のまとめをし、l-body-inner-xxxxとl-contents-type-xxxxを合わせて考えながら、新たなポイントについても学習していきましょう。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/12/18/chapter-04-0007/">第4章 7節 レイアウトのクラスの総合的な特徴や役割について学ぼう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;l-contents-type-0001のコードを読み返しながら、新しいポイントについて学んでいきま
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第4章 5節 l-contents-type-0001を作ろう</title>
    <link href="https://css.nakano-pixy.com/2020/12/15/chapter-04-0005/"/>
    <id>https://css.nakano-pixy.com/2020/12/15/chapter-04-0005/</id>
    <published>2020-12-15T13:58:20.000Z</published>
    <updated>2021-02-06T09:38:54.770Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>この節では、コンテンツ領域の枠であるl-contents-type-0001を作成します。<br>今回もModifierクラスは無く、Elementクラスがあるだけです。</p><p>今回も基本に忠実に、BlockクラスとElementクラスで、コンテンツ領域内のレイアウトを作成していきましょう。</p><h2 id="Block名を決める"><a href="#Block名を決める" class="headerlink" title="Block名を決める"></a>Block名を決める</h2><p>今回のBlock名は <code>l-contents-type-0001</code> にします。</p><h2 id="scssファイルの作成"><a href="#scssファイルの作成" class="headerlink" title="scssファイルの作成"></a>scssファイルの作成</h2><p>ファイル名の命名規則は <code>_Block名.scss</code> です。</p><p>先ほど決めたBlock名の先頭にアンダースコア（_）を足したものがファイル名になりますので <code>src/scss/layouts/_l-contents-type-0001.scss</code> を作成します。</p><h2 id="src-scss-blog-service-top-scssの編集"><a href="#src-scss-blog-service-top-scssの編集" class="headerlink" title="src/scss/blog-service-top.scssの編集"></a>src/scss/blog-service-top.scssの編集</h2><p>src/scss/blog-service-top.scssに <code>@import &quot;./layouts/l-contents-type-0001.scss&quot;;</code> を追記します。</p><p>追記するとsrc/scss/blog-service-top.scssの全容は以下のようになります。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">&#x2F;&#x2F; base</span><br><span class="line">@import &quot;.&#x2F;base&#x2F;global-variables&#x2F;media-queries&#x2F;media-queries.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;base&#x2F;default.scss&quot;;</span><br><span class="line"></span><br><span class="line">&#x2F;&#x2F; layouts</span><br><span class="line">@import &quot;.&#x2F;layouts&#x2F;l-body-inner-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;layouts&#x2F;l-contents-type-0001.scss&quot;;</span><br><span class="line"></span><br><span class="line">&#x2F;&#x2F; modules</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-button-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-container-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-footer-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-header-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-heading-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-media-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-media-0002.scss&quot;;</span><br></pre></td></tr></table></figure><h2 id="blog-service-top-htmlの編集"><a href="#blog-service-top-htmlの編集" class="headerlink" title="blog-service-top.htmlの編集"></a>blog-service-top.htmlの編集</h2><p>blog-service-top.htmlの <code>&lt;div class=&quot;l-body-inner-0001__contents-wrapper&quot;&gt;</code> の中に以下のように記述します。<br>前後のコードは略して、追記するコードだけを記載しています。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">〜略〜</span><br><span class="line">&lt;div class&#x3D;&quot;l-contents-type-0001&quot;&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-contents-type-0001__heading-wrapper&quot;&gt;</span><br><span class="line">    ここにheadingモジュールが入ります。</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-contents-type-0001__body&quot;&gt;</span><br><span class="line">    ここにcontainerモジュールが入ります。</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;div&gt;</span><br><span class="line">〜略〜</span><br></pre></td></tr></table></figure><h2 id="l-contents-type-0001-scssの編集"><a href="#l-contents-type-0001-scssの編集" class="headerlink" title="_l-contents-type-0001.scssの編集"></a>_l-contents-type-0001.scssの編集</h2><p><code>src/scss/layouts/_l-contents-type-0001.scss</code> に以下のように記述します。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br></pre></td><td class="code"><pre><span class="line">.l-contents-type-0001 &#123;</span><br><span class="line">  padding: 1px 8px;</span><br><span class="line">  &#x2F;&#x2F; .l-contents-type-0001のpadding-topを補完する初期値</span><br><span class="line">  &gt; :first-child &#123;</span><br><span class="line">    margin-top: 39px;</span><br><span class="line">  &#125;</span><br><span class="line">  &#x2F;&#x2F; .l-contents-type-0001のpadding-bottomを補完する初期値</span><br><span class="line">  &gt; :last-child &#123;</span><br><span class="line">    margin-bottom: 79px;</span><br><span class="line">  &#125;</span><br><span class="line">  .l-contents-type-0001__heading-wrapper &#123;</span><br><span class="line">    width: 1200px;</span><br><span class="line">    margin-right: auto;</span><br><span class="line">    margin-left: auto;</span><br><span class="line">    padding: 0 8px;</span><br><span class="line">    box-sizing: border-box;</span><br><span class="line">    @media #&#123;$g__is-lg&#125; &#123;</span><br><span class="line">      width: 100%;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">  .l-contents-type-0001__body &#123;</span><br><span class="line">    width: 1200px;</span><br><span class="line">    margin-top: 32px;</span><br><span class="line">    margin-right: auto;</span><br><span class="line">    margin-left: auto;</span><br><span class="line">    padding: 0 8px;</span><br><span class="line">    box-sizing: border-box;</span><br><span class="line">    @media #&#123;$g__is-lg&#125; &#123;</span><br><span class="line">      width: 100%;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="h1見出しを設置する"><a href="#h1見出しを設置する" class="headerlink" title="h1見出しを設置する"></a>h1見出しを設置する</h2><p>h1見出しを設置していきます。</p><p>module-list.htmlに予め作成しておいた <code>&lt;h1 class=&quot;mod-heading-0001 mod-heading-0001--lv-1&quot;&gt;見出し lv1&lt;/h1&gt;</code> をコピーして、blog-service-top.htmlの <code>ここにheadingモジュールが入ります。</code> と書いてある箇所にペーストした後、文言を <code>ブログサービストップ</code> にします。</p><h2 id="この段階でのblog-service-top-htmlの全容"><a href="#この段階でのblog-service-top-htmlの全容" class="headerlink" title="この段階でのblog-service-top.htmlの全容"></a>この段階でのblog-service-top.htmlの全容</h2><p>blog-service-top.htmlは以下のようになりました。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br></pre></td><td class="code"><pre><span class="line">&lt;!DOCTYPE html&gt;</span><br><span class="line">&lt;html&gt;</span><br><span class="line">&lt;head&gt;</span><br><span class="line">  &lt;meta http-equiv&#x3D;&quot;X-UA-Compatible&quot; content&#x3D;&quot;IE&#x3D;edge&quot;&gt;</span><br><span class="line">  &lt;title&gt;中野ピク氏流CSS設計&lt;&#x2F;title&gt;</span><br><span class="line">  &lt;meta charset&#x3D;&quot;utf-8&quot;&gt;</span><br><span class="line">  &lt;meta name&#x3D;&quot;viewport&quot; content&#x3D;&quot;width&#x3D;device-width, initial-scale&#x3D;1&quot;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;..&#x2F;stylesheets&#x2F;html5reset-1.6.1.css&quot;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;https:&#x2F;&#x2F;pro.fontawesome.com&#x2F;releases&#x2F;v5.10.0&#x2F;css&#x2F;all.css&quot; integrity&#x3D;&quot;sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p&quot; crossorigin&#x3D;&quot;anonymous&quot; &#x2F;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;..&#x2F;stylesheets&#x2F;blog-service-top.css&quot;&gt;</span><br><span class="line">&lt;&#x2F;head&gt;</span><br><span class="line">&lt;body&gt;</span><br><span class="line">&lt;div class&#x3D;&quot;l-body-inner-0001&quot;&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__header-wrapper&quot;&gt;</span><br><span class="line">    &lt;header class&#x3D;&quot;mod-header-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;mod-header-0001__inner&quot;&gt;</span><br><span class="line">        &lt;div class&#x3D;&quot;mod-header-0001__logo-area&quot;&gt;</span><br><span class="line">          &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-header-0001__logo&quot;&gt;</span><br><span class="line">            ロゴ</span><br><span class="line">          &lt;&#x2F;a&gt;</span><br><span class="line">        &lt;&#x2F;div&gt;</span><br><span class="line">        &lt;ul class&#x3D;&quot;mod-header-0001__button-group&quot;&gt;</span><br><span class="line">          &lt;li class&#x3D;&quot;mod-header-0001__login-button-wrapper&quot;&gt;</span><br><span class="line">            &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-button-0001 mod-button-0001--size-sm&quot;&gt;ログイン&lt;&#x2F;a&gt;</span><br><span class="line">          &lt;&#x2F;li&gt;</span><br><span class="line">          &lt;li class&#x3D;&quot;mod-header-0001__sign-up-button-wrapper&quot;&gt;</span><br><span class="line">            &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-button-0001 mod-button-0001--size-sm mod-button-0001--secondary&quot;&gt;新規登録&lt;&#x2F;a&gt;</span><br><span class="line">          &lt;&#x2F;li&gt;</span><br><span class="line">        &lt;&#x2F;ul&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;header&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__contents-wrapper&quot;&gt;</span><br><span class="line">    &lt;div class&#x3D;&quot;l-contents-type-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;l-contents-type-0001__heading-wrapper&quot;&gt;</span><br><span class="line">        &lt;h1 class&#x3D;&quot;mod-heading-0001 mod-heading-0001--lv-1&quot;&gt;ブログサービストップ&lt;&#x2F;h1&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;l-contents-type-0001__body&quot;&gt;</span><br><span class="line">        ここにcontainerモジュールが入ります。</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__footer-wrapper&quot;&gt;</span><br><span class="line">    &lt;footer class&#x3D;&quot;mod-footer-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;mod-footer-0001__copy-area&quot;&gt;</span><br><span class="line">        &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-footer-0001__copy&quot;&gt;</span><br><span class="line">          &amp;copy;中野ピク氏</span><br><span class="line">        &lt;&#x2F;a&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;footer&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;body&gt;</span><br><span class="line">&lt;&#x2F;html&gt;</span><br></pre></td></tr></table></figure><h2 id="表示確認"><a href="#表示確認" class="headerlink" title="表示確認"></a>表示確認</h2><p><code>public/html/blog-service-top.html</code> をブラウザで開いて確認してみてください。</p><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>この節では、l-contents-type-0001クラスとHTML文書構造を作成して、その中にh1見出しを設置することで、h1セクションができました。</p><p>次の節ではこのコードを読み返しながら、l-contents-type-0001の役割や特徴などについて解説していきます。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/12/15/chapter-04-0006/">第4章 6節 l-contents-type-0001のコードからポイントを読み取ろう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;この節では、コンテンツ領域の枠であるl-contents-type-0001を作成します。&lt;br&gt;今
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第4章 4節 l-body-inner-0001のコードからポイントを読み取ろう</title>
    <link href="https://css.nakano-pixy.com/2020/12/15/chapter-04-0004/"/>
    <id>https://css.nakano-pixy.com/2020/12/15/chapter-04-0004/</id>
    <published>2020-12-15T13:54:05.000Z</published>
    <updated>2021-02-06T09:38:54.770Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>l-body-inner-0001のコードを読み返しながら、新しいポイントについて学んでいきましょう。</p><h2 id="l-body-inner-0001のコードを読み返しながら新しいポイントについて学ぼう"><a href="#l-body-inner-0001のコードを読み返しながら新しいポイントについて学ぼう" class="headerlink" title="l-body-inner-0001のコードを読み返しながら新しいポイントについて学ぼう"></a>l-body-inner-0001のコードを読み返しながら新しいポイントについて学ぼう</h2><h3 id="概要"><a href="#概要" class="headerlink" title="概要"></a>概要</h3><p>l-body-inner-0001のコードを元に説明する新しいポイントとして以下のようなことが挙げられます。</p><ol><li>bodyタグの中に最初に設置するBlockクラス名は必ずl-body-inner-から始まるクラス名にする</li><li>l-body-inner-xxxxの役割を理解する</li></ol><h3 id="1-bodyタグの中に最初に設置するBlockクラス名は必ずl-body-inner-から始まるクラス名にする"><a href="#1-bodyタグの中に最初に設置するBlockクラス名は必ずl-body-inner-から始まるクラス名にする" class="headerlink" title="1. bodyタグの中に最初に設置するBlockクラス名は必ずl-body-inner-から始まるクラス名にする"></a>1. bodyタグの中に最初に設置するBlockクラス名は必ずl-body-inner-から始まるクラス名にする</h3><p>「とてもやさしいCSS設計」では、bodyタグの中に最初に設置するBlockクラス名は必ずl-body-inner-から始まるクラス名にすることを厳格に定めています。<br>最初に設置するBlockクラス名のルールを厳格に定めることで、クラスの命名に迷うことを減らし、本質的なスタイル設定に集中できます。</p><p>例えば以下のようなBlockクラス名を付けることができます。</p><ul><li>l-body-inner-0001</li><li>l-body-inner-example-name</li></ul><p>l-body-inner-から始まるBlockクラス名であれば、後に続く文字列は数字でも複数の単語でも、任意の文字列で構いません。</p><p>Elementクラス名は、BEMの命名規則に則って任意の名前を付けてください。<br>前の節で作成したElementクラスを具体例として挙げると以下のようなものがありました。</p><ul><li>l-body-inner-0001__header-wrapper</li><li>l-body-inner-0001__contents-wrapper</li><li>l-body-inner-0001__footer-wrapper</li></ul><p>l-body-inner-0001ではModifierクラスを定義しませんでしたが、BEMの命名規則に則ってModifierクラスを定義することもできます。</p><h3 id="2-l-body-inner-xxxxの役割を理解する"><a href="#2-l-body-inner-xxxxの役割を理解する" class="headerlink" title="2. l-body-inner-xxxxの役割を理解する"></a>2. l-body-inner-xxxxの役割を理解する</h3><p>l-body-inner-xxxxとしていますが、さきほど説明したようにxxxxの部分はどのような文字列でも構いません。</p><p>l-body-inner-xxxxはbodyタグの中に最初に設置するBlockクラスであり、そのElementクラスでページに水平線を引くようにして、いくつかの領域に分割する役割を担います。<br>また、基本的に全てのページで共通利用できるところまでをl-body-inner-xxxxで作成すると考えてください。</p><p>具体例として、前の節で作成したl-body-inner-0001では以下の3つの領域に分割していることがわかります。</p><ul><li>ヘッダー領域</li><li>コンテンツ領域</li><li>フッター領域</li></ul><p>ヘッダー領域とフッター領域には、予め作成しておいたmod-header-0001とmod-footer-0001を設置しました。<br>モジュール同士を入れ子にしていたときと同じく、これらのモジュールのスタイルには手を加えず、ただ置くだけで済んでいます。</p><p>デザインによっては4つ以上の領域に分けることもあるとは思いますが、今回の例では上述した3つの領域に分けています。</p><p>多くの場合、l-body-inner-0001だけで足りると思いますが、一つのサイト内で全く違う構造のデザインに対応する必要が出てきた場合にはl-body-inner-0002やl-body-inner-0003などのクラスを作成して対応します。</p><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>この節では、l-body-inner-xxxxの命名規則や役割について新たに学習しました。</p><p>次の節ではコンテンツ領域内のレイアウトについて学んでいきましょう。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/12/15/chapter-04-0005/">第4章 5節 l-contents-type-0001を作ろう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;l-body-inner-0001のコードを読み返しながら、新しいポイントについて学んでいきましょう
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第4章 3節 l-body-inner-0001を作ろう</title>
    <link href="https://css.nakano-pixy.com/2020/12/15/chapter-04-0003/"/>
    <id>https://css.nakano-pixy.com/2020/12/15/chapter-04-0003/</id>
    <published>2020-12-15T13:47:48.000Z</published>
    <updated>2021-02-06T09:38:54.770Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>これまでmodulesディレクトリの中にモジュールのファイルを作成してきましたが、この節ではlayoutsディレクトリの中にレイアウトのファイルを作成します。</p><p>レイアウトのクラスの作り方については、接頭辞がmod-ではなくl-になるだけで、モジュールと同じです。</p><p>この節ではまずl-body-inner-0001クラスとHTML文書構造を作成して、次の節でその役割や特徴について説明します。</p><h2 id="Block名を決める"><a href="#Block名を決める" class="headerlink" title="Block名を決める"></a>Block名を決める</h2><p>今回のBlock名は <code>l-body-inner-0001</code> にします。</p><p>モジュールのクラスの接頭辞はmod-でしたが、レイアウトのクラスの接頭辞はl-です。</p><h2 id="scssファイルの作成"><a href="#scssファイルの作成" class="headerlink" title="scssファイルの作成"></a>scssファイルの作成</h2><p>ファイル名の命名規則はモジュールと同じで <code>_Block名.scss</code> です。</p><p>先ほど決めたBlock名の先頭にアンダースコア（_）を足したものがファイル名になりますので <code>src/scss/layouts/_l-body-inner-0001.scss</code> を作成します。</p><h2 id="src-scss-blog-service-top-scssの編集"><a href="#src-scss-blog-service-top-scssの編集" class="headerlink" title="src/scss/blog-service-top.scssの編集"></a>src/scss/blog-service-top.scssの編集</h2><p>src/scss/blog-service-top.scssに <code>@import &quot;./layouts/l-body-inner-0001.scss&quot;;</code> を追記して、以下のようにします。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">&#x2F;&#x2F; base</span><br><span class="line">@import &quot;.&#x2F;base&#x2F;global-variables&#x2F;media-queries&#x2F;media-queries.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;base&#x2F;default.scss&quot;;</span><br><span class="line"></span><br><span class="line">&#x2F;&#x2F; layouts</span><br><span class="line">@import &quot;.&#x2F;layouts&#x2F;l-body-inner-0001.scss&quot;;</span><br><span class="line"></span><br><span class="line">&#x2F;&#x2F; modules</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-button-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-container-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-footer-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-header-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-heading-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-media-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-media-0002.scss&quot;;</span><br></pre></td></tr></table></figure><h2 id="blog-service-top-htmlの編集"><a href="#blog-service-top-htmlの編集" class="headerlink" title="blog-service-top.htmlの編集"></a>blog-service-top.htmlの編集</h2><p>blog-service-top.htmlのbodyタグの中に以下のように追記します。<br>bodyタグから外側は略して、追記分だけを記述しています。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">〜略〜</span><br><span class="line">&lt;div class&#x3D;&quot;l-body-inner-0001&quot;&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__header-wrapper&quot;&gt;</span><br><span class="line">    ここにヘッダーのモジュールが入ります。</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__contents-wrapper&quot;&gt;</span><br><span class="line">    ここにコンテンツ領域のレイアウトが入ります。</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__footer-wrapper&quot;&gt;</span><br><span class="line">    ここにフッターのモジュールが入ります。</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;div&gt;</span><br><span class="line">〜略〜</span><br></pre></td></tr></table></figure><h2 id="l-body-inner-0001-scssの編集"><a href="#l-body-inner-0001-scssの編集" class="headerlink" title="_l-body-inner-0001.scssの編集"></a>_l-body-inner-0001.scssの編集</h2><p>_l-body-inner-0001.scss に以下のように記述します。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">.l-body-inner-0001 &#123;</span><br><span class="line">  position: relative;</span><br><span class="line">  min-height: 100vh;</span><br><span class="line">  padding-bottom: 41px;</span><br><span class="line">  box-sizing: border-box;</span><br><span class="line">  background-color: #f7f7f7;</span><br><span class="line">  @media #&#123;$g__is-md&#125; &#123;</span><br><span class="line">    min-height: 0;</span><br><span class="line">  &#125;</span><br><span class="line">  .l-body-inner-0001__header-wrapper &#123;</span><br><span class="line">  &#125;</span><br><span class="line">  .l-body-inner-0001__contents-wrapper &#123;</span><br><span class="line">  &#125;</span><br><span class="line">  .l-body-inner-0001__footer-wrapper &#123;</span><br><span class="line">    position: absolute;</span><br><span class="line">    left: 0;</span><br><span class="line">    bottom: 0;</span><br><span class="line">    width: 100%;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="mod-header-0001を設置する"><a href="#mod-header-0001を設置する" class="headerlink" title="mod-header-0001を設置する"></a>mod-header-0001を設置する</h2><p>module-list.htmlに作成しておいたmod-header-0001をblog-service-top.htmlにコピー＆ペーストして以下のようにします。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br></pre></td><td class="code"><pre><span class="line">&lt;div class&#x3D;&quot;l-body-inner-0001&quot;&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__header-wrapper&quot;&gt;</span><br><span class="line">    &lt;header class&#x3D;&quot;mod-header-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;mod-header-0001__inner&quot;&gt;</span><br><span class="line">        &lt;div class&#x3D;&quot;mod-header-0001__logo-area&quot;&gt;</span><br><span class="line">          &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-header-0001__logo&quot;&gt;</span><br><span class="line">            ロゴ</span><br><span class="line">          &lt;&#x2F;a&gt;</span><br><span class="line">        &lt;&#x2F;div&gt;</span><br><span class="line">        &lt;ul class&#x3D;&quot;mod-header-0001__button-group&quot;&gt;</span><br><span class="line">          &lt;li class&#x3D;&quot;mod-header-0001__login-button-wrapper&quot;&gt;</span><br><span class="line">            &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-button-0001 mod-button-0001--size-sm&quot;&gt;ログイン&lt;&#x2F;a&gt;</span><br><span class="line">          &lt;&#x2F;li&gt;</span><br><span class="line">          &lt;li class&#x3D;&quot;mod-header-0001__sign-up-button-wrapper&quot;&gt;</span><br><span class="line">            &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-button-0001 mod-button-0001--size-sm mod-button-0001--secondary&quot;&gt;新規登録&lt;&#x2F;a&gt;</span><br><span class="line">          &lt;&#x2F;li&gt;</span><br><span class="line">        &lt;&#x2F;ul&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;header&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__contents-wrapper&quot;&gt;</span><br><span class="line">    ここにコンテンツ領域のレイアウトが入ります。</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__footer-wrapper&quot;&gt;</span><br><span class="line">    ここにフッターのモジュールが入ります。</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;div&gt;</span><br></pre></td></tr></table></figure><h2 id="mod-footer-0001を設置する"><a href="#mod-footer-0001を設置する" class="headerlink" title="mod-footer-0001を設置する"></a>mod-footer-0001を設置する</h2><p>module-list.htmlに作成しておいたmod-footer-0001をblog-service-top.htmlにコピー＆ペーストして以下のようにします。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><span class="line">&lt;div class&#x3D;&quot;l-body-inner-0001&quot;&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__header-wrapper&quot;&gt;</span><br><span class="line">    &lt;header class&#x3D;&quot;mod-header-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;mod-header-0001__inner&quot;&gt;</span><br><span class="line">        &lt;div class&#x3D;&quot;mod-header-0001__logo-area&quot;&gt;</span><br><span class="line">          &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-header-0001__logo&quot;&gt;</span><br><span class="line">            ロゴ</span><br><span class="line">          &lt;&#x2F;a&gt;</span><br><span class="line">        &lt;&#x2F;div&gt;</span><br><span class="line">        &lt;ul class&#x3D;&quot;mod-header-0001__button-group&quot;&gt;</span><br><span class="line">          &lt;li class&#x3D;&quot;mod-header-0001__login-button-wrapper&quot;&gt;</span><br><span class="line">            &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-button-0001 mod-button-0001--size-sm&quot;&gt;ログイン&lt;&#x2F;a&gt;</span><br><span class="line">          &lt;&#x2F;li&gt;</span><br><span class="line">          &lt;li class&#x3D;&quot;mod-header-0001__sign-up-button-wrapper&quot;&gt;</span><br><span class="line">            &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-button-0001 mod-button-0001--size-sm mod-button-0001--secondary&quot;&gt;新規登録&lt;&#x2F;a&gt;</span><br><span class="line">          &lt;&#x2F;li&gt;</span><br><span class="line">        &lt;&#x2F;ul&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;header&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__contents-wrapper&quot;&gt;</span><br><span class="line">    ここにコンテンツ領域のレイアウトが入ります。</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__footer-wrapper&quot;&gt;</span><br><span class="line">    &lt;footer class&#x3D;&quot;mod-footer-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;mod-footer-0001__copy-area&quot;&gt;</span><br><span class="line">        &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-footer-0001__copy&quot;&gt;</span><br><span class="line">          &amp;copy;中野ピク氏</span><br><span class="line">        &lt;&#x2F;a&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;footer&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;div&gt;</span><br></pre></td></tr></table></figure><h2 id="この節で編集したファイルの全容"><a href="#この節で編集したファイルの全容" class="headerlink" title="この節で編集したファイルの全容"></a>この節で編集したファイルの全容</h2><p><code>src/scss/blog-service-top.scss</code> は以下の通りになりました。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">&#x2F;&#x2F; base</span><br><span class="line">@import &quot;.&#x2F;base&#x2F;global-variables&#x2F;media-queries&#x2F;media-queries.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;base&#x2F;default.scss&quot;;</span><br><span class="line"></span><br><span class="line">&#x2F;&#x2F; layouts</span><br><span class="line">@import &quot;.&#x2F;layouts&#x2F;l-body-inner-0001.scss&quot;;</span><br><span class="line"></span><br><span class="line">&#x2F;&#x2F; modules</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-button-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-container-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-footer-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-header-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-heading-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-media-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-media-0002.scss&quot;;</span><br></pre></td></tr></table></figure><p><code>public/html/blog-service-top.html</code> は以下の通りになりました。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br></pre></td><td class="code"><pre><span class="line">&lt;!DOCTYPE html&gt;</span><br><span class="line">&lt;html&gt;</span><br><span class="line">&lt;head&gt;</span><br><span class="line">  &lt;meta http-equiv&#x3D;&quot;X-UA-Compatible&quot; content&#x3D;&quot;IE&#x3D;edge&quot;&gt;</span><br><span class="line">  &lt;title&gt;中野ピク氏流CSS設計&lt;&#x2F;title&gt;</span><br><span class="line">  &lt;meta charset&#x3D;&quot;utf-8&quot;&gt;</span><br><span class="line">  &lt;meta name&#x3D;&quot;viewport&quot; content&#x3D;&quot;width&#x3D;device-width, initial-scale&#x3D;1&quot;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;..&#x2F;stylesheets&#x2F;html5reset-1.6.1.css&quot;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;https:&#x2F;&#x2F;pro.fontawesome.com&#x2F;releases&#x2F;v5.10.0&#x2F;css&#x2F;all.css&quot; integrity&#x3D;&quot;sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p&quot; crossorigin&#x3D;&quot;anonymous&quot; &#x2F;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;..&#x2F;stylesheets&#x2F;blog-service-top.css&quot;&gt;</span><br><span class="line">&lt;&#x2F;head&gt;</span><br><span class="line">&lt;body&gt;</span><br><span class="line">&lt;div class&#x3D;&quot;l-body-inner-0001&quot;&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__header-wrapper&quot;&gt;</span><br><span class="line">    &lt;header class&#x3D;&quot;mod-header-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;mod-header-0001__inner&quot;&gt;</span><br><span class="line">        &lt;div class&#x3D;&quot;mod-header-0001__logo-area&quot;&gt;</span><br><span class="line">          &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-header-0001__logo&quot;&gt;</span><br><span class="line">            ロゴ</span><br><span class="line">          &lt;&#x2F;a&gt;</span><br><span class="line">        &lt;&#x2F;div&gt;</span><br><span class="line">        &lt;ul class&#x3D;&quot;mod-header-0001__button-group&quot;&gt;</span><br><span class="line">          &lt;li class&#x3D;&quot;mod-header-0001__login-button-wrapper&quot;&gt;</span><br><span class="line">            &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-button-0001 mod-button-0001--size-sm&quot;&gt;ログイン&lt;&#x2F;a&gt;</span><br><span class="line">          &lt;&#x2F;li&gt;</span><br><span class="line">          &lt;li class&#x3D;&quot;mod-header-0001__sign-up-button-wrapper&quot;&gt;</span><br><span class="line">            &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-button-0001 mod-button-0001--size-sm mod-button-0001--secondary&quot;&gt;新規登録&lt;&#x2F;a&gt;</span><br><span class="line">          &lt;&#x2F;li&gt;</span><br><span class="line">        &lt;&#x2F;ul&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;header&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__contents-wrapper&quot;&gt;</span><br><span class="line">    ここにコンテンツ領域のレイアウトが入ります。</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__footer-wrapper&quot;&gt;</span><br><span class="line">    &lt;footer class&#x3D;&quot;mod-footer-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;mod-footer-0001__copy-area&quot;&gt;</span><br><span class="line">        &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-footer-0001__copy&quot;&gt;</span><br><span class="line">          &amp;copy;中野ピク氏</span><br><span class="line">        &lt;&#x2F;a&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;footer&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;body&gt;</span><br><span class="line">&lt;&#x2F;html&gt;</span><br></pre></td></tr></table></figure><p><code>src/scss/layouts/_l-body-inner-0001.scss</code> は以下の通りになりました。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">.l-body-inner-0001 &#123;</span><br><span class="line">  position: relative;</span><br><span class="line">  min-height: 100vh;</span><br><span class="line">  padding-bottom: 41px;</span><br><span class="line">  box-sizing: border-box;</span><br><span class="line">  background-color: #f7f7f7;</span><br><span class="line">  @media #&#123;$g__is-md&#125; &#123;</span><br><span class="line">    min-height: 0;</span><br><span class="line">  &#125;</span><br><span class="line">  .l-body-inner-0001__header-wrapper &#123;</span><br><span class="line">  &#125;</span><br><span class="line">  .l-body-inner-0001__contents-wrapper &#123;</span><br><span class="line">  &#125;</span><br><span class="line">  .l-body-inner-0001__footer-wrapper &#123;</span><br><span class="line">    position: absolute;</span><br><span class="line">    left: 0;</span><br><span class="line">    bottom: 0;</span><br><span class="line">    width: 100%;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="表示確認"><a href="#表示確認" class="headerlink" title="表示確認"></a>表示確認</h2><p><code>public/html/blog-service-top.html</code> をブラウザで開いて確認してみてください。</p><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>l-body-inner-0001クラスとHTML文書構造を作成して、その中にmod-header-0001とmod-footer-0001を設置することによって、全てのページに共通利用できる外枠部分ができました。</p><p>次の節ではこのコードを読み返しながら、l-body-inner-0001の役割や特徴について解説していきます。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/12/15/chapter-04-0004/">第4章 4節 l-body-inner-0001のコードからポイントを読み取ろう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;これまでmodulesディレクトリの中にモジュールのファイルを作成してきましたが、この節ではlayo
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第4章 1節 ブログサービスのトップページを作る準備をしよう</title>
    <link href="https://css.nakano-pixy.com/2020/12/15/chapter-04-0001/"/>
    <id>https://css.nakano-pixy.com/2020/12/15/chapter-04-0001/</id>
    <published>2020-12-15T13:30:27.000Z</published>
    <updated>2021-02-23T16:02:48.815Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>この節では、第4章を進めていくにあたって必要となるファイルの準備を行っていきます。</p><h2 id="blog-service-top-scssの作成"><a href="#blog-service-top-scssの作成" class="headerlink" title="blog-service-top.scssの作成"></a>blog-service-top.scssの作成</h2><p>第3章までに作成してきたsrc/scss/module-list.scssを同じディレクトリ内にコピー＆ペーストして、そのファイル名をblog-service-top.scssにします。</p><h2 id="blog-service-top-scssの編集"><a href="#blog-service-top-scssの編集" class="headerlink" title="blog-service-top.scssの編集"></a>blog-service-top.scssの編集</h2><p>blog-service-top.scssでは、module-list.scssで使用していた<code>*</code>を使用せず、以下の通り必要なファイルだけを一つずつimportします。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br></pre></td><td class="code"><pre><span class="line">&#x2F;&#x2F; base</span><br><span class="line">@import &quot;.&#x2F;base&#x2F;global-variables&#x2F;media-queries&#x2F;media-queries.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;base&#x2F;default.scss&quot;;</span><br><span class="line"></span><br><span class="line">&#x2F;&#x2F; modules</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-button-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-container-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-footer-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-header-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-heading-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-media-0001.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;mod-media-0002.scss&quot;;</span><br></pre></td></tr></table></figure><h2 id="public-stylesheets-blog-service-top-cssの生成"><a href="#public-stylesheets-blog-service-top-cssの生成" class="headerlink" title="public/stylesheets/blog-service-top.cssの生成"></a>public/stylesheets/blog-service-top.cssの生成</h2><p>src/scss/blog-service-top.scss をコンパイルして、public/stylesheets/blog-service-top.css が生成されるようにSassの設定をして、 blog-service-top.css を生成してください。</p><h2 id="blog-service-top-htmlの作成"><a href="#blog-service-top-htmlの作成" class="headerlink" title="blog-service-top.htmlの作成"></a>blog-service-top.htmlの作成</h2><p>第3章までに作成してきた public/html/module-list.html を同じディレクトリ内にコピー＆ペーストして、そのファイル名を blog-service-top.html にします。</p><p>第4章では、この public/html/blog-service-top.html にHTMLを記述していきます。</p><h2 id="blog-service-top-htmlの編集"><a href="#blog-service-top-htmlの編集" class="headerlink" title="blog-service-top.htmlの編集"></a>blog-service-top.htmlの編集</h2><p>先ほど生成したblog-service-top.cssを読み込みますので、public/html/blog-service-top.htmlの</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;..&#x2F;stylesheets&#x2F;module-list.css&quot;&gt;</span><br></pre></td></tr></table></figure><p>となっている箇所を</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">&lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;..&#x2F;stylesheets&#x2F;blog-service-top.css&quot;&gt;</span><br></pre></td></tr></table></figure><p>に変更します。</p><p>次に、bodyの中を全て削除して以下のようにします。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">&lt;!DOCTYPE html&gt;</span><br><span class="line">&lt;html&gt;</span><br><span class="line">&lt;head&gt;</span><br><span class="line">  &lt;meta http-equiv&#x3D;&quot;X-UA-Compatible&quot; content&#x3D;&quot;IE&#x3D;edge&quot;&gt;</span><br><span class="line">  &lt;title&gt;中野ピク氏流CSS設計&lt;&#x2F;title&gt;</span><br><span class="line">  &lt;meta charset&#x3D;&quot;utf-8&quot;&gt;</span><br><span class="line">  &lt;meta name&#x3D;&quot;viewport&quot; content&#x3D;&quot;width&#x3D;device-width, initial-scale&#x3D;1&quot;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;..&#x2F;stylesheets&#x2F;html5reset-1.6.1.css&quot;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;https:&#x2F;&#x2F;pro.fontawesome.com&#x2F;releases&#x2F;v5.10.0&#x2F;css&#x2F;all.css&quot; integrity&#x3D;&quot;sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p&quot; crossorigin&#x3D;&quot;anonymous&quot; &#x2F;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;..&#x2F;stylesheets&#x2F;blog-service-top.css&quot;&gt;</span><br><span class="line">&lt;&#x2F;head&gt;</span><br><span class="line">&lt;body&gt;</span><br><span class="line"></span><br><span class="line">&lt;&#x2F;body&gt;</span><br><span class="line">&lt;&#x2F;html&gt;</span><br></pre></td></tr></table></figure><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>SCSSファイルとHTMLファイルの作成をして、準備が完了しました。</p><p>次の節では、今回準備したコードを読み返しながら、新しいポイントについて解説していきます。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/12/18/chapter-04-0002/">第4章 2節 ブログサービスのトップページを作るために準備したファイルのコードからポイントを読み取ろう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;この節では、第4章を進めていくにあたって必要となるファイルの準備を行っていきます。&lt;/p&gt;
&lt;h2 
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第6章 5節 親要素の始端と終端の余白を可変にする方法について練習問題を通して理解しよう</title>
    <link href="https://css.nakano-pixy.com/2020/11/22/chapter-06-0005/"/>
    <id>https://css.nakano-pixy.com/2020/11/22/chapter-06-0005/</id>
    <published>2020-11-22T11:09:41.000Z</published>
    <updated>2021-02-21T07:25:55.760Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節のはじめに"><a href="#この節のはじめに" class="headerlink" title="この節のはじめに"></a>この節のはじめに</h2><p>まず、親要素の始端と終端の余白というのはどこのことを指しているかについて説明します。</p><p>「<a href="/2020/10/29/chapter-03-0013/">第3章 13節 mod-container-0001を作ろう</a>」で作成したmod-container-0001のpaddingとmarginは以下のようになっています。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">.mod-container-0001 &#123;</span><br><span class="line">  padding: 1px 16px;</span><br><span class="line">  background-color: #ffffff;</span><br><span class="line">  &#x2F;&#x2F; .mod-container-0001のpadding-topを補完する初期値</span><br><span class="line">  &gt; :first-child &#123;</span><br><span class="line">    margin-top: 15px;</span><br><span class="line">  &#125;</span><br><span class="line">  &#x2F;&#x2F; .mod-container-0001のpadding-bottomを補完する初期値</span><br><span class="line">  &gt; :last-child &#123;</span><br><span class="line">    margin-bottom: 39px;</span><br><span class="line">  &#125;</span><br><span class="line">  〜略〜</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>このとき、mod-container-0001の始端の余白というのは「mod-container-0001のpadding-topとfirst-childのmargin-topを足した値」のことを指しており、mod-container-0001の終端の余白というのは「mod-container-0001のpadding-bottomとlast-childのmargin-bottomを足した値」のことを指しています。<br>つまり始端の余白の初期値は16pxで、終端の余白の初期値は40pxです。</p><p>mod-container-0001のpadding-topとpadding-bottomを1pxで設定しておいたことで、mod-container-0001の中に最初に設置される要素(first-child)が変化することによって始端の余白を初期値(16px)より小さくしたい場合や、最後に設置される要素(last-child)が変化することによって終端の余白を初期値(40px)より小さくしたい場合にも柔軟に対応できます。</p><p>この節では、「<a href="/2020/10/30/chapter-03-0014/">第3章 14節 mod-container-0001のコードからポイントを読み取ろう</a>」で解説した、「first-childの前やlast-childの後の余白が変化する箇所は擬似クラスセレクタで親要素のpaddingを制御する」という方法について、mod-container-0001のfirst-childやlast-childが変化する具体例をもとに理解を深めていきましょう。</p><h2 id="練習問題の基礎となるHTML"><a href="#練習問題の基礎となるHTML" class="headerlink" title="練習問題の基礎となるHTML"></a>練習問題の基礎となるHTML</h2><p>前の節で作成したmargin-tutorial.htmlの、以下の箇所を基礎として、少し変更しながら説明していきます。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line">&lt;section class&#x3D;&quot;mod-container-0001&quot;&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;mod-margin-tutorial-0002&quot;&gt;</span><br><span class="line">    mod-margin-tutorial-0002</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;mod-margin-tutorial-0003&quot;&gt;</span><br><span class="line">    mod-margin-tutorial-0003</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;mod-margin-tutorial-0004&quot;&gt;</span><br><span class="line">    mod-margin-tutorial-0004</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;section&gt;</span><br></pre></td></tr></table></figure><h2 id="練習問題の基礎となるSCSS"><a href="#練習問題の基礎となるSCSS" class="headerlink" title="練習問題の基礎となるSCSS"></a>練習問題の基礎となるSCSS</h2><h3 id="mod-container-0001-scss"><a href="#mod-container-0001-scss" class="headerlink" title="_mod-container-0001.scss"></a>_mod-container-0001.scss</h3><p>src/scss/modules/_mod-container-0001.scssはこの節では変更しませんが、ここにも載せておきます。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">.mod-container-0001 &#123;</span><br><span class="line">  padding: 1px 16px;</span><br><span class="line">  background-color: #ffffff;</span><br><span class="line">  &#x2F;&#x2F; .mod-container-0001のpadding-topを補完する初期値</span><br><span class="line">  &gt; :first-child &#123;</span><br><span class="line">    margin-top: 15px;</span><br><span class="line">  &#125;</span><br><span class="line">  &#x2F;&#x2F; .mod-container-0001のpadding-bottomを補完する初期値</span><br><span class="line">  &gt; :last-child &#123;</span><br><span class="line">    margin-bottom: 39px;</span><br><span class="line">  &#125;</span><br><span class="line">  〜略〜</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="mod-margin-tutorial-0002-scss"><a href="#mod-margin-tutorial-0002-scss" class="headerlink" title="_mod-margin-tutorial-0002.scss"></a>_mod-margin-tutorial-0002.scss</h3><p>前の節で以下の通り記述したsrc/scss/modules/_mod-margin-tutorial-0002.scssを基礎として、少し変更しながら説明していきます。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0002 &#123;</span><br><span class="line">  background: #ffdddd;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="mod-margin-tutorial-0003-scss"><a href="#mod-margin-tutorial-0003-scss" class="headerlink" title="_mod-margin-tutorial-0003.scss"></a>_mod-margin-tutorial-0003.scss</h3><p>前の節で以下の通り記述したsrc/scss/modules/_mod-margin-tutorial-0003.scssを基礎として、少し変更しながら説明していきます。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0003 &#123;</span><br><span class="line">  background: #ddffdd;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="mod-margin-tutorial-0004-scss"><a href="#mod-margin-tutorial-0004-scss" class="headerlink" title="_mod-margin-tutorial-0004.scss"></a>_mod-margin-tutorial-0004.scss</h3><p>前の節で以下の通り記述したsrc/scss/modules/_mod-margin-tutorial-0004.scssを基礎として、少し変更しながら説明していきます。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0004 &#123;</span><br><span class="line">  background: #ddddff;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="練習問題を始める前に"><a href="#練習問題を始める前に" class="headerlink" title="練習問題を始める前に"></a>練習問題を始める前に</h2><p>今回の基礎となるHTMLでは、以下の3つのモジュールをmod-container-0001が包括しています。</p><ul><li>mod-margin-tutorial-0002</li><li>mod-margin-tutorial-0003</li><li>mod-margin-tutorial-0004</li></ul><p>練習問題の説明をするにあたって、上記のモジュールをそれぞれ以下のように表現します。</p><ul><li>mod-2</li><li>mod-3</li><li>mod-4</li></ul><h2 id="練習問題で想定する条件"><a href="#練習問題で想定する条件" class="headerlink" title="練習問題で想定する条件"></a>練習問題で想定する条件</h2><p>この練習問題では、以下の条件を満たせるようなmarginをmod-2、mod-3、mod-4に設定していきましょう。</p><ul><li>mod-container-0001の中には、mod-2、mod-3、mod-4が必ず表示され、同じ要素が同時に表示されないものとします。</li><li>mod-2、mod-3、mod-4の表示順はランダムで変化するものとします。</li><li>mod-container-0001の始端の余白は、一番上に表示されたモジュールの番号×10pxの式で算出した値を設定するものとします。例えばmod-2が一番上に表示された場合は、始端の余白は2×10=20pxとします。つまり、このときmod-container-0001のpadding-topとmod-2のmargin-topを合わせて20pxになるものとします。</li><li>mod-container-0001の終端の余白は、一番下に表示されたモジュールの番号×10pxの式で算出した値を設定するものとします。例えばmod-4が一番下に表示された場合は、終端の余白は4×10=40pxとします。つまり、このときmod-container-0001のpadding-bottomとmod-4のmargin-bottomを合わせて40pxになるものとします。</li></ul><h2 id="上記した条件を満たすSCSSを書いてみてください"><a href="#上記した条件を満たすSCSSを書いてみてください" class="headerlink" title="上記した条件を満たすSCSSを書いてみてください"></a>上記した条件を満たすSCSSを書いてみてください</h2><p>余裕があれば、_mod-margin-tutorial-0002.scss、_mod-margin-tutorial-0003.scss、_mod-margin-tutorial-0004.scssを編集して、上記した条件を満たすSCSSをご自身で書いてみてください。</p><p>正しい答えの例はこの後に掲載します。</p><h2 id="正しい答えの例"><a href="#正しい答えの例" class="headerlink" title="正しい答えの例"></a>正しい答えの例</h2><h3 id="表示されるパターンを整理する"><a href="#表示されるパターンを整理する" class="headerlink" title="表示されるパターンを整理する"></a>表示されるパターンを整理する</h3><p>まずはパターンの整理をします。<br>余白のパターンさえ整理されれば、あとは簡単です。</p><p>一番上に表示される要素と、一番下に表示される要素だけがわかれば良いので、余白の設定をするうえで必要なパターンは以下の通りです。</p><p>一番上に表示される要素のパターン</p><ul><li>mod-2が一番上に表示されるパターン</li><li>mod-3が一番上に表示されるパターン</li><li>mod-4が一番上に表示されるパターン</li></ul><p>一番下に表示される要素のパターン</p><ul><li>mod-2が一番下に表示されるパターン</li><li>mod-3が一番下に表示されるパターン</li><li>mod-4が一番下に表示されるパターン</li></ul><h2 id="全ての条件を満たせるSCSS"><a href="#全ての条件を満たせるSCSS" class="headerlink" title="全ての条件を満たせるSCSS"></a>全ての条件を満たせるSCSS</h2><p>答えはとても簡単です。</p><p>一番上の要素はfirst-child、一番下の要素はlast-childなので、その通りにスタイルを設定していくだけです。</p><p>_mod-margin-tutorial-0002.scssは以下のようになりました。<br><code>&gt;</code> を使用して、.mod-container-0001の直接の子要素のときだけに限定していることに注意してください。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0002 &#123;</span><br><span class="line">  background: #ffdddd;</span><br><span class="line"></span><br><span class="line">  &#x2F;&#x2F; .mod-container-0001の子のとき</span><br><span class="line">  .mod-container-0001 &gt; &amp; &#123;</span><br><span class="line">    &amp;:first-child &#123;</span><br><span class="line">      margin-top: 19px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp;:last-child &#123;</span><br><span class="line">      margin-bottom: 19px;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>_mod-margin-tutorial-0003.scssは以下のようになりました。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0003 &#123;</span><br><span class="line">  background: #ddffdd;</span><br><span class="line"></span><br><span class="line">  &#x2F;&#x2F; .mod-container-0001の子のとき</span><br><span class="line">  .mod-container-0001 &gt; &amp; &#123;</span><br><span class="line">    &amp;:first-child &#123;</span><br><span class="line">      margin-top: 29px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp;:last-child &#123;</span><br><span class="line">      margin-bottom: 29px;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>_mod-margin-tutorial-0004.scssは以下のようになりました。<br>mod-container-0001のlast-childには、もともと<code>margin-bottom: 39px;</code>が設定されているため、このファイルには記述していません。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0004 &#123;</span><br><span class="line">  background: #ddddff;</span><br><span class="line"></span><br><span class="line">  &#x2F;&#x2F; .mod-container-0001の子のとき</span><br><span class="line">  .mod-container-0001 &gt; &amp; &#123;</span><br><span class="line">    &amp;:first-child &#123;</span><br><span class="line">      margin-top: 39px;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="このmarginの役割について"><a href="#このmarginの役割について" class="headerlink" title="このmarginの役割について"></a>このmarginの役割について</h2><p>このmarginは親要素のpaddingを補完する役割を担っています。</p><h2 id="marginの方向について"><a href="#marginの方向について" class="headerlink" title="marginの方向について"></a>marginの方向について</h2><p>この練習問題では、margin-topとmargin-bottomを使用しました。<br>実際にほとんどの場合、first-childにmargin-topを設定し、last-childにmargin-bottomを設定することになると思いますが、要素間のmarginを設定する場合と同じく、要素の並ぶ方向に合わせてfirst-childやlast-childに設定するmarginの方向も変更する必要があります。</p><h2 id="親要素の始端と終端の余白を可変にするいくつかの方法について"><a href="#親要素の始端と終端の余白を可変にするいくつかの方法について" class="headerlink" title="親要素の始端と終端の余白を可変にするいくつかの方法について"></a>親要素の始端と終端の余白を可変にするいくつかの方法について</h2><p>デザインにもよりますが、このとてもやさしいCSS設計に沿ってコーディングをした場合、特にl-contents-type-xxxxやmod-container-xxxxを色々なページで再利用していくと、その中に一番目に設置される要素または最後に設置される要素がページによって変更される場合はよくあり、それらの要素が変更されたことにより、親要素の始端や終端の余白の変更が必要となる場合もあります。</p><p>そのようなとき、例えばl-contents-type-0001の始端と終端の余白を変更する基本的な方法として、l-contents-type-0001のModifierクラスを新しく定義して付与したり、l-contents-type-0002を新しく定義してクラスを差し替えたりする方法があります。</p><p>それらの基本的な方法に比べて、この節で解説してきた方法は子要素のmarginを使って親要素のpaddingを補完するという点から見ていくと変則的な方法に見えます。しかし、少し視点を変えて、始端と終端の余白を変更する理由がどのようなものであったかという点から見ていくと「一番上に設置される要素が変更された」「一番下に設置される要素が変更された」ということをきっかけに余白を変更する必要が生じているため、first-childやlast-childのセレクタを使用して余白を変更することは自然なようにも見てとれます。</p><p>この方法を使用するとクラスの付け替えが不要であることから、プログラムによって動的に表示要素が変化するページはもちろんのこと、静的なページの作成においてもコードの管理をしやすくなることがありますので、ぜひ選択肢のひとつとして検討してみてください。</p><h2 id="表示確認"><a href="#表示確認" class="headerlink" title="表示確認"></a>表示確認</h2><p><code>public/html/margin-tutorial.html</code> をブラウザで開いて確認してみてください。</p><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>この節では、隣接兄弟要素セレクタでは対応できない、親要素の始端と終端の余白を可変にする方法について、練習問題を通して学習しました。</p><p>mod-container-0001はこの練習問題で使用することも見越してpadding-topとpadding-bottomを1pxに設定していましたが、ほとんどの要素は初めから可変にしておく必要はありません。</p><p>この方法を使用するのは、first-childまたはlast-childが変化したときに親要素の余白を変化させたい場合に限ります。</p><p>モジュールを作成する時点において、first-childやlast-childが変化するかどうかわからない場合や、それらが変化するとしても余白を変化させない場合は、親要素のpaddingだけを使用して余白を設定しておき、可変にする必要に迫られてから対応するのが良いと思います。</p><p>過剰な実装にならないように、適宜使い分けてみてください。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2021/01/28/chapter-06-digest/">第6章 まとめ</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節のはじめに&quot;&gt;&lt;a href=&quot;#この節のはじめに&quot; class=&quot;headerlink&quot; title=&quot;この節のはじめに&quot;&gt;&lt;/a&gt;この節のはじめに&lt;/h2&gt;&lt;p&gt;まず、親要素の始端と終端の余白というのはどこのことを指しているかについて説明します。&lt;/p&gt;
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第6章 4節 親要素の始端と終端の余白を可変にする方法についての練習問題の準備をしよう</title>
    <link href="https://css.nakano-pixy.com/2020/11/21/chapter-06-0004/"/>
    <id>https://css.nakano-pixy.com/2020/11/21/chapter-06-0004/</id>
    <published>2020-11-20T18:17:55.000Z</published>
    <updated>2021-02-19T12:07:06.449Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>この節では、次の節で学習するための下準備を行っていきます。</p><h2 id="mod-margin-tutorial-0002-scssの作成"><a href="#mod-margin-tutorial-0002-scssの作成" class="headerlink" title="_mod-margin-tutorial-0002.scssの作成"></a>_mod-margin-tutorial-0002.scssの作成</h2><p>src/scss/modules/_mod-margin-tutorial-0002.scssを作成し、以下の通り記述します。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0002 &#123;</span><br><span class="line">  background: #ffdddd;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="mod-margin-tutorial-0003-scssの作成"><a href="#mod-margin-tutorial-0003-scssの作成" class="headerlink" title="_mod-margin-tutorial-0003.scssの作成"></a>_mod-margin-tutorial-0003.scssの作成</h2><p>src/scss/modules/_mod-margin-tutorial-0003.scssを作成し、以下の通り記述します。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0003 &#123;</span><br><span class="line">  background: #ddffdd;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="mod-margin-tutorial-0004-scssの作成"><a href="#mod-margin-tutorial-0004-scssの作成" class="headerlink" title="_mod-margin-tutorial-0004.scssの作成"></a>_mod-margin-tutorial-0004.scssの作成</h2><p>src/scss/modules/_mod-margin-tutorial-0004.scssを作成し、以下の通り記述します。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0004 &#123;</span><br><span class="line">  background: #ddddff;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="margin-tutorial-htmlの編集"><a href="#margin-tutorial-htmlの編集" class="headerlink" title="margin-tutorial.htmlの編集"></a>margin-tutorial.htmlの編集</h2><p>margin-tutorial.htmlのmod-container-0001の下に以下の4つのタグを追記し、</p><ul><li>mod-container-0001</li><li>mod-margin-tutorial-0002</li><li>mod-margin-tutorial-0003</li><li>mod-margin-tutorial-0004</li></ul><p>以下のようにします。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line">〜略〜</span><br><span class="line">&lt;section class&#x3D;&quot;mod-container-0001&quot;&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;mod-margin-tutorial-0002&quot;&gt;</span><br><span class="line">    mod-margin-tutorial-0002</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;mod-margin-tutorial-0003&quot;&gt;</span><br><span class="line">    mod-margin-tutorial-0003</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;mod-margin-tutorial-0004&quot;&gt;</span><br><span class="line">    mod-margin-tutorial-0004</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;section&gt;</span><br><span class="line">〜略〜</span><br></pre></td></tr></table></figure><p>追記した後のmargin-tutorial.htmlの全容は以下のようになりました。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br><span class="line">75</span><br><span class="line">76</span><br><span class="line">77</span><br><span class="line">78</span><br><span class="line">79</span><br><span class="line">80</span><br><span class="line">81</span><br><span class="line">82</span><br><span class="line">83</span><br><span class="line">84</span><br><span class="line">85</span><br></pre></td><td class="code"><pre><span class="line">&lt;!DOCTYPE html&gt;</span><br><span class="line">&lt;html&gt;</span><br><span class="line">&lt;head&gt;</span><br><span class="line">  &lt;meta http-equiv&#x3D;&quot;X-UA-Compatible&quot; content&#x3D;&quot;IE&#x3D;edge&quot;&gt;</span><br><span class="line">  &lt;title&gt;中野ピク氏流CSS設計&lt;&#x2F;title&gt;</span><br><span class="line">  &lt;meta charset&#x3D;&quot;utf-8&quot;&gt;</span><br><span class="line">  &lt;meta name&#x3D;&quot;viewport&quot; content&#x3D;&quot;width&#x3D;device-width, initial-scale&#x3D;1&quot;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;..&#x2F;stylesheets&#x2F;html5reset-1.6.1.css&quot;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;https:&#x2F;&#x2F;pro.fontawesome.com&#x2F;releases&#x2F;v5.10.0&#x2F;css&#x2F;all.css&quot; integrity&#x3D;&quot;sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p&quot; crossorigin&#x3D;&quot;anonymous&quot;&#x2F;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;..&#x2F;stylesheets&#x2F;module-list.css&quot;&gt;</span><br><span class="line">&lt;&#x2F;head&gt;</span><br><span class="line">&lt;body&gt;</span><br><span class="line">&lt;div class&#x3D;&quot;l-body-inner-0001&quot;&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__header-wrapper&quot;&gt;</span><br><span class="line">    &lt;header class&#x3D;&quot;mod-header-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;mod-header-0001__inner&quot;&gt;</span><br><span class="line">        &lt;div class&#x3D;&quot;mod-header-0001__logo-area&quot;&gt;</span><br><span class="line">          &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-header-0001__logo&quot;&gt;</span><br><span class="line">            ロゴ</span><br><span class="line">          &lt;&#x2F;a&gt;</span><br><span class="line">        &lt;&#x2F;div&gt;</span><br><span class="line">        &lt;ul class&#x3D;&quot;mod-header-0001__button-group&quot;&gt;</span><br><span class="line">          &lt;li class&#x3D;&quot;mod-header-0001__login-button-wrapper&quot;&gt;</span><br><span class="line">            &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-button-0001 mod-button-0001--size-sm&quot;&gt;ログイン&lt;&#x2F;a&gt;</span><br><span class="line">          &lt;&#x2F;li&gt;</span><br><span class="line">          &lt;li class&#x3D;&quot;mod-header-0001__sign-up-button-wrapper&quot;&gt;</span><br><span class="line">            &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-button-0001 mod-button-0001--size-sm mod-button-0001--secondary&quot;&gt;新規登録&lt;&#x2F;a&gt;</span><br><span class="line">          &lt;&#x2F;li&gt;</span><br><span class="line">        &lt;&#x2F;ul&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;header&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__contents-wrapper&quot;&gt;</span><br><span class="line">    &lt;div class&#x3D;&quot;l-contents-type-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;l-contents-type-0001__heading-wrapper&quot;&gt;</span><br><span class="line">        &lt;h1 class&#x3D;&quot;mod-heading-0001 mod-heading-0001--lv-1&quot;&gt;margin設定についての練習問題&lt;&#x2F;h1&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;l-contents-type-0001__body&quot;&gt;</span><br><span class="line">        &lt;section class&#x3D;&quot;mod-container-0001&quot;&gt;</span><br><span class="line">          &lt;div class&#x3D;&quot;mod-container-0001__heading-wrapper&quot;&gt;</span><br><span class="line">            &lt;h2 class&#x3D;&quot;mod-heading-0001&quot;&gt;h2セクション&lt;&#x2F;h2&gt;</span><br><span class="line">          &lt;&#x2F;div&gt;</span><br><span class="line">          &lt;div class&#x3D;&quot;mod-container-0001__body&quot;&gt;</span><br><span class="line">            &lt;ul class&#x3D;&quot;mod-margin-tutorial-0001&quot;&gt;</span><br><span class="line">              &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-basic&quot;&gt;</span><br><span class="line">                item-basic</span><br><span class="line">              &lt;&#x2F;li&gt;</span><br><span class="line">              &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-1&quot;&gt;</span><br><span class="line">                item-1</span><br><span class="line">              &lt;&#x2F;li&gt;</span><br><span class="line">              &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-2&quot;&gt;</span><br><span class="line">                item-2</span><br><span class="line">              &lt;&#x2F;li&gt;</span><br><span class="line">              &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-3&quot;&gt;</span><br><span class="line">                item-3</span><br><span class="line">              &lt;&#x2F;li&gt;</span><br><span class="line">            &lt;&#x2F;ul&gt;</span><br><span class="line">          &lt;&#x2F;div&gt;</span><br><span class="line">        &lt;&#x2F;section&gt;</span><br><span class="line">        &lt;section class&#x3D;&quot;mod-container-0001&quot;&gt;</span><br><span class="line">          &lt;div class&#x3D;&quot;mod-margin-tutorial-0002&quot;&gt;</span><br><span class="line">            mod-margin-tutorial-0002</span><br><span class="line">          &lt;&#x2F;div&gt;</span><br><span class="line">          &lt;div class&#x3D;&quot;mod-margin-tutorial-0003&quot;&gt;</span><br><span class="line">            mod-margin-tutorial-0003</span><br><span class="line">          &lt;&#x2F;div&gt;</span><br><span class="line">          &lt;div class&#x3D;&quot;mod-margin-tutorial-0004&quot;&gt;</span><br><span class="line">            mod-margin-tutorial-0004</span><br><span class="line">          &lt;&#x2F;div&gt;</span><br><span class="line">        &lt;&#x2F;section&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__footer-wrapper&quot;&gt;</span><br><span class="line">    &lt;footer class&#x3D;&quot;mod-footer-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;mod-footer-0001__copy-area&quot;&gt;</span><br><span class="line">        &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-footer-0001__copy&quot;&gt;</span><br><span class="line">          &amp;copy;中野ピク氏</span><br><span class="line">        &lt;&#x2F;a&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;footer&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;body&gt;</span><br><span class="line">&lt;&#x2F;html&gt;</span><br></pre></td></tr></table></figure><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>この節では、次の節で学習するための下準備を行いました。</p><p>次の節では、実際に手を動かしながら、mod-container-0001の始端と終端の余白を可変にする方法について、練習問題を通して理解を深めていきましょう。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/11/22/chapter-06-0005/">第6章 5節 親要素の始端と終端の余白を可変にする方法について練習問題を通して理解しよう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;この節では、次の節で学習するための下準備を行っていきます。&lt;/p&gt;
&lt;h2 id=&quot;mod-marg
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第6章 3節 後で困らない要素間のmarginの設定方法を練習問題を通して理解しよう</title>
    <link href="https://css.nakano-pixy.com/2020/11/20/chapter-06-0003/"/>
    <id>https://css.nakano-pixy.com/2020/11/20/chapter-06-0003/</id>
    <published>2020-11-20T09:00:12.000Z</published>
    <updated>2021-02-21T03:36:35.171Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節のはじめに"><a href="#この節のはじめに" class="headerlink" title="この節のはじめに"></a>この節のはじめに</h2><p>モジュールの再利用をするときやプログラムによって表示要素を出し分けるとき隣接する要素の組み合わせは変化し、その組み合わせが変化したときには、2つの要素間のmarginも変更したい場合があります。</p><p>この節では、隣接する要素の組み合わせが変化する具体例をもとに、後で困ることのないmarginの設定方法について学習していきましょう。</p><h2 id="margin設定についての練習問題の基礎となるHTML"><a href="#margin設定についての練習問題の基礎となるHTML" class="headerlink" title="margin設定についての練習問題の基礎となるHTML"></a>margin設定についての練習問題の基礎となるHTML</h2><p>前の節で作成したmargin-tutorial.htmlの、以下の箇所を基礎として、少し変更しながら説明していきます。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">&lt;ul class&#x3D;&quot;mod-margin-tutorial-0001&quot;&gt;</span><br><span class="line">  &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-basic&quot;&gt;</span><br><span class="line">    item-basic</span><br><span class="line">  &lt;&#x2F;li&gt;</span><br><span class="line">  &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-1&quot;&gt;</span><br><span class="line">    item-1</span><br><span class="line">  &lt;&#x2F;li&gt;</span><br><span class="line">  &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-2&quot;&gt;</span><br><span class="line">    item-2</span><br><span class="line">  &lt;&#x2F;li&gt;</span><br><span class="line">  &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-3&quot;&gt;</span><br><span class="line">    item-3</span><br><span class="line">  &lt;&#x2F;li&gt;</span><br><span class="line">&lt;&#x2F;ul&gt;</span><br></pre></td></tr></table></figure><h2 id="margin設定についての練習問題の基礎となるSCSS"><a href="#margin設定についての練習問題の基礎となるSCSS" class="headerlink" title="margin設定についての練習問題の基礎となるSCSS"></a>margin設定についての練習問題の基礎となるSCSS</h2><p>前の節で以下の通り記述した_mod-margin-tutorial-0001.scssを基礎として、少し変更しながら説明していきます。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0001 &#123;</span><br><span class="line">  display: flex;</span><br><span class="line">  flex-direction: column;</span><br><span class="line">  .mod-margin-tutorial-0001__item-basic &#123;</span><br><span class="line">    background: #dddddd;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-margin-tutorial-0001__item-1 &#123;</span><br><span class="line">    background: #ffdddd;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-margin-tutorial-0001__item-2 &#123;</span><br><span class="line">    background: #ddffdd;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-margin-tutorial-0001__item-3 &#123;</span><br><span class="line">    background: #ddddff;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="margin設定についての練習問題を始める前に"><a href="#margin設定についての練習問題を始める前に" class="headerlink" title="margin設定についての練習問題を始める前に"></a>margin設定についての練習問題を始める前に</h2><p>「基礎となるHTML」では、以下の4つのElementクラスが付与されたli要素をul要素が包括しています。</p><ul><li>mod-margin-tutorial-0001__item-basic</li><li>mod-margin-tutorial-0001__item-1</li><li>mod-margin-tutorial-0001__item-2</li><li>mod-margin-tutorial-0001__item-3</li></ul><p>練習問題の説明をするにあたって、上記した4つのElementクラスが付与されたli要素をそれぞれ以下のように表現します。</p><ul><li>item-basic</li><li>item-1</li><li>item-2</li><li>item-3</li></ul><h2 id="margin設定についての練習問題で想定する条件"><a href="#margin設定についての練習問題で想定する条件" class="headerlink" title="margin設定についての練習問題で想定する条件"></a>margin設定についての練習問題で想定する条件</h2><p>このmargin設定についての練習問題では、以下の条件を満たせるようなmarginをElementクラスに設定していきましょう。</p><ul><li>ul要素の中には、item-basic、item-1、item-2、item-3がランダムで1つまたは2つ表示されるものとします。</li><li>item-1とitem-1など、同じ要素が2つ表示される場合もあるものとします。</li><li>いずれか1つだけが表示される場合のmarginは0とします。</li><li>隣接要素の無い方向、つまり最初のli要素のmargin-top、最後のli要素のmargin-bottomは0とします。</li><li>item-basicとitem-1、item-2、item-3のいずれかが隣接する場合、2つの要素間のmarginは20pxとします。</li><li>item-1、item-2、item-3のいずれか2つが隣接する場合は、2つの要素間のmarginは、item番号×item番号×10pxの式で算出した値を設定するものとします。例えばitem-1とitem-2が隣接する場合のmarginは、1×2×10=20pxとします。</li></ul><h2 id="この条件を満たすSCSSを書いてみてください"><a href="#この条件を満たすSCSSを書いてみてください" class="headerlink" title="この条件を満たすSCSSを書いてみてください"></a>この条件を満たすSCSSを書いてみてください</h2><p>余裕があれば、_mod-margin-tutorial-0001.scssを編集して、この条件を満たすSCSSをご自身で書いてみてください。</p><p>正しい答えの例はこの後に掲載します。</p><h2 id="正しい答えの例"><a href="#正しい答えの例" class="headerlink" title="正しい答えの例"></a>正しい答えの例</h2><h3 id="表示されるパターンを整理する"><a href="#表示されるパターンを整理する" class="headerlink" title="表示されるパターンを整理する"></a>表示されるパターンを整理する</h3><p>まずは表示されるパターンを整理してみます。<br>表示されるパターンさえ整理されれば、あとは簡単です。</p><h4 id="いずれか1つ表示されるパターン"><a href="#いずれか1つ表示されるパターン" class="headerlink" title="いずれか1つ表示されるパターン"></a>いずれか1つ表示されるパターン</h4><p>以下のパターンがありますが、いずれの場合もmarginは0です。</p><ul><li>item-basic</li><li>item-1</li><li>item-2</li><li>item-3</li></ul><h4 id="いずれか2つ表示されるパターン"><a href="#いずれか2つ表示されるパターン" class="headerlink" title="いずれか2つ表示されるパターン"></a>いずれか2つ表示されるパターン</h4><p>以下のパターンがあります。</p><p>item-basicが前にくるパターン</p><ul><li>item-basic、item-basicの順に表示 <code>margin-top: 20px;</code></li><li>item-basic、item-1の順に表示 <code>margin-top: 20px;</code></li><li>item-basic、item-2の順に表示 <code>margin-top: 20px;</code></li><li>item-basic、item-3の順に表示 <code>margin-top: 20px;</code></li></ul><p>item-1が前にくるパターン</p><ul><li>item-1、item-basicの順に表示 <code>margin-top: 20px;</code></li><li>item-1、item-1の順に表示 <code>margin-top: 10px;</code></li><li>item-1、item-2の順に表示 <code>margin-top: 20px;</code></li><li>item-1、item-3の順に表示 <code>margin-top: 30px;</code></li></ul><p>item-2が前にくるパターン</p><ul><li>item-2、item-basicの順に表示 <code>margin-top: 20px;</code></li><li>item-2、item-1の順に表示 <code>margin-top: 20px;</code></li><li>item-2、item-2の順に表示 <code>margin-top: 40px;</code></li><li>item-2、item-3の順に表示 <code>margin-top: 60px;</code></li></ul><p>item-3が前にくるパターン</p><ul><li>item-3、item-basicの順に表示 <code>margin-top: 20px;</code></li><li>item-3、item-1の順に表示 <code>margin-top: 30px;</code></li><li>item-3、item-2の順に表示 <code>margin-top: 60px;</code></li><li>item-3、item-3の順に表示 <code>margin-top: 90px;</code></li></ul><h3 id="全ての条件を満たせるSCSS"><a href="#全ての条件を満たせるSCSS" class="headerlink" title="全ての条件を満たせるSCSS"></a>全ての条件を満たせるSCSS</h3><p>答えはとても簡単です。</p><p>「<a href="/2020/10/30/chapter-03-0014/">第3章 14節 mod-container-0001のコードからポイントを読み取ろう</a>」で学習した「隣接する兄弟要素が変化する可能性のある箇所は隣接兄弟要素セレクタでmarginを制御する」というポイントの通り、以下のように隣接兄弟要素セレクタを使ってmarginを制御します。</p><p>以下のように書くのが最も基本的な方法だと思います。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0001 &#123;</span><br><span class="line">  display: flex;</span><br><span class="line">  flex-direction: column;</span><br><span class="line">  .mod-margin-tutorial-0001__item-basic &#123;</span><br><span class="line">    background: #dddddd;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-basic,</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-1,</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-2,</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-3 &#123;</span><br><span class="line">      margin-top: 20px;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-margin-tutorial-0001__item-1 &#123;</span><br><span class="line">    background: #ffdddd;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-basic,</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-2 &#123;</span><br><span class="line">      margin-top: 20px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-1 &#123;</span><br><span class="line">      margin-top: 10px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-3 &#123;</span><br><span class="line">      margin-top: 30px;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-margin-tutorial-0001__item-2 &#123;</span><br><span class="line">    background: #ddffdd;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-basic,</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-1 &#123;</span><br><span class="line">      margin-top: 20px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-2 &#123;</span><br><span class="line">      margin-top: 40px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-3 &#123;</span><br><span class="line">      margin-top: 60px;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-margin-tutorial-0001__item-3 &#123;</span><br><span class="line">    background: #ddddff;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-basic &#123;</span><br><span class="line">      margin-top: 20px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-1 &#123;</span><br><span class="line">      margin-top: 30px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-2 &#123;</span><br><span class="line">      margin-top: 60px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-3 &#123;</span><br><span class="line">      margin-top: 90px;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>参考程度ですが、:not(:first-child)擬似クラスを使用して以下のように書き換えることもできますので、実際のWebサイト制作では、読みやすさや編集効率などを考慮して使い分けると良いと思います。<br>以下のように擬似クラスを使用する場合と、隣接兄弟要素セレクタを使用する場合ではセレクタの詳細度は等しいため、隣接兄弟要素セレクタの方をより下に記述するようにしてください。<br>実際のWebサイト制作では、一番よく使う値がわかってきた段階で:not(:first-child)擬似クラスのセレクタで置き換えるとその後の編集効率が良くなります。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0001 &#123;</span><br><span class="line">  display: flex;</span><br><span class="line">  flex-direction: column;</span><br><span class="line">  .mod-margin-tutorial-0001__item-basic &#123;</span><br><span class="line">    background: #dddddd;</span><br><span class="line">    &amp;:not(:first-child) &#123;</span><br><span class="line">      margin-top: 20px;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-margin-tutorial-0001__item-1 &#123;</span><br><span class="line">    background: #ffdddd;</span><br><span class="line">    &amp;:not(:first-child) &#123;</span><br><span class="line">      margin-top: 20px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-1 &#123;</span><br><span class="line">      margin-top: 10px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-3 &#123;</span><br><span class="line">      margin-top: 30px;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-margin-tutorial-0001__item-2 &#123;</span><br><span class="line">    background: #ddffdd;</span><br><span class="line">    &amp;:not(:first-child) &#123;</span><br><span class="line">      margin-top: 20px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-2 &#123;</span><br><span class="line">      margin-top: 40px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-3 &#123;</span><br><span class="line">      margin-top: 60px;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-margin-tutorial-0001__item-3 &#123;</span><br><span class="line">    background: #ddddff;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-basic &#123;</span><br><span class="line">      margin-top: 20px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-1 &#123;</span><br><span class="line">      margin-top: 30px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-2 &#123;</span><br><span class="line">      margin-top: 60px;</span><br><span class="line">    &#125;</span><br><span class="line">    &amp; + .mod-margin-tutorial-0001__item-3 &#123;</span><br><span class="line">      margin-top: 90px;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="marginの方向について"><a href="#marginの方向について" class="headerlink" title="marginの方向について"></a>marginの方向について</h2><p>この練習問題では、margin-topを使用しました。<br>実際のWebサイト制作でもmargin-topを設定する機会が一番多くなると思います。</p><p>少し補足説明をしておきますが、以下のように <code>flex-direction: column-reverse;</code> を設定した場合は視覚的には下から上へ要素が並べられるため、隣接兄弟要素セレクタでmargin-bottomを設定することになります。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0001 &#123;</span><br><span class="line">  display: flex;</span><br><span class="line">  flex-direction: column-reverse;</span><br><span class="line">  〜略〜</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>以下の場合はmargin-leftを設定することになります。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0001 &#123;</span><br><span class="line">  display: flex;</span><br><span class="line">  flex-direction: row;</span><br><span class="line">  〜略〜</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><p>以下の場合はmargin-rightを設定することになります。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0001 &#123;</span><br><span class="line">  display: flex;</span><br><span class="line">  flex-direction: row-reverse;</span><br><span class="line">  〜略〜</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>このmargin設定についての練習問題をやってみることで、「<a href="/2020/09/23/chapter-03-0004/">第3章 4節 mod-heading-0001のコードからポイントを読み取ろう</a>」で学習した「2つの要素間のmarginを設定するときは後の要素に設定する」というポイントのメリットや、逆に前の要素にmarginを使用してしまうと、隣接要素の組み合わせが変化した場合に困ることになるということがわかったと思います。</p><p>一応補足しておくと、「隣接する2つの要素の組み合わせが変化しない」または「隣接する2つの要素の組み合わせが変化したとしてもmarginは変化しない」ということが決まっている箇所であれば、前の要素にmarginを設定しても問題は起こりませんが、制作や運用の現場では、ときに予期しない変更依頼がくることもあります。</p><p>前の要素にmarginを設定することに大きなメリットが無いのであれば「2つの要素間のmarginを設定するときは後の要素に設定する」という方法を選択しておくと、予期しない変更があったときにも柔軟に対応できるのでお勧めです。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/11/21/chapter-06-0004/">第6章 4節 親要素の始端と終端の余白を可変にする方法についての練習問題の準備をしよう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節のはじめに&quot;&gt;&lt;a href=&quot;#この節のはじめに&quot; class=&quot;headerlink&quot; title=&quot;この節のはじめに&quot;&gt;&lt;/a&gt;この節のはじめに&lt;/h2&gt;&lt;p&gt;モジュールの再利用をするときやプログラムによって表示要素を出し分けるとき隣接する要素の組み合
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第6章 2節 要素間のmargin設定についての練習問題の準備をしよう</title>
    <link href="https://css.nakano-pixy.com/2020/11/17/chapter-06-0002/"/>
    <id>https://css.nakano-pixy.com/2020/11/17/chapter-06-0002/</id>
    <published>2020-11-17T14:54:12.000Z</published>
    <updated>2021-02-23T16:25:19.999Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>この節では、margin設定についての練習問題を進めていくにあたって必要となるファイルの準備を行っていきます。</p><h2 id="margin-tutorial-htmlの作成"><a href="#margin-tutorial-htmlの作成" class="headerlink" title="margin-tutorial.htmlの作成"></a>margin-tutorial.htmlの作成</h2><p>まずは空のHTMLファイルで良いので <code>public/html/margin-tutorial.html</code> を作成してください。<br>コマンドで作成しても良いですし、右クリックなどで開くコンテキストメニューなどからでも良いです。</p><p>第6章のmargin設定についての練習問題では、この <code>public/html/margin-tutorial.html</code> にHTMLを記述していきます。</p><h3 id="Windowsのコマンドプロンプトで作成する場合"><a href="#Windowsのコマンドプロンプトで作成する場合" class="headerlink" title="Windowsのコマンドプロンプトで作成する場合"></a>Windowsのコマンドプロンプトで作成する場合</h3><p>tutorialディレクトリ内で以下のコマンドを実行すると空ファイルが作成できます。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">copy nul public\html\margin-tutorial.html</span><br></pre></td></tr></table></figure><h3 id="Macのターミナルで作成する場合"><a href="#Macのターミナルで作成する場合" class="headerlink" title="Macのターミナルで作成する場合"></a>Macのターミナルで作成する場合</h3><p>tutorialディレクトリ内で以下のコマンドを実行すると空ファイルが作成できます。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">touch public&#x2F;html&#x2F;margin-tutorial.html</span><br></pre></td></tr></table></figure><h2 id="margin-tutorial-htmlの編集"><a href="#margin-tutorial-htmlの編集" class="headerlink" title="margin-tutorial.htmlの編集"></a>margin-tutorial.htmlの編集</h2><p>margin-tutorial.html には以下のように記述します。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br><span class="line">69</span><br><span class="line">70</span><br><span class="line">71</span><br><span class="line">72</span><br><span class="line">73</span><br><span class="line">74</span><br></pre></td><td class="code"><pre><span class="line">&lt;!DOCTYPE html&gt;</span><br><span class="line">&lt;html&gt;</span><br><span class="line">&lt;head&gt;</span><br><span class="line">  &lt;meta http-equiv&#x3D;&quot;X-UA-Compatible&quot; content&#x3D;&quot;IE&#x3D;edge&quot;&gt;</span><br><span class="line">  &lt;title&gt;中野ピク氏流CSS設計&lt;&#x2F;title&gt;</span><br><span class="line">  &lt;meta charset&#x3D;&quot;utf-8&quot;&gt;</span><br><span class="line">  &lt;meta name&#x3D;&quot;viewport&quot; content&#x3D;&quot;width&#x3D;device-width, initial-scale&#x3D;1&quot;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;..&#x2F;stylesheets&#x2F;html5reset-1.6.1.css&quot;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;https:&#x2F;&#x2F;pro.fontawesome.com&#x2F;releases&#x2F;v5.10.0&#x2F;css&#x2F;all.css&quot; integrity&#x3D;&quot;sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p&quot; crossorigin&#x3D;&quot;anonymous&quot;&#x2F;&gt;</span><br><span class="line">  &lt;link rel&#x3D;&quot;stylesheet&quot; href&#x3D;&quot;..&#x2F;stylesheets&#x2F;module-list.css&quot;&gt;</span><br><span class="line">&lt;&#x2F;head&gt;</span><br><span class="line">&lt;body&gt;</span><br><span class="line">&lt;div class&#x3D;&quot;l-body-inner-0001&quot;&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__header-wrapper&quot;&gt;</span><br><span class="line">    &lt;header class&#x3D;&quot;mod-header-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;mod-header-0001__inner&quot;&gt;</span><br><span class="line">        &lt;div class&#x3D;&quot;mod-header-0001__logo-area&quot;&gt;</span><br><span class="line">          &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-header-0001__logo&quot;&gt;</span><br><span class="line">            ロゴ</span><br><span class="line">          &lt;&#x2F;a&gt;</span><br><span class="line">        &lt;&#x2F;div&gt;</span><br><span class="line">        &lt;ul class&#x3D;&quot;mod-header-0001__button-group&quot;&gt;</span><br><span class="line">          &lt;li class&#x3D;&quot;mod-header-0001__login-button-wrapper&quot;&gt;</span><br><span class="line">            &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-button-0001 mod-button-0001--size-sm&quot;&gt;ログイン&lt;&#x2F;a&gt;</span><br><span class="line">          &lt;&#x2F;li&gt;</span><br><span class="line">          &lt;li class&#x3D;&quot;mod-header-0001__sign-up-button-wrapper&quot;&gt;</span><br><span class="line">            &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-button-0001 mod-button-0001--size-sm mod-button-0001--secondary&quot;&gt;新規登録&lt;&#x2F;a&gt;</span><br><span class="line">          &lt;&#x2F;li&gt;</span><br><span class="line">        &lt;&#x2F;ul&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;header&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__contents-wrapper&quot;&gt;</span><br><span class="line">    &lt;div class&#x3D;&quot;l-contents-type-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;l-contents-type-0001__heading-wrapper&quot;&gt;</span><br><span class="line">        &lt;h1 class&#x3D;&quot;mod-heading-0001 mod-heading-0001--lv-1&quot;&gt;margin設定についての練習問題&lt;&#x2F;h1&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;l-contents-type-0001__body&quot;&gt;</span><br><span class="line">        &lt;section class&#x3D;&quot;mod-container-0001&quot;&gt;</span><br><span class="line">          &lt;div class&#x3D;&quot;mod-container-0001__heading-wrapper&quot;&gt;</span><br><span class="line">            &lt;h2 class&#x3D;&quot;mod-heading-0001&quot;&gt;h2セクション&lt;&#x2F;h2&gt;</span><br><span class="line">          &lt;&#x2F;div&gt;</span><br><span class="line">          &lt;div class&#x3D;&quot;mod-container-0001__body&quot;&gt;</span><br><span class="line">            &lt;ul class&#x3D;&quot;mod-margin-tutorial-0001&quot;&gt;</span><br><span class="line">              &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-basic&quot;&gt;</span><br><span class="line">                item-basic</span><br><span class="line">              &lt;&#x2F;li&gt;</span><br><span class="line">              &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-1&quot;&gt;</span><br><span class="line">                item-1</span><br><span class="line">              &lt;&#x2F;li&gt;</span><br><span class="line">              &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-2&quot;&gt;</span><br><span class="line">                item-2</span><br><span class="line">              &lt;&#x2F;li&gt;</span><br><span class="line">              &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-3&quot;&gt;</span><br><span class="line">                item-3</span><br><span class="line">              &lt;&#x2F;li&gt;</span><br><span class="line">            &lt;&#x2F;ul&gt;</span><br><span class="line">          &lt;&#x2F;div&gt;</span><br><span class="line">        &lt;&#x2F;section&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">  &lt;div class&#x3D;&quot;l-body-inner-0001__footer-wrapper&quot;&gt;</span><br><span class="line">    &lt;footer class&#x3D;&quot;mod-footer-0001&quot;&gt;</span><br><span class="line">      &lt;div class&#x3D;&quot;mod-footer-0001__copy-area&quot;&gt;</span><br><span class="line">        &lt;a href&#x3D;&quot;#&quot; class&#x3D;&quot;mod-footer-0001__copy&quot;&gt;</span><br><span class="line">          &amp;copy;中野ピク氏</span><br><span class="line">        &lt;&#x2F;a&gt;</span><br><span class="line">      &lt;&#x2F;div&gt;</span><br><span class="line">    &lt;&#x2F;footer&gt;</span><br><span class="line">  &lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;div&gt;</span><br><span class="line">&lt;&#x2F;body&gt;</span><br><span class="line">&lt;&#x2F;html&gt;</span><br></pre></td></tr></table></figure><p>上記したHTMLのうち、練習問題では、以下の部分だけを使用します。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">&lt;ul class&#x3D;&quot;mod-margin-tutorial-0001&quot;&gt;</span><br><span class="line">  &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-basic&quot;&gt;</span><br><span class="line">    item-basic</span><br><span class="line">  &lt;&#x2F;li&gt;</span><br><span class="line">  &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-1&quot;&gt;</span><br><span class="line">    item-1</span><br><span class="line">  &lt;&#x2F;li&gt;</span><br><span class="line">  &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-2&quot;&gt;</span><br><span class="line">    item-2</span><br><span class="line">  &lt;&#x2F;li&gt;</span><br><span class="line">  &lt;li class&#x3D;&quot;mod-margin-tutorial-0001__item-3&quot;&gt;</span><br><span class="line">    item-3</span><br><span class="line">  &lt;&#x2F;li&gt;</span><br><span class="line">&lt;&#x2F;ul&gt;</span><br></pre></td></tr></table></figure><h2 id="CSSファイルについて"><a href="#CSSファイルについて" class="headerlink" title="CSSファイルについて"></a>CSSファイルについて</h2><p>練習問題用のHTMLファイルなので、専用のCSSファイルは作成せずにmodule-list.cssを読み込むことにします。</p><h2 id="src-scss-module-list-scssの編集"><a href="#src-scss-module-list-scssの編集" class="headerlink" title="src/scss/module-list.scssの編集"></a>src/scss/module-list.scssの編集</h2><p>src/scss/module-list.scssに</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">&#x2F;&#x2F; layouts</span><br><span class="line">@import &quot;.&#x2F;layouts&#x2F;*&quot;;</span><br></pre></td></tr></table></figure><p>を追記して、以下のようにします。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">&#x2F;&#x2F; base</span><br><span class="line">@import &quot;.&#x2F;base&#x2F;global-variables&#x2F;media-queries&#x2F;media-queries.scss&quot;;</span><br><span class="line">@import &quot;.&#x2F;base&#x2F;default.scss&quot;;</span><br><span class="line"></span><br><span class="line">&#x2F;&#x2F; layouts</span><br><span class="line">@import &quot;.&#x2F;layouts&#x2F;*&quot;;</span><br><span class="line"></span><br><span class="line">&#x2F;&#x2F; modules</span><br><span class="line">@import &quot;.&#x2F;modules&#x2F;*&quot;;</span><br></pre></td></tr></table></figure><h2 id="mod-margin-tutorial-0001-scssの作成"><a href="#mod-margin-tutorial-0001-scssの作成" class="headerlink" title="_mod-margin-tutorial-0001.scssの作成"></a>_mod-margin-tutorial-0001.scssの作成</h2><p>src/scss/modules/_mod-margin-tutorial-0001.scss を作成します。</p><h2 id="mod-margin-tutorial-0001-scssの編集"><a href="#mod-margin-tutorial-0001-scssの編集" class="headerlink" title="_mod-margin-tutorial-0001.scssの編集"></a>_mod-margin-tutorial-0001.scssの編集</h2><p>margin設定についての練習問題で使用するモジュールのクラスの基礎となる部分を作成します。</p><p>_mod-margin-tutorial-0001.scssに以下のように記述します。</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line">.mod-margin-tutorial-0001 &#123;</span><br><span class="line">  display: flex;</span><br><span class="line">  flex-direction: column;</span><br><span class="line">  .mod-margin-tutorial-0001__item-basic &#123;</span><br><span class="line">    background: #dddddd;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-margin-tutorial-0001__item-1 &#123;</span><br><span class="line">    background: #ffdddd;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-margin-tutorial-0001__item-2 &#123;</span><br><span class="line">    background: #ddffdd;</span><br><span class="line">  &#125;</span><br><span class="line">  .mod-margin-tutorial-0001__item-3 &#123;</span><br><span class="line">    background: #ddddff;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h2 id="表示確認"><a href="#表示確認" class="headerlink" title="表示確認"></a>表示確認</h2><p><code>public/html/margin-tutorial.html</code> をブラウザで開いて確認してみてください。</p><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>この節では、margin設定についての練習問題で使用するファイルの準備だけを行いました。</p><p>次の節では、実際に手を動かしながら、プログラムによって表示要素の数や順番が変化する動的なページにも対応しやすいmarginの設定方法を学習していきましょう。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/11/20/chapter-06-0003/">第6章 3節 後で困らない要素間のmarginの設定方法を練習問題を通して理解しよう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;この節では、margin設定についての練習問題を進めていくにあたって必要となるファイルの準備を行って
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第6章 1節 marginを制御する方法について復習しよう</title>
    <link href="https://css.nakano-pixy.com/2020/11/13/chapter-06-0001/"/>
    <id>https://css.nakano-pixy.com/2020/11/13/chapter-06-0001/</id>
    <published>2020-11-13T10:46:16.000Z</published>
    <updated>2021-02-21T07:25:55.760Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>これまでmarginを制御する方法についていくつかのポイントを学習してきましたが、比較的わかり難い部分でもあると思いますので、これまで学習してきたポイントについて振り返っていきましょう。</p><h2 id="これまで学習してきたポイントのまとめ"><a href="#これまで学習してきたポイントのまとめ" class="headerlink" title="これまで学習してきたポイントのまとめ"></a>これまで学習してきたポイントのまとめ</h2><h3 id="概要"><a href="#概要" class="headerlink" title="概要"></a>概要</h3><p>これまで学習してきたポイントのうち、marginが関係する項目を箇条書きにすると以下のようになります。</p><ul><li>位置調整のプロパティはBlockクラスに設定しない</li><li>モジュールを入れ子にする場合は親モジュールのElementクラスで子モジュールの幅や表示位置を調整する</li><li>2つの要素間のmarginを設定するときは後の要素に設定する</li><li>隣接する兄弟要素が変化する可能性のある箇所は隣接兄弟要素セレクタでmarginを制御する</li></ul><h3 id="位置調整のプロパティはBlockクラスに設定しない"><a href="#位置調整のプロパティはBlockクラスに設定しない" class="headerlink" title="位置調整のプロパティはBlockクラスに設定しない"></a>位置調整のプロパティはBlockクラスに設定しない</h3><p>これは「<a href="/2020/08/06/chapter-02-0002/">第2章 2節 mod-example-0001の復習をしながらとてもやさしいCSS設計の「最重要ポイント」を学ぼう</a>」で学習した最重要ポイントの一部です。</p><p>そこからmarginに関係するポイントだけを抜粋すると「marginはBlockクラスに設定しない」というポイントがあります。</p><p>実際には、Blockクラスのmarginは、first-childやnot(:first-child)などの擬似クラスを使用したり、隣接兄弟要素セレクタを使用するなどして、条件付きで設定する方が編集効率の面で効果的な場合が多くありますが、第2章の段階では最も簡単で覚えやすい方法として「marginはBlockクラスに設定しない」としました。</p><p>擬似クラスや隣接兄弟要素セレクタを使用して条件付きでmarginを設定する方法については、この第6章のmargin設定についての練習問題をやりながら具体的に学習できるようにしています。</p><h3 id="モジュールを入れ子にする場合は親モジュールのElementクラスで子モジュールの幅や表示位置を調整する"><a href="#モジュールを入れ子にする場合は親モジュールのElementクラスで子モジュールの幅や表示位置を調整する" class="headerlink" title="モジュールを入れ子にする場合は親モジュールのElementクラスで子モジュールの幅や表示位置を調整する"></a>モジュールを入れ子にする場合は親モジュールのElementクラスで子モジュールの幅や表示位置を調整する</h3><p>これは「<a href="/2020/10/09/chapter-03-0008/">第3章 8節 mod-header-0001のコードからポイントを読み取ろう</a>」で学習したポイントの一部です。</p><h3 id="2つの要素間のmarginを設定するときは後の要素に設定する"><a href="#2つの要素間のmarginを設定するときは後の要素に設定する" class="headerlink" title="2つの要素間のmarginを設定するときは後の要素に設定する"></a>2つの要素間のmarginを設定するときは後の要素に設定する</h3><p>これは「<a href="/2020/09/23/chapter-03-0004/">第3章 4節 mod-heading-0001のコードからポイントを読み取ろう</a>」で学習したポイントの一部です。</p><p>「2つの要素間のmarginを設定するときは後の要素に設定する」ということを推奨しています。</p><h3 id="隣接する兄弟要素が変化する可能性のある箇所は隣接兄弟要素セレクタでmarginを制御する"><a href="#隣接する兄弟要素が変化する可能性のある箇所は隣接兄弟要素セレクタでmarginを制御する" class="headerlink" title="隣接する兄弟要素が変化する可能性のある箇所は隣接兄弟要素セレクタでmarginを制御する"></a>隣接する兄弟要素が変化する可能性のある箇所は隣接兄弟要素セレクタでmarginを制御する</h3><p>これは「<a href="/2020/10/30/chapter-03-0014/">第3章 14節 mod-container-0001のコードからポイントを読み取ろう</a>」で学習したポイントの一部です。</p><p>これについては、この第6章のmargin設定についての練習問題をやりながら、より具体的に学習できるようにしています。</p><h3 id="first-childの前やlast-childの後の余白が変化する箇所は擬似クラスセレクタで親要素のpaddingを制御する"><a href="#first-childの前やlast-childの後の余白が変化する箇所は擬似クラスセレクタで親要素のpaddingを制御する" class="headerlink" title="first-childの前やlast-childの後の余白が変化する箇所は擬似クラスセレクタで親要素のpaddingを制御する"></a>first-childの前やlast-childの後の余白が変化する箇所は擬似クラスセレクタで親要素のpaddingを制御する</h3><p>これも「<a href="/2020/10/30/chapter-03-0014/">第3章 14節 mod-container-0001のコードからポイントを読み取ろう</a>」で学習したポイントの一部です。</p><p>これについても、この第6章のmargin設定についての練習問題をやりながら、より具体的に学習できるようにしています。</p><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>marginを制御する方法についてより深く学んでいく前に、これまで学習してきたポイントについて振り返ってきました。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/11/17/chapter-06-0002/">第6章 2節 要素間のmargin設定についての練習問題の準備をしよう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;これまでmarginを制御する方法についていくつかのポイントを学習してきましたが、比較的わかり難い部
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第6章 概要 marginを制御する方法についてより深く理解しよう</title>
    <link href="https://css.nakano-pixy.com/2020/11/13/chapter-06-summary/"/>
    <id>https://css.nakano-pixy.com/2020/11/13/chapter-06-summary/</id>
    <published>2020-11-13T05:26:38.000Z</published>
    <updated>2021-02-12T10:49:42.857Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この章について"><a href="#この章について" class="headerlink" title="この章について"></a>この章について</h2><p>marginは誰もが使用する基本的なプロパティであると同時に、CSS設計をするうえでは、あとで邪魔にならないように設定していくのが難しいプロパティでもあります。</p><p>レイアウトのクラスやモジュールのクラスを適切に組み合わせてページを作成し、長期的にCSSをメンテナンスしていくには、marginを制御する方法についてより深く理解することがとても効果的です。</p><p>marginを制御する方法については、第3章で全て紹介を終えていますが、比較的ややこしい部分でもあると思いますので、この章で復習して知識を正しく定着させていきましょう。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/11/13/chapter-06-0001/">第6章 1節 marginを制御する方法について復習しよう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この章について&quot;&gt;&lt;a href=&quot;#この章について&quot; class=&quot;headerlink&quot; title=&quot;この章について&quot;&gt;&lt;/a&gt;この章について&lt;/h2&gt;&lt;p&gt;marginは誰もが使用する基本的なプロパティであると同時に、CSS設計をするうえでは、あとで邪魔に
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
  <entry>
    <title>第5章 まとめ</title>
    <link href="https://css.nakano-pixy.com/2020/11/12/chapter-05-digest/"/>
    <id>https://css.nakano-pixy.com/2020/11/12/chapter-05-digest/</id>
    <published>2020-11-12T12:29:25.000Z</published>
    <updated>2021-02-06T09:38:54.771Z</updated>
    
    <content type="html"><![CDATA[<h2 id="この節について"><a href="#この節について" class="headerlink" title="この節について"></a>この節について</h2><p>完成したblog-service-top.htmlのコードを元に、l-body-inner-xxxx、l-contents-type-xxxx、mod-container-xxxxについて、補足説明をしていこうと思います。</p><h2 id="bodyタグからh2セクションの外郭-mod-container-xxxx-までの定型化について"><a href="#bodyタグからh2セクションの外郭-mod-container-xxxx-までの定型化について" class="headerlink" title="bodyタグからh2セクションの外郭(mod-container-xxxx)までの定型化について"></a>bodyタグからh2セクションの外郭(mod-container-xxxx)までの定型化について</h2><p>完成したblog-service-top.htmlのHTML文書構造のツリーを簡略化すると以下のように表すことができます。</p><ul><li>body<ul><li>l-body-inner-0001<ul><li>mod-header-0001</li><li>l-contents-type-0001<ul><li>mod-heading-0001（h1見出し）</li><li>mod-container-0001<ul><li>mod-heading-0001（h2見出し）</li><li>mod-media-0001</li></ul></li><li>mod-container-0001<ul><li>mod-heading-0001（h2見出し）</li><li>mod-media-0002</li></ul></li><li>mod-container-0001<ul><li>mod-heading-0001（h2見出し）</li><li>mod-media-0002</li></ul></li></ul></li><li>mod-footer-0001</li></ul></li></ul></li></ul><p>「<a href="/2020/12/18/chapter-04-0007/">第4章 7節 レイアウトのクラスの総合的な特徴や役割について学ぼう</a>」で「必ずbodyタグ、l-body-inner-xxxx、l-contents-type-xxxxの順に入れ子にして、h1セクションを作成する」ということについて説明しました。</p><p>「<a href="/2020/10/30/chapter-03-0014/">第3章 14節 mod-container-0001のコードからポイントを読み取ろう</a>」で「h2のセクションの外郭を担うのがmod-container-xxxxの役割」であるということについて説明しました。</p><p>第4章と第3章で説明したこれらのことが、完成したblog-service-top.htmlのHTML文書のツリーにも当てはまることがわかります。</p><p>この「とてもやさしいCSS設計」では「常にbodyタグ、l-body-inner-xxxx、l-contents-type-xxxx、mod-container-xxxxの順に入れ子にして、その中にh2タグを設置する。」という風に、h2セクションの外郭までのクラス命名規則とページの構造を定型化して捉えられるように設計指針を定めることで、クラスの命名やブロックの分け方などに迷うことを減らし、本質的なスタイリングに集中できるようにしています。</p><h2 id="mod-container-xxxxの中に設置する要素について"><a href="#mod-container-xxxxの中に設置する要素について" class="headerlink" title="mod-container-xxxxの中に設置する要素について"></a>mod-container-xxxxの中に設置する要素について</h2><p>また、「<a href="/2020/10/30/chapter-03-0014/">第3章 14節 mod-container-0001のコードからポイントを読み取ろう</a>」で一度説明したことの繰り返しになりますが、h2セクション内に設置する要素には特にクラス名のルールは設けていません。<br>あまり細部まで厳格なルールを設けると後から変更し難いコードになってしまう側面もあるため、厳格なルールを設けるのはh2セクションの外郭までに留めています。</p><p>第5章までに作成したblog-service-top.htmlでは、mod-container-0001の中にmod-media-0001やmod-media-0002が設置されて、それ以上モジュールが入れ子になることはありませんでしたが、実際のWebサイト制作ではmod-container-xxxxの中に色々なモジュールが多重に入れ子になる場合がほとんどだと思います。</p><p>その場合も特に難しいことはなく、mod-header-0001の中にmod-button-0001を入れ子にしたときと同じく、親モジュールのElementクラスで表示位置や幅を決め、その中に子モジュールを設置する。という方法を繰り返していくだけでコンテンツは上手く配置できると思います。</p><h2 id="ページ作成手順のまとめ"><a href="#ページ作成手順のまとめ" class="headerlink" title="ページ作成手順のまとめ"></a>ページ作成手順のまとめ</h2><p>実際にページを作成するときに、クラス命名規則などを手早く確認できるようにまとめておきます。</p><h3 id="ページを作成する手順の概要"><a href="#ページを作成する手順の概要" class="headerlink" title="ページを作成する手順の概要"></a>ページを作成する手順の概要</h3><ol><li>bodyタグの中に、l-body-inner-0001を設置する</li><li>l-body-inner-0001の中にmod-header-0001を設置する</li><li>l-body-inner-0001の中にmod-footer-0001を設置する</li><li>l-body-inner-0001の中にl-contents-type-0001を設置する</li><li>l-contents-type-0001の中にh1タグとh1に属するコンテンツを設置する</li><li>l-contents-type-0001の中にmod-container-0001を設置する</li><li>mod-container-0001の中に適宜モジュールを入れ子にしていくとページが完成する</li></ol><h3 id="1-bodyタグの中に、l-body-inner-0001を設置する"><a href="#1-bodyタグの中に、l-body-inner-0001を設置する" class="headerlink" title="1. bodyタグの中に、l-body-inner-0001を設置する"></a>1. bodyタグの中に、l-body-inner-0001を設置する</h3><p>bodyタグの中に最初に設置されるクラスが、l-body-inner-0001です。<br>bodyタグの中に最初に設置するレイアウトのクラスの命名規則はl-body-inner-xxxxとするように厳格に定めています。<br>そのElementクラスで、以下の3つの領域に分けます。</p><ul><li>ヘッダー領域</li><li>コンテンツ領域</li><li>フッター領域</li></ul><p>デザインによっては4つ以上の領域に分けることもあります。</p><h3 id="2-l-body-inner-0001の中にmod-header-0001を設置する"><a href="#2-l-body-inner-0001の中にmod-header-0001を設置する" class="headerlink" title="2. l-body-inner-0001の中にmod-header-0001を設置する"></a>2. l-body-inner-0001の中にmod-header-0001を設置する</h3><p>ヘッダー領域内にmod-header-0001を設置します。</p><h3 id="3-l-body-inner-0001の中にmod-footer-0001を設置する"><a href="#3-l-body-inner-0001の中にmod-footer-0001を設置する" class="headerlink" title="3. l-body-inner-0001の中にmod-footer-0001を設置する"></a>3. l-body-inner-0001の中にmod-footer-0001を設置する</h3><p>フッター領域内にmod-footer-0001を設置します。</p><h3 id="4-l-body-inner-0001の中にl-contents-type-0001を設置する"><a href="#4-l-body-inner-0001の中にl-contents-type-0001を設置する" class="headerlink" title="4. l-body-inner-0001の中にl-contents-type-0001を設置する"></a>4. l-body-inner-0001の中にl-contents-type-0001を設置する</h3><p>コンテンツ領域内にl-contents-type-0001を設置します。<br>コンテンツ領域に設置するレイアウトのクラスの命名規則はl-contents-type-xxxxとするように厳格に定めています。<br>そのElementクラスで、以下のことをします。</p><ul><li>水平線を引くようにして、いくつかの領域に分ける</li><li>領域ごとに幅を決めて、センタリングが必要な場合は <code>margin-right: 0;</code> <code>margin-left: 0;</code> などを設定してセンタリングする</li><li>領域内をカラム分けする場合はカラム分けをする</li></ul><p>ここまでが、l-contents-type-xxxxの役割です。</p><h3 id="5-l-contents-type-0001の中にh1タグとh1に属するコンテンツを設置する"><a href="#5-l-contents-type-0001の中にh1タグとh1に属するコンテンツを設置する" class="headerlink" title="5. l-contents-type-0001の中にh1タグとh1に属するコンテンツを設置する"></a>5. l-contents-type-0001の中にh1タグとh1に属するコンテンツを設置する</h3><p>さきほど分けた領域のうち、見出し領域にh1タグを設置します。</p><p>他にもh1セクションに属するコンテンツがある場合は設置し、h1セクションにあたる部分を完成させます。</p><h3 id="6-l-contents-type-0001の中にmod-container-0001を設置する"><a href="#6-l-contents-type-0001の中にmod-container-0001を設置する" class="headerlink" title="6. l-contents-type-0001の中にmod-container-0001を設置する"></a>6. l-contents-type-0001の中にmod-container-0001を設置する</h3><p>さきほど分けた領域のうち、h2セクションにあたる領域にmod-container-0001を設置します。<br>h2セクションの外郭として使用する要素のクラス命名規則はmod-container-xxxxとするように厳格に定めています。</p><p>bodyタグ、l-body-inner-xxxx、l-contents-type-xxxx、mod-container-xxxx の順に入れ子にします。  </p><p>bodyタグ、l-body-inner-xxxx、l-contents-type-xxxx までがh1セクション、mod-container-xxxxからはh2セクションとしてコーディングします。</p><h3 id="7-mod-container-0001の中に適宜モジュールを入れ子にしていくとページが完成する"><a href="#7-mod-container-0001の中に適宜モジュールを入れ子にしていくとページが完成する" class="headerlink" title="7. mod-container-0001の中に適宜モジュールを入れ子にしていくとページが完成する"></a>7. mod-container-0001の中に適宜モジュールを入れ子にしていくとページが完成する</h3><p>h2セクション内に適宜モジュールを入れ子にしていき、隣接兄弟要素セレクタやfirst-child、last-childなどで余白調整をしていくとページが完成します。</p><h2 id="この節のおわりに"><a href="#この節のおわりに" class="headerlink" title="この節のおわりに"></a>この節のおわりに</h2><p>いよいよページの作成まで完了し、レイアウトのクラスについての説明を終えました。</p><p>「<a href="/2020/10/23/chapter-03-digest/">第3章 - まとめ</a>」や「<a href="/2020/12/15/chapter-04-digest/">第4章 まとめ</a>」に書いた項目について、ご自身にとって思い出しやすい表現に変えて、すぐに確認できる場所に書き出しておいてから、実際にコーディングをするときにそれらのポイントを確認しながらコーディングしていくと良いかもしれません。</p><p>最初のうちは思い出すのに苦労するかもしれませんが、継続していくうちにパターンが身についてあまり頭を使わなくても自然とできるようになってくると思います。</p><p>チュートリアルを最後まで終えたときに、まだ身についていないと感じた場合は、2章から何回か繰り返してみるのも良いと思います。</p><p>すぐにはできなくとも、焦らずに学習と実践を繰り返し行なってみてください。</p><h2 id="続きはこちら"><a href="#続きはこちら" class="headerlink" title="続きはこちら"></a>続きはこちら</h2><ul><li><a href="/2020/11/13/chapter-06-summary/">第6章 概要 marginを制御する方法についてより深く理解しよう</a></li></ul><h2 id="とてもやさしいCSS設計チュートリアルの目次へ戻る"><a href="#とてもやさしいCSS設計チュートリアルの目次へ戻る" class="headerlink" title="とてもやさしいCSS設計チュートリアルの目次へ戻る"></a>とてもやさしいCSS設計チュートリアルの目次へ戻る</h2><ul><li><a href="/">とてもやさしいCSS設計チュートリアルの目次へ戻る</a></li></ul>]]></content>
    
    <summary type="html">
    
      
      
        &lt;h2 id=&quot;この節について&quot;&gt;&lt;a href=&quot;#この節について&quot; class=&quot;headerlink&quot; title=&quot;この節について&quot;&gt;&lt;/a&gt;この節について&lt;/h2&gt;&lt;p&gt;完成したblog-service-top.htmlのコードを元に、l-body-inner-xxxx
      
    
    </summary>
    
    
    
      <category term="ピクCSS" scheme="https://css.nakano-pixy.com/tags/%E3%83%94%E3%82%AFCSS/"/>
    
      <category term="CSS設計入門にも最適！BEMとSCSSで作って学ぶ！とてもやさしいCSS設計チュートリアル" scheme="https://css.nakano-pixy.com/tags/CSS%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80%E3%81%AB%E3%82%82%E6%9C%80%E9%81%A9%EF%BC%81BEM%E3%81%A8SCSS%E3%81%A7%E4%BD%9C%E3%81%A3%E3%81%A6%E5%AD%A6%E3%81%B6%EF%BC%81%E3%81%A8%E3%81%A6%E3%82%82%E3%82%84%E3%81%95%E3%81%97%E3%81%84CSS%E8%A8%AD%E8%A8%88%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/"/>
    
  </entry>
  
</feed>
