In this post, we have talked about the most important css property: positon. Besides that, it’ll be a big mistake if we forget to mention about have 1 more css property which is also very important in our frontend development, that is css display. Let’s come with me and talk about it

What is the purpose of css display

CSS displaywill define how your HTML element take place in the view. You want your element takes the full width of the parent element, or adapt the width of the content inside, or even with custom size for your element, CSS displayis all you want to use in that scenarios.

What are the available value for css display

There are many available values come up with css display such as: block, inline, inline-block, flex, table ...In this post, we are going to mainly focus on 3 most important values: block, inline and inline-block

What is display: block

With css display:blockwill make your element take the full width of the parent element doesn’t matter how wide the contetn inside. It’s usually used when we want to make our element stand alone, no other element sit next to the right or next to the left of it. In consequence, this css will make our element more distinguishable from others as well as more noticeable. For that reason, display:blockis the default value for the following element:

  • <div>
  • <h1> – <h6>
  • <p>
  • <form>
  • <header>
  • <footer>
  • <section>

Example

See the Pen CSS display: block by hieu (@phuchieuct93abc) on CodePen.

As you can see in the above sample. Every block element is displayed under the previous sibling element, not on the left, not on the right, only on the bottom.

One interesting thing here is the div element. Even it’s defined with a custom width (not full parent width), it’s still displayed in the whole line, because the browser will add margin for block element if it comes up with the custom size css to make sure no one can sit in the same line with block element.

Keep in mind that with with blockelements, css margin-righthas no effect. Except that, we’re freely to custom the size blockelement by css width, height, margin-top, margin-bottom and margin-left.

What should we do if we want to multiple element sit in the same line. This scenarios, we will to use display:inline.

What is display: inline

Unlike display:blockmake one element stand alone in the whole line, display:inlinemake us able to put multiple elements in the same line.

display:blockis the default value for the following element:

  • <span>
  • <a>
  • <img>

See the Pen CSS display: inline by hieu (@phuchieuct93abc) on CodePen.

However, display:inlinewill ignore our custom size (by css width, height and margin). Inline elements always fit the size of the content inside, no more no less. Simply, you can’t change the size of the inline element except changing the size of the content inside. Only use display:inlineonly when you’re sure that you want that element fit the content size and no custom size at all.

What about if we want to put multiple elements in the same line with our own custom size? display:inline-blockcomes to our hand

What is display: inline-block

display:inline-blockis the combination of display:inline(can put multiple element in the same line)and display:block(can change the size of element by css width, height,margin).

Firstly, we can put multiple inline-block elements in the same line. Next we can custom the size for every single element to make it matches our need. We can define the width, the height, margin for those elements freely.

See the Pen CSS display: inline-block by hieu (@phuchieuct93abc) on CodePen.

Wrap up

Alongside with CSS position, displayin one of the most important CSS property help us to develop attractive web applications. The only way to master css displayis we need to understand how it works and how to use it properly. Hope you learned something and see you in the next post. Don’t forget to put your comment below

Reference:

https://dev.to/phuchieu/css-display-property-4nai

One Comment

  1. Pingback: Grid layout in 10 minutes - Part 1 » Frontend development

Leave a Reply

Your email address will not be published.