Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Understanding the CSS box model

From: Dreamweaver CS3 Beyond the Basics

Video: Understanding the CSS box model

Before we can begin positioning elements, we need to understand what the box model is and how it works. Every element, even in-line level elements, are considered to be contained within their box. So when you are a laying a page out, if you want a sidebar, for example, and the sidebar is going to be of a specific width and maybe it's going to have a background graphic or a background color to it, and you don't want the elements butting right up against it, you can actually use these box model properties to control the width, the height, the distance of interior elements away from them, or from the edges, and those types of element properties. So if you look at the slide, at the very top of it you can see that we just have a paragraph and it says the paragraph, this is element content. Well, below that, this has been styled and I want you to just for a moment imagine that the pink and the green weren't there and it is just the yellow box with a border around it.

Understanding the CSS box model

Before we can begin positioning elements, we need to understand what the box model is and how it works. Every element, even in-line level elements, are considered to be contained within their box. So when you are a laying a page out, if you want a sidebar, for example, and the sidebar is going to be of a specific width and maybe it's going to have a background graphic or a background color to it, and you don't want the elements butting right up against it, you can actually use these box model properties to control the width, the height, the distance of interior elements away from them, or from the edges, and those types of element properties. So if you look at the slide, at the very top of it you can see that we just have a paragraph and it says the paragraph, this is element content. Well, below that, this has been styled and I want you to just for a moment imagine that the pink and the green weren't there and it is just the yellow box with a border around it.

Essentially, the box model properties consist of margins, borders, backgrounds, content, and padding. Now, the margin holds other elements away from this element and if you are used to using tables, you could use the metaphor of cell spacing, because margins push other elements away from them. So, it's not actually considered part of the width of the element, but it does help us to hold other elements away from this one. Now, the border will be at the very edge of the container's content. So, the border goes all the way around the edge and it can be as thick or as thin as you want. So, you can actually tell it to have no border, which is the default for almost every element, or you could specifically make sure it has a border. After that, the little green section you are seeing there is padding and you can specify exactly how wide you want that padding to be and that will hold off the content itself from the edge of the border. So, if you don't want your text butting right up against the edge of your box, you just give it a little bit of padding and it sort of pushes it away from the edge. Now, padding actually goes into defining the width of the element. So if you define a sidebar DIV tag, for example, and you make it 250 pixels wide and you give it 20 pixels worth of padding all the way around, you have actually got a sidebar that's 290 pixels wide, because 20 on one side, 20 on the other side, and 250 pixels in the middle. So you have to keep that in mind if you are going to be using padding.

Now we also have a background and that background can be either a color, or it could be an image, or it could be both if you would like. By default, most elements have a transparent background, but if you want it to have a solid yellow color as we have here, or a background graphic, or maybe even a combination of them, you could define a background property to control that. And then finally the content itself just floats inside that box once you have given it other dimensions. So understanding the box model is going to make it a lot easier when we layout our content, because we can take these Div tags or structuring, assign them width or even a height value, although we try not to do height, but you would assign them a width value and a background and a border and then position them exactly where you want them. So we will talk about positioning next, but right now we are going to go back in the Dreamweaver, and we are going to create a couple of elements on a page and then we are going to modify these box model properties so you can see how they effect the elements and the contents inside the elements. So, we are back in Dreamweaver and we are just going to start off with the blank file, so if you are following along with us, just go ahead and open up a new blank HTML document and we are just going to put a couple of elements on the page.

Because we are doing a box model, we could really use any block level element to do what we are about to do. Paragraphs or headings will work just fine. I am just going to go ahead and stick with the generic DIV element. So, I will just use a DIV and let us go ahead and I will give the first DIV an ID of boxOne. And I will just type in content for box1 and remember to close that DIV tag. And then open up another DIV tag and we will give that an ID of boxTwo and I will type in Content for box2. Remember to close that DIV tag as well.

So we will save this and I am just going to switch over to Design View. You could stay in screen mode if you want to, but we are pretty much done with editing the code. We just want to see how affecting the box model properties affects the objects that we have on the stage now. Now, going ahead and giving these IDs of boxOne and boxTwo, if you remember, we're back in Code view once again, it's boxOne, boxTwo. That allows us to create descendant selectors that are going to target just those elements. So, I am going to go ahead and go over to my CSS styles, and I will just go ahead and create a new CSS rule and I am going to go ahead-- and you will notice that it actually that it actually picked up the name of boxTwo, which is nice. I am going to change that, however, to boxOne. So, whatever element you are inside of, it tries to populate the selector type with that particular element.

So I am going to click Advanced, because we are doing an ID selector, #boxOne. So, whenever we are doing ID selectors, we have to put the hash mark or the pound symbol on the front there. And capitalization is very important. So, I used a lower case 'b' for the box and then 'One.' I used the Camel naming convention. So, I am going to stick with boxOne there and I'll say it's document only and I'll go and click OK. All right, now let's talk about some of our properties. Now first off we know that we can have margins and padding, and that sort of thing. So, from the Categories, I am going to go to our Box category.

And notice that we have settings here for Padding and we have for Margins and we can set individual values for top, right, bottom and left, or we can just set one padding value for all of them, or one margin value for the whole thing. What we are doing right now, that's exactly what I am going to do. I am going to go and do 10 pixels worth of padding and I will do 10 pixels worth of margin. I'll also go ahead and specify a width of say 200 pixels. Remember that in addition to that we have borders and backgrounds. So, I will click on the Border category and I will just do with the border the same all the way around and I will choose a solid border. And we will just do a one-pixel border and go ahead and choose any color that you would like.

I am going to go ahead and choose a bright red. I am also going to give this a background color, so we can see the actual element itself. So I am going to click on Background and for my background color, I will go ahead and just click that and I will choose sort of a lighter color, maybe a light yellow, and I will click OK. Notice exactly what happened to boxOne and I will expand our styles out here in the CSS Styles palette box so we can actually see this and I'll click on the #boxOne style so that we can see the properties for that. And I will just have to expand my CSS Styles palette out a little bit more in order to do that, so you may need to resize yours as well. So, we can see that it has got our background color, it has a border around it, and we have margins and padding now. The padding gives us the space just to the left of the C, all the way to the edge of the border of itself. The background color knows it is extending all the way through background of the object all the way to the border. Border gives us that nice, red border around it. Notice that we have a little bit of distance now between boxOne and boxTwo, and the reason we have that distance is because we also gave it 10 pixels worth of margin and we are going to find out something very important about margin here in just a second. Let's go ahead and create our second rule, and that one will be boxTwo. So I am just going to change boxOne to boxTwo, and click OK. Now I could go ahead and give it the exact same value, but where would the fun be in that? Let's change things up a little bit. I will click on Background, and just so we can easily identify it, I am going to give it a separate background color, maybe a light lavender or something like that. Just keep it light. And I will click on the Border category, and once again, I am just going to go ahead and give it a solid border of one pixel, and again, I will just choose a darker color this time around.

Now, I am going to click on my Box category here and I am going to go ahead and set my Width to 400 pixels. So, this is going to be twice as wide. For margin, I will go ahead and stick with 10 pixels worth of margin, and for padding, I am going to go ahead and do 20 pixels worth of padding. I am going to click OK. The second box restyles as well. Now, let's point out the obvious. We have got our background color, we have got our border, and we have got twice the distance between the content and the box number 2, than we do for the first box and that's because we are using 20 pixels worth of padding, rather than 10 pixels. Notice also that our 20 pixels worth of padding is going to calculate into the final width of our content. It's when we start looking at the margins that it gets kind of interesting. We have got 10 pixels of margin all the way around our first element, and we have 10 pixels of margin all the way around the second element. So, you would obviously assume that you are going to get 20 pixels of distance between the two of them, but that's not what happens. You will notice that we still only have 10 pixels worth of padding between the two of them, and that's because of a very important concept of margin collapse. Vertical margins collapse when they meet each other.

So, what you are looking at is you are looking at one having 10 pixels worth of margin, the other having 10 pixels worth of margin, they collapse down, and it accepts the higher value of the two. And since they are both the same, we simply get 10 pixels worth of margin around them. Notice if I go to boxTwo and I increase the margin to 20 pixels, and I can just change the value right there in the CSS Styles palette. Notice that now I actually get 20 pixels away from the edge of the stage, or the screen, but I also get 20 pixels away from the top element. And we don't get 30; we get 20 because vertical margins collapse.

Horizontal margins do not. Now, vertical margin collapse may seem sort of confusing at first and you may kind of wonder why that is, but think about all the default elements that you have in a regular HTML page. You have paragraphs, you have headings, you have tables, you have forms, all those block level elements, and everything a browser gives them a default margin value. So, your paragraphs come with a specific margin value on them. If the vertical margins didn't collapse, your paragraph spacing would actually be twice what it was normally. So, having them collapse actually helps your pages format better, but when you are laying your page out, you have got to keep that in mind.

So now we have reviewed the box model. In our next movie, we'll look at controlling the positioning of our elements, using both absolute and relative positioning.

Show transcript

This video is part of

Image for Dreamweaver CS3 Beyond the Basics
Dreamweaver CS3 Beyond the Basics

102 video lessons · 38722 viewers

James Williamson
Author

 
Expand all | Collapse all
  1. 2m 3s
    1. Welcome
      1m 17s
    2. Using the exercise files
      46s
  2. 1h 23m
    1. Reviewing the Coding toolbar
      8m 42s
    2. Customizing the Coding toolbar
      9m 52s
    3. Taking advantage of Code Hinting
      7m 20s
    4. Using snippets and shortcuts
      11m 10s
    5. Using the Quick Tag Editor
      5m 18s
    6. Using Find and Replace
      9m 50s
    7. Regular expressions
      5m 39s
    8. Using Bridge with Dreamweaver CS3
      8m 28s
    9. Round-trip editing with Photoshop CS3
      3m 40s
    10. Leveraging image variables in Photoshop CS3
      7m 32s
    11. Integrating external variables into your workflow
      6m 16s
  3. 37m 26s
    1. Understanding the CSS Styles panel
      7m 59s
    2. Understanding the Cascade
      5m 50s
    3. Understanding Inheritance
      5m 8s
    4. Understanding Specificity
      7m 5s
    5. Managing CSS styles
      5m 4s
    6. Using Design-Time style sheets
      6m 20s
  4. 2h 19m
    1. Using the new CSS template pages
      5m 59s
    2. Understanding DIV tag structure and layout
      12m 0s
    3. Understanding the CSS box model
      10m 0s
    4. Using absolute and relative positioning
      8m 35s
    5. Understanding floating elements
      7m 9s
    6. Clearing floats
      7m 19s
    7. Using floats to control page layout
      3m 45s
    8. Building structure and assigning IDs
      10m 19s
    9. Applying basic styling to structured content
      11m 14s
    10. Positioning container elements
      11m 4s
    11. Enhancing layouts with background graphics
      11m 48s
    12. Creating faux columns with background graphics
      8m 55s
    13. Creating rounded corners with background graphics
      9m 17s
    14. Building navigation with CSS
      16m 57s
    15. Using Dreamweaver's Browser Check feature
      5m 31s
  5. 53m 22s
    1. Creating properly structured forms
      6m 30s
    2. Creating accessible forms
      6m 41s
    3. Using CSS to lay out form structure
      7m 40s
    4. Creating vertical columns for form elements
      7m 48s
    5. Adding user feedback
      5m 52s
    6. Applying advanced styling to forms
      8m 11s
    7. Client-side form validation
      4m 17s
    8. Validating forms with the Spry Validation tools
      6m 23s
  6. 1h 20m
    1. Understanding the Spry framework
      3m 43s
    2. Defining a data source for use in Spry
      3m 56s
    3. Creating a Spry table
      8m 8s
    4. Using the Spry widgets
      8m 11s
    5. Connecting various data sets
      4m 50s
    6. Understanding Spry widget structures
      7m 1s
    7. Applying custom styles to Spry widgets
      6m 24s
    8. Applying additional custom styles to Spry widgets
      8m 46s
    9. Controlling Spry widget behaviors with JavaScript
      6m 0s
    10. Controlling Spry widget animations with JavaScript
      9m 31s
    11. Creating effects with Spry behaviors
      4m 42s
    12. Hand-coding Spry
      9m 11s
  7. 1h 11m
    1. Creating a base template
      8m 6s
    2. Creating editable attributes
      6m 26s
    3. Creating a new page from a template
      7m 42s
    4. Applying a template to an existing page
      4m 36s
    5. Creating nested templates
      5m 24s
    6. Using repeating regions
      6m 34s
    7. Creating editable and non-editable optional regions
      6m 0s
    8. Using template parameters
      7m 26s
    9. Using template expressions
      9m 59s
    10. Using conditional template expressions
      8m 54s
  8. 54m 40s
    1. Examining XML structure
      2m 44s
    2. Creating an XML document
      9m 9s
    3. Using the CDATA structure
      5m 7s
    4. Creating an XSLT file
      4m 33s
    5. Binding data from an XML to an XSLT document
      5m 6s
    6. Inserting repeating regions into an XSL document
      5m 16s
    7. Creating a client-side XSL transformation
      2m 52s
    8. Styling a remote RSS feed
      7m 29s
    9. Creating a server-side XSL transformation
      5m 31s
    10. Writing XSL expressions
      6m 53s
  9. 1h 2m
    1. Overview of building dynamic websites
      1m 35s
    2. Installing PHP, MySQL, and Apache on Mac
      3m 22s
    3. Installing PHP, MySQL, and Apache on Windows
      3m 54s
    4. Creating a MySQL database
      3m 16s
    5. Defining a testing server and database bindings
      6m 14s
    6. Creating a database recordset
      4m 35s
    7. Adding dynamic content to the page
      5m 14s
    8. Creating repeating regions of dynamic content
      7m 6s
    9. Filtering database records
      7m 39s
    10. Using the Live Preview
      10m 22s
    11. Passing URL parameters
      4m 23s
    12. Dynamically generating links
      5m 18s
  10. 57m 9s
    1. Understanding behaviors
      5m 16s
    2. Installing additional behaviors
      3m 39s
    3. Planning to create a custom behavior
      3m 42s
    4. Examining existing behaviors
      5m 32s
    5. Building a behavior function
      7m 23s
    6. Creating an Action file
      6m 48s
    7. Enabling behavior functions
      9m 1s
    8. Initializing the user interface for a behavior
      3m 9s
    9. Loading behaviors in Dreamweaver
      6m 47s
    10. Testing and debugging behaviors
      5m 52s
  11. 27m 12s
    1. Running reports
      7m 41s
    2. Checking and validating links
      3m 40s
    3. Using cloaking
      5m 42s
    4. Using Check In/Check Out
      4m 3s
    5. Using Design Notes
      6m 6s
  12. 20s
    1. Goodbye
      20s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold
Share a link to this course

What are exercise files?

Exercise files are the same files the author uses in the course. Save time by downloading the author's files instead of setting up your own files, and learn by following along with the instructor.

Can I take this course without the exercise files?

Yes! If you decide you would like the exercise files later, you can upgrade to a premium account any time.

Become a member Download sample files See plans and pricing

Please wait... please wait ...
Upgrade to get access to exercise files.

Exercise files video

How to use exercise files.

Learn by watching, listening, and doing, Exercise files are the same files the author uses in the course, so you can download them and follow along Premium memberships include access to all exercise files in the library.


Exercise files

Exercise files video

How to use exercise files.

For additional information on downloading and using exercise files, watch our instructional video or read the instructions in the FAQ.

This course includes free exercise files, so you can practice while you watch the course. To access all the exercise files in our library, become a Premium Member.

Join now "Already a member? Log in

Are you sure you want to mark all the videos in this course as unwatched?

This will not affect your course history, your reports, or your certificates of completion for this course.


Mark all as unwatched Cancel

Congratulations

You have completed Dreamweaver CS3 Beyond the Basics.

Return to your organization's learning portal to continue training, or close this page.


OK
Become a member to add this course to a playlist

Join today and get unlimited access to the entire library of video courses—and create as many playlists as you like.

Get started

Already a member?

Become a member to like this course.

Join today and get unlimited access to the entire library of video courses.

Get started

Already a member?

Exercise files

Learn by watching, listening, and doing! Exercise files are the same files the author uses in the course, so you can download them and follow along. Exercise files are available with all Premium memberships. Learn more

Get started

Already a Premium member?

Exercise files video

How to use exercise files.

Ask a question

Thanks for contacting us.
You’ll hear from our Customer Service team within 24 hours.

Please enter the text shown below:

The classic layout automatically defaults to the latest Flash Player.

To choose a different player, hold the cursor over your name at the top right of any lynda.com page and choose Site preferencesfrom the dropdown menu.

Continue to classic layout Stay on new layout
Exercise files

Access exercise files from a button right under the course name.

Mark videos as unwatched

Remove icons showing you already watched videos if you want to start over.

Control your viewing experience

Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.

Interactive transcripts

Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.

Are you sure you want to delete this note?

No

Your file was successfully uploaded.

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.