Start learning with our library of video tutorials taught by experts. Get started
Viewers: in countries Watching now:
This course is designed to quickly lead you through the steps of building an HTML website, from creating a new page to building links and tables. Author James Williamson simplifies the coding process, with straightforward steps you can recreate on your own. The course explains the basic structure of an HTML document, shows how to add text and images, and introduces font styling with CSS. James also offers a bonus design challenge at the end of each chapter, where he asks you to think of a solution before offering his own.
Tables are amazingly flexible in terms of what types of content they can hold. In fact, it's probably easier for me to just list a things a table cell can't hold rather than what it can. Just to give you some idea, table cells can hold text, paragraphs, headings, div tags, images, video, and even more complex structures like additional tables. Let's explore some of this as we add content to our own table. Now I have tables.htm open. And we really are picking up right where we left off in last exercise, but I have open it up from 05_02, because if you notice down below that table structure, I've got some content that we're going to move into our table here in just a moment.
Well, the first thing I want to focus on is what type of content can a table cell hold? So I'm going to go to the first table cell, which is this initial TD tag right there, and I'm just going to type in "I can be almost anything." So it's a very self-affirming table. Save that, go back to my browser and refresh page so I'm testing in the browser, and indeed now I can see it. I can be almost anything, as our table says. Now, we still can't see the underlying table structure, so I'm going to use an attribute on our table that's going to help us out here.
I'm going to go back into my code, and inside the opening table tag I'm going to set border for the table to 1. So if I save that, go back in and preview that, now we can see sort of that default border. Now, to be honest with you, most of the time people are going to want to control borders through the use of CSS styles, but that attribute is still supported across multiple browsers. It still exists in HTML5, so it's not going away anytime soon. If you ever want to use the browser's default border, you could do that by just giving it a border of 1.
I want to go back to the text here, "I can be almost anything." Well, right now it's just text inside a table cell, but if I wrap a paragraph tag around it--let's save that and go back in our browser-- it looks almost the same. But I don't know if you can see this or not, but a little bit of extra space is now appearing above and below the text, and the reason for that is paragraphs have their own default margins that browsers apply to them, which is why we have space between two paragraphs, and now the table is reflecting that.
So, one of the things that you need to be careful about if you begin the place other HTML elements inside of table cells is it's going to have an effect. I mean if I change this to h1, for example, you can see that the table is just going to display at as an h1 inside the table. Notice that the table is flexing as the content inside of it changes, and that's really a default behavior of tables in HTML: they're going to stretch or contract to fit their content unless you tell them to do otherwise. Now, that can sometimes cause some awkwardness in terms of spacing. If I scroll down, I can see that I have a paragraph here in this comment where it says, "Data for table." I'm going to go ahead and cut that paragraph and then paste that into the second table cell.
Now, if I save this, go back into my browser, and refresh, check out what happened to our table. Now, it stretches the entire width of the page. The heading doesn't have quite as much room as it had before because this paragraph is taking up so much room. So, through the use of styles and other attributes, we can restrict the width of these table cells, but for the most part, if you place content inside of a table cell, that table cells is just going to expand to hold that content. And this, again, depends on sort of what's in there. You'll notice for example in the 05_02 folder I have some images.
So if I chose to place an image in this--so I'm just going to use an image tag and I'm going to set the source attribute. I need to go inside the _images directory and then I need to find the file flower_400.jpg. Now, I know I told you earlier that you should always have alt text with your images, so forgive me for not putting it in there, just for brevity's sake. So if I go back in, preview that, now you can see this image is taking up so much room. Also, the table cell is going stretch only for width but height as well. You can see this table cell is stretching to fit the entire height of the image.
Now that also means that the remaining table cells in that row are going to stretch as well, so all the table cells within a row will be as tall as the tallest cell. If it's stretching for content, the other ones are going to have this empty area in it now as well. So, as you're planning your tables, you need to start thinking about that and say "okay, you know do I have an image maybe that fits a little bit better with that content, and would it make better sense to use that instead?" So as you're planning your tables, you really need to think about the relationship of the data to each other.
We're not really going to use any of that. The data that we're going to use for our table is down here in these comments. So we got Row 1, and following that we have the contents for table cell 1, table cell 2, table cell 3, and then we can move to Row 2 and do the same thing. I'm not going to bore you with making you watch me do all of this, but what I am going to do is I'm going to empty the table cells and I'm just going to show you the first row-- here we go--so that you guys can see an example of what I'm going to be doing and do this for your own tables if you're following along with me with your own the exercise files.
So I'm going to cut Row 1, the word Tag, I'm going to cut that. I'm going to paste that into the first table cell. And I'm going to do the same thing: I want to cut that and then paste that into the second table cell. I'm sure you guys can see where this is going, right? I am going to take the third one, cut it, and then paste that into the third table cell. Now I'm just going to keep doing that until my table is filled all the way with the data that I have here. And boom, I'm done. Now, if I save this and I go back into my browser and refresh this, you can kind of see it's pretty simple. We just have text inside each of the table cells.
Even though ours is simple, you can have complex formatting inside of the table cells, as we saw it earlier as we mess around with headings and paragraphs and things like that. But even though you can do that, you probably won't need to do it very often at all. You should avoid any unnecessary formatting within tables if at all possible, so that you can remove as many barriers between your users and the data.
There are currently no FAQs about Up and Running with HTML.
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
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.