Reputation: 17512
What's the difference between container and wrapper? And what is meant by each?
Upvotes: 70
Views: 64753
Reputation: 4441
I like to throw in something here:
With current CSS standards and best practices, usually you have a container element that has the display: grid
property. This div
contains all the columns
and rows
of the layout. It also has a viewport wide background
color, border
and shadow
. These properties are displayed using the entire width of the browser.
Now you need to add the content. You have to create another div, this a max-width: 1256px
and now you give the margin: 0 auto
and width: 100%
.
So the structure will be:
<section class="container">
<div class="wrapper">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</section>
This breaks the previous answer's logic of a container
having many elements and a wrapper
just one, but I've found this approach to be effective when building sections that have specific separate styling from other sections like shadows and borders.
Therefore, in some situations:
A container
is for styling the entire width of a section. A wrapper
is for styling and centering the max-width
content inside it.
Upvotes: 6
Reputation: 2678
According to this answer:
In programming languages the word container is generally used for structures that can contain more than one element.
A wrapper instead is something that wraps around a single object to provide more functionalities and interfaces to it.
This definition matches with meaning of words and it's useful for HTML structures like:
<ul class="items-container">
<li class="item-wrapper">
<div class="item">...</div>
</li>
<li class="item-wrapper">
<div class="item">...</div>
</li>
<li class="item-wrapper">
<div class="item">...</div>
</li>
<li class="item-wrapper">
<div class="item">...</div>
</li>
<li class="item-wrapper">
<div class="item">...</div>
</li>
</ul>
Upvotes: 211
Reputation: 821
There can be a difference, if you choose to give'em one. Actually it makes sense to have two names for a container/wrapper, as they have different functions:
1) the standard wrap we think of has a width of let's say 960px or 60em and centers its content on the screen (margin:auto)
2) there's another wrap - the one that is in some cases necessary to implement a sticky footer. imo the sticky footer with the best browser support (no js and at least quite clean) is this one: http://ryanfait.com/sticky-footer/
apropos sticky: sticking to existing naming conventions, I like the one of apppie, which clearly distinguishes between wrap 1 (called container) and wrap 2 (called wrapper). see: http://www.apppie.org/pages/approach/naming.html
there might be other conventions. as said, that you distinguish makes sense - how is up to you.
Upvotes: 2
Reputation: 22438
There is no difference between them.
It's just what you like to call the <div>
that, often, contains all content of a page
Upvotes: 9