Join James Williamson for an in-depth discussion in this video Using the Code Navigator, part of Dreamweaver CS5 Essential Training.
The creation and modification of CSS is central to almost everything you do when designing Web pages. We see this focus reflected in the number of panels and tools that Dreamweaver provides us to work with our CSS. Of those tools, I count the Code Navigator as one of the most important. The Code Navigator gives you an easy way to access and modify your styles from anywhere in your document, without having to know exactly which rule is controlling the element from within your styles. As your site gets more complicated, it's not unusual to have styles in various places throughout your site all coming together at runtime to determine final rendering.
Because of this, it can often be difficult to know exactly which rule to modify to achieve the desired results. Let's take a moment and explore the Code Navigator and how it can help you quickly assess and access your styles. So here I have the tours.htm open. If I scroll down to the page, I can see something is a little amiss. So here we have our tour description text, and the font size is a little large, and the line spacing is a little large as well. I would like this text to be a little smaller, so that it would fit a little bit more neatly right beside each of the graphics there.
So right now, we are having some text sort of flow down there and break, and it's a little too big, so I want to change that up a little bit. Now, if you look over in our CSS Styles panel, you can see how many selectors we have driving this page. There's a tremendous amount of selectors. So it would probably take us a fair amount of time to comb through all those selectors to figure out exactly which one is driving this text. Now, knowing the structure of what you are working with really helps. If I click inside this text, I notice that it's inside of a div with the class, tour description.
So that is probably a nice indicator of exactly what's controlling this. Now, this is where the Code Navigator can really help us. If you click inside of an element, if you just wait for a second or two, you are going to see this little icon come up. It looks kind of like the steering wheel of a ship. If you hover over that icon, it will tell you that this is the Code Navigator. Clicking on that is going to open up another window, sort of like a tooltip. You are going to see this listing of all the styles that are affecting this element. So what we are looking at right now is a list of all of the selectors in our CSS, that is, in some way or another, styling that particular element.
This means that every time you click on an element, you are going to see a totally different list, based off of that element and the styles driving it. These styles are arranged in the order of farthest from the element to the closest of the element. Now, what that means is any property at the bottom of the list that conflicts with the property above it, bottom property wins. So if you are wondering, "What size is this? What line-height?" you can just start at the bottom, hover over the rule. You will see a summary of that rule's properties, and you can just go sort of all the way up to determine exactly which rules are controlling which properties.
So in this case, we have this #mainContent .tourDescription p, very descriptive, very specific rule, and all its doing is setting font-size to 1 em. The rule just above that, #mainContent p, is giving us both font-size and line-height, and then finally, the rule just above that is giving us our color. So you might think to yourself, "Well, I probably should modify this one for line-height and this one for size, and if I wanted to change color, maybe refine that one," but here's the problem with that. #mainContent p is going to be controlling all paragraphs found within the mainContent.
We need to be a little bit more specific, because remember, we only want to change this text. So really the rule that we are going to be changing is the targeted rule at that very bottom of the list. Now, before we get into how to use the Code Navigator to make changes to your CSS, I want to talk a little bit more about the Code Navigator's functionality. You will notice that every time you click on an element, that icon comes up. Well, if you are not in the mood to work with a Code Navigator or that's not the task at hand, that can be more than a little annoying. So I know a lot of people out there that don't like the Code Navigator, just because it seems to always get in the way.
Well, notice, in the lower right-hand corner of this dialog box, we have a little checkmark that says Disable. I am going to go ahead and check that. Now, that also might bring up the question, well, if you disable it, then how in the world do you use it? Well, just to the left of that you will see a keyboard shortcut indicating how to bring up the Code Navigator. On the PC, you will Alt+ Click an item and on the Mac, you will Option+Command+Click an item. So now with that disabled, let me click off of my element again, and now no matter where I click, or how long I pause, the Code Navigator icon doesn't come up anymore.
So if we are not actually trying to use it, it's not going to get in the way. I like that. But now, to bring it up, all I have to do is hold down my Alt key and click on the element. Remember, if you are on a Mac, you are going to hold down your Command and your Option key while you click. That brings up the exact same dialog box, and now you control when the Code Navigator appears, and for me, that's a lot more efficient. Okay. Well, let's see how we can actually change this selector so that the text is doing what we want it to do. I am going to go all the way down and find that last rule, # mainContent tourDescription p. I will hover over that, and I am just going to click it.
You will notice, as soon as you hover over it, that it becomes a link. I am just going to go ahead and click that. Now, that's going to take me to this rule in two separate locations. On the left-hand side, it takes me directly into my CSS Code. So if you prefer hand-coding, it's going to jump you right to your CSS Code. It's going to jump to that specific spot, and you can just begin adding properties or modifying the ones that you already have there. If hand-coding is not your cup of tea, you will notice on the right-hand side that if I look at my CSS Styles panel, that rule is highlighted right there.
So it's very easy for me to go ahead and select that. So that's a pretty nice way of just sort of jumping to that particular rule in the CSS Styles panel without having to browse all the way through it. Now, to give myself a little bit more room here, I am going to go ahead and close my Files panel. I can do that by double-clicking the tab here. And now I can go in and modify the properties for this particular rule. Now, remember, I wanted to do two things here, make the text a little smaller. So I am going to change font size from 1 em to 0.9 ems. The next thing I wanted to do is adjust the line height so that the lines were a little closer together.
So I am going to click here to add a property. Now, I can either type in the line height property, or I can grab the pulldown menu, scroll through the list and find line height. So if you are not exactly sure how that's written out, feel free to use that list. Next, I am going to type in 1.5 for my line height. That's a little shorter than 1.8, which is what it was before. And I am going to go ahead and make sure we are doing a multiple there, rather than a unit of measurement. We will talk about line height in the chapter on Typography, so we are going to go into that in more detail a little bit later on. I am going to go ahead and hit Return or Enter to make sure I make that change.
And if I switch over to Design view, now we can see that our text is a lot closer together, and it fits within that space nicely. I am going to go ahead and do a Save All, so that my CSS is saved as well. And there we go. We have used the Code Navigator to target a specific element on the page and modify its styles in order to achieve the styling that we were looking for. So as you can see, when working with really complex sites, the Code Navigator can greatly speed up the process of identifying where a property is being set, which properties from other rules are being applied, and then targeting and modifying the proper rule for the desired change.
- 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/.