Join James Williamson for an in-depth discussion in this video Understanding element selectors, part of Dreamweaver CS5 Essential Training.
Now that we have a better understanding of how Dreamweaver works with and creates CSS, it's time to focus on learning the CSS itself. Now we won't be able to cover every detail of CSS. It's a really, really big subject, but we're going to cover the basics, so that this foundation can carry you for the remainder of the title. I recommend checking out the other CSS titles on the lynda.com Online Training Library for a more thorough exploration of CSS. Now the most basic and fundamental Selector in CSS is the Element Selector.
Put simply, the Element Selector allows us to restyle an element based on its tag. To restyle our paragraphs, for example, we simply use the P Selector. Now there are pros and cons to using Element Selectors. One of the things that make them so powerful is that by using them, we're affecting all of those elements, not just specific ones. That means that restyling the p tag changes all paragraphs site-wide. This can save a tremendous amount of time, but rarely do we need all paragraphs to look exactly the same. Thankfully, to deal with that, we have additional Selector types that can help us out.
Before we move on to those, let's practice creating a few Element Selectors. So I've opened up the element_selectors.htm file. We have a couple of elements on the page that we want to style. We have a heading 1 tag, we have some paragraphs, and we have another heading 1 tag a little further down the page. Well, one of the things that I want to explore, in addition to creating paragraph tags, is the concept of inheritance. It's certainly easier to understand once you see it. So let's just go ahead and write our first Element Selector. I'm going to go over to my CSS Styles panel.
The little page icon down here in the lower right-hand corner of it with a plus symbol is New CSS Rule. I'm going to go ahead and click. Now the New CSS Rule dialog box allows us to write styles based on which Selector Type we're looking for. Notice, for example, at the very top we have a pulldown menu that allows us to create Class selectors, ID selectors, Tag, and Compound selectors. Well, Element selectors are often referred to as Tag selectors. So that's the one I want to choose for what we're doing here. So I'm just going to choose Tag Selector.
Now you may have noticed something different come up in this little pulldown menu below that. I had heading 1 come up. You may see a paragraph or some other element. Whatever you're currently selected on, or whatever you're focused on in Dreamweaver, that element is going to show up. Actually, I'm going to style a tag that's much higher up in the page order. I'm going to style the body tag. Now I could either type that in, or I can grab it from the pulldown menu. You can go through a list of all your available tags and choose it that way. Now the body tag is the parent tag around all visual elements.
So by writing a style for the body tag, we're going to use the concept of inheritance. Inheritance says that any property placed on a parent tag is inherited by its child tags. What that means is if we applied a color, for example, to a body tag or a font-size or a font-family, then everything inside of it would be that family, the size and that color. Now that sounds great, but it can a little tricky because not all properties are going to inherit. They're not all going to inherit exactly the same way.
So it takes a little getting used to before you feel like you're fully in control of inheritance. Now I can define this Rule in an external style sheet, or I can embed them in this document. For this particular lesson, we're going to do it in This document only. That will embed the styles on this page, meaning they will only apply to this document. I'm going to go ahead and click OK. From the CSS Rule Definition dialog box that comes up, the first option I'm going to change here is some typography options. So I'm going to stay right within this Category.
For Font-family, I'm going to grab the pulldown menu there. I'm going to choose Georgia, Times New Roman, Times, and Serif. You might be wondering why we've chosen five fonts there. This is something called a font stack. In the chapter on controlling typography with CSS, I'll talk about font stacks in more detail. For Font-size, I'm going to choose 100%. Now again, I typed that in, 100%, but you can also use this unit of measurement pulldown menu beside it to choose from all these available units of measurements: pixels, points, ems.
We typically use percentage for the body tag, because what that will do is it sets the entire page's Font- size relative to the user agent. So if a browser has its default Font- size set to 16 pixels, that's what our default Font-size is going to be. We're just saying 100%. It also helps us get around some tricky rendering errors in Internet Explorer. So it's a good idea to go ahead and use percentages when you're working with the body tag. Now for Color, I'm just going to go ahead and #666, which is a dark gray. So now we're going to have Georgia, Times New Roman, Times, or Serif as our Font.
Our Font-size is going to be 100% of whatever the user agent's default Font-size is going to be. Then for Color, we're using sort of a dark gray. I'm going to go ahead and click OK, and notice how everything on my page changed. The headings and the paragraphs, they all inherited those values. So our headings are 100% of the size that they would normally be. Our paragraphs are 100% of the size that they would normally be. They're all using the Font Georgia. They're all that dark gray. So now we get a little bit more specific by targeting those specific elements that are still on the page.
In this case, we're going to do the heading 1. So I'll go right back to my CSS Styles panel. I'll click on New CSS Rule. Once again, I'm going to Tag for my Selector Type. Once again, I'm going to choose h1 or type in h1 for my Selector Name. So all you have to know is the name of the tag that you're controlling, and type in right there after you've chosen Tag from the pulldown menu. Once again, for Rule Definition, make sure it says This document only, and click OK. Now here, we're going to make some changes. Maybe I would like my document site- wide to be in Georgia, but for my headings, I might want those to be in a sans-serif Font.
So I can actually overwrite what the body tag is doing by telling the heading one tags, "No, no, no. You need to be Arial." So go ahead and grab your font- family pulldown menu, and choose Arial. Currently, right now, we're telling your headings to be their default size, because the body tag just basically said, "Be 100% of what you would normally be." But if you want to take more control over that, you can. For a Font-size, for my headings, for example, I'm going to tell it to be 1.2. Then I'm just going to type in em for ems. If you hit Tab, you can see that in the pulldown menu there.
So we're going to discuss ems in more detail when we talk about units of measurement in just a little bit. Just understand that ems are a relative unit of measurement that, once again, is basically telling a heading, "Be relative to the size that you would normally be in the user agent." We're also going to change the color of our headings. So I'm going to go right in the Color dialog box and type in #600, which is sort of a deep burgundy color. I'm going to go ahead and click OK. Now take a look at what happens to my headings. They shrink down a little bit. They change color, and they change fonts.
So we're still inheriting some of the things from the body tag, but for the most part, we almost did a total overwrite with our heading 1 styles. Now the whole concept of using inheritance means that you don't have to write a lot of styles for your child tags. So we're going to write a style for our paragraph selector, but we're really not going to have to do a lot with it. So I'm going to go right over on my CSS Styles panel, choose New CSS Rule. Once again, I'm going to choose Tag from the pulldown menu. I'm just going to type in p, for paragraph. Make sure it's referring to This document only and click OK. Now our paragraphs are the font we need them to be, and they're the color we need them to be. They're inheriting that from the body tag.
So all we need to do is change the size. So I'm going to make the size 1.2 ems, e-m, and go ahead and click OK. Now our headings are 1.2 ems and our paragraphs are 1.2 ems as well. They're pretty much the same size. That's kind of cool. You get to take control over the sizing of elements. As a matter of fact, if you really felt like it, you can make your paragraphs larger than your headings. It's really up to you, when you're working with CSS. If you've taken a moment to scan and read the text that's on the page, you can see that some of the text needs styling that doesn't match what we've just done.
If we were limited to just Tag or Element selectors, we wouldn't be able to achieve this. Now thankfully, we have additional selectors available to us. We'll use one of those, the Class Selector, in our next movie.
- Defining and structuring a new site
- Creating new web documents from scratch or from templates
- Adding and formatting text
- Understanding style sheet basics
- Placing and styling images
- Creating links to internal pages and external web sites
- Controlling page layout with CSS
- Building and styling forms
- Reusing web content with templates
- Adding interactivity
- Working with Flash and video
Skill Level Beginner
Q: After creating a website following the instructions in the course, the header background graphic appears correctly in all browsers except Internet Explorer 6 and Internet Explorer 7. The graphic works properly in IE 8. What can be done to make the graphics appear in IE 6 and IE 7?
A: To make the header background graphic appear, wrap the header div tag in another div tag and give it an ID like “mainHeader.” The problem stems from a bug in Internet Explorer that prevents the browser from dealing with absolutely positioned elements that are right next to relatively positioned elements. Following the steps above should solve the problem.
Q: In the tutorial, the author links the Tool Tip to the word "More" at the bottom of the thumbnail photo field. I can't figure out how to place the <a> "More" on the thumbnail photo field.
If you were manually typing the text in, you could select the image, hit the right arrow button, and begin typing. The text should then appear on screen.
Q: In this movie, you are making changes to the HTML in order to customize the text layout on your page (i.e. h1, h2, and h3 tags as well as strong and em tags). I'm wondering why you are not using CSS to do this (i.e. font-size, font-weight). Do you typically use one method, or is it customary to do use both in a layout, and if so, what guidelines would you suggest to determine which to use when?
A: We modify the page's structure through the use of h1, h2, and other heading tags. So when we are choosing heading levels, we're not concerning ourselves with typography; we're establishing page structure. A heading is chosen to denote the level of importance for the heading, not typography.
CSS should always be used for presentation, not HTML.
Q: In the “Understanding ID selectors” movie, the author states that only one ID tag can be used per page, but then he adds two ID tags. Can you please clarify this for me?
A: You can use as many IDs per page as you wish. They just must all use a unique name. Therefore if you assign an element the ID of "header" no other element on THAT page may use the same ID.
Q: I noticed that in this course, the instructor uses this code on his CSS external sheet: @charset "UTF-8"; I was under the impression that this code wasn't necessary. The W3.org site is unclear on the matter. Is it necessary? Is it a best practice? Is it an older form of CSS?
A: The characterset attribute is added automatically by Dreamweaver, and there’s no practical reason to remove it. While it's not needed (the HTML page should indicate which encoding to use for the page) it is helpful if the CSS file is ever imported or used on a page where the characterset isn't specified. Think of it as a safety net for characterset encoding. Not necessary, but not harmful either.
Q: I need to add captions below images that I insert in pages of text. I played all the lessons in Chapter 5 (Adding Text and Structure) but none dealt with captions. I hope the author has an answer or can refer me to a source.
A: In HTML 4 and XHTML 1 (which is what Dreamweaver CS5 uses by default), there wasn't really a way to add captions below your photos. Most web authors would "fake" captions by having paragraphs of text below their images and using CSS to position and style the captions in the desired manner. Many would use a class such as .imgCaption to control the styling. To do this you would essentially position the text underneath the image through CSS (often by grouping the image and the paragraph in a div tag) and italicizing the text.
However in HTML5, there are new elements that allow us to associate images and their captions, the figure and figcaption element. Our author James Williamson just finished a course on HTML5: Syntax, Structure, and Semantics which details how to use it.
HTML5 Doctor also has a nice article on the figure and figcaption elements at http://html5doctor.com/the-figure-figcaption-elements/.