title: Why the child element does not take margin relative to parent
body: <p>I am providing the child <code>&lt;p&gt;</code> inside a <code>&lt;div&gt;</code> element a margin, but it is shifting the div element itself. I want to shift down the paragraph to an arbitrary value. I know we can provide padding to parent element, but what about it?</p>
  
  <p>Here, take this example code... Try changing the <code>.square p</code> margin property. </p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-css lang-css prettyprint-override"><code>*{
    margin: 20px auto;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
  }
  
  .square {
    width: 100px;
    height: 100px;
    background: #f56;
  } .square p {
    margin: 50px auto;
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;div class="square"&gt;&lt;p&gt;Hi&lt;/p&gt;&lt;/div&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <p>Shouldn't it be relative to the parent element?</p>