Learning Web Design Third Edition- P15 ppt

10 395 0
Learning Web Design Third Edition- P15 ppt

Đang tải... (xem toàn văn)

Thông tin tài liệu

Part II: HTML Markup for Structure 126 1 <map name="veggies" id="veggies"> 2 A <area shape="poly" coords="56,5,45,32,18,32,39,52,30,80,56,64,85,82,76,5 1,97,33,68,31,58,4,55,5" href="peas.html" alt="pea icon" /> B <area shape="rect" coords="127,9,196,79" href="tomato.html" alt="tomato icon" /> C <area shape="circle" coords="270,46,37" href="carrots.html" alt="carrot icon" /> </map> 3 <p><img src="veggies.gif" width="330" height="90" usemap="veggies"></p> This marks the beginning of the map. I gave the map the name veggies. Dreamweaver has used both the name and id attributes to identify the map element. Both attributes have been included in order to be both backward (name) and forward (id) compatible. Within the map element there are area elements representing each hot spot in the image. 2 Each area element has several attributes: the shape identifier (shape), pixel coordinates (coords), the URL for the link (href), and alternative text (alt). In this map there are three areas corresponding to the rectangle, circle, and polygon that I drew over my image: The list of x,y coordinates for the polygon (poly) identifies each of the points along the path of the star shape containing a pea. The x,y pixel coordinates for the rectangle (rect) identify the top-left, and bottom-right corners of the area over the tomato. The pixel coordinates for the circle (circle) identify the center point and the length of the radius for the area with the carrots. 3 The img element now sports the usemap attribute that tells the browser which map to use (veggies). You can include several imagemapped images and their respective maps in a single (X)HTML document. 1� A B C exercise 7-2 | Making an imagemap The image (veggies.gif) shown in this section and Figure 7-8 is available in the materials directory for this chapter. If you have Dreamweaver, you can use Figure 7-7 to help make your own imagemap. The general steps for making an imagemap are outlined above, but you’ll need to consult the documentation for a detailed explanation of how to use your program. Your resulting pixel coordinates are not likely to be identical to the ones shown in this chapter because dragging hotspot areas is not an exact science. What matters is that the area is covered well enough that the user will go to the page as expected. veggies.gif Figure 7-8. Try your hand at making an imagemap. exercise 7-2 | Making an imagemap The image (veggies.gif) shown in this section and Figure 7-8 is available in the materials directory for this chapter. If you have Dreamweaver, you can use Figure 7-7 to help make your own imagemap. The general steps for making an imagemap are outlined above, but you’ll need to consult the documentation for a detailed explanation of how to use your program. Your resulting pixel coordinates are not likely to be identical to the ones shown in this chapter because dragging hotspot areas is not an exact science. What matters is that the area is covered well enough that the user will go to the page as expected. veggies.gif Figure 7-8. Try your hand at making an imagemap. Test Yourself Test Yourself Chapter 7, Adding Images 127 Test Yourself Images are a big part of the web experience. Answer these questions to see how well you’ve absorbed the key concepts of this chapter. The correct answers can be found in Appendix A. Which two attributes must be included in every img element? Write the markup for adding an image called furry.jpg that is in the same directory as the current document. Why is it necessary to include alternative text? There are two main reasons. What is the advantage of including width and height attributes for every graphic on the page? What might be going wrong if your images don’t appear when you view the page in a browser? There are three key explanations. What does the usemap attribute do? 1. 2. 3. 4. 5. 6. Part II: HTML Markup for Structure 128 (X)HTML Review: Image and Imagemap Elements (X)HTML Review: Image and Imagemap Elements The following is a summary of the elements we covered in this chapter: Element and attributes Description img Inserts an inline image src="url" The location of the image file alt="text" Alternative text width="number" Width of the graphic height="number" Height of the graphic usemap="usemap" Indicates a client-side imagemap (preferred) ismap="ismap" Indicates a server-side imagemap longdesc="url" Points to a document with a long description of the image title="text" Provides a “tool tip” when the user mouses over the image. Can be used for supplemental information about the image. map Map information for an imagemap name="text" The legacy method for giving the map a name id="text" The current method for giving the map a name area Contains information for a clickable area in an imagemap shape="rect|circle|poly" Shape of the linked area coords="numbers" Pixel coordinates for the linked area href="url" Target file for the link 129 IN THIS CHAPTER How tables are used Basic table structure The importance of headers Spanning rows and columns Cell padding and spacing Captions and Summaries Making tables accessible Before we launch into the markup for tables, let’s check in with our progress so far. We’ve covered a lot of territory: how to establish the basic structure of an (X)HTML document, how to mark up text to give it meaning and structure, how to make links, and how to add image content to the page. That’s really the majority of what you need to do for most straightforward web content. This chapter and Chapter 9, Forms describe the markup for specialized con- tent that you might not have a need for right away. Feel free to skip these chapters and go directly to Chapter 10, Understanding the Standards to learn more about XHTML, standards compliance, and validation. Or, if you’re get- ting really antsy to make your pages look good, skip right to Part III and start playing with Cascading Style Sheets. The tables and forms chapters will be here when you’re ready for them. Are you still with me? Great. Let’s talk tables. We’ll start out by reviewing how tables should be used, then learn the elements used to create HTML tables. Remember, this is an HTML chapter, so we’re going to focus on the markup that structures the content into tables, and we won’t be concerned with how the tables look. Like any web content, the appearance (or presenta- tion, as we say in the web development world) of tables should be handled with style sheets. How Tables Are Used HTML tables were created for instances when you need to add tabular mate- rial (data arranged into rows and columns) to a web page. Tables may be used to organize calendars, schedules, statistics, or other types of information as shown in Figure 8-1. Note that “data” doesn’t necessarily mean numbers. A table cell may contain any sort of information, including numbers, text ele- ments, even images and multimedia objects. BASIC TABLE MARKUP CHAPTER 8 Part II: HTML Markup for Structure 130 Minimal Table Structure w3.org lifetimetv.com mbta.com Figure 8-1. Examples of tables used for tabular information, such as charts, calendars, and schedules. In visual browsers, the arrangement of data in rows and columns gives read- ers an instant understanding of the relationships between data cells and their respective header labels. Bear in mind when you are creating tables, however, that some readers will be hearing your data read aloud with a screen reader or reading Braille output. Later in this chapter, we’ll discuss measures you can take to make table content accessible to users who don’t have the benefit of visual presentation. In the days before style sheets, tables were the only option for creating multi- column layouts or controlling alignment and white space. Layout tables, particularly the complex nested table arrangements that were once standard web design fare, are no longer necessary and are strongly discouraged. See the sidebar, Using Layout Tables, for more information. This chapter focuses on (X)HTML tables as they are intended to be used. Minimal Table Structure Let’s take a look at a simple table to see what it’s made of. Here is a small table with three rows and three columns that lists nutritional information. Menu item Calories Fat Chicken noodle soup 120 2 Caesar salad 400 26 Figure 8-2 reveals the structure of this table according to the (X)HTML table model. All of the table’s content goes into cells that are arranged into rows. Cells contain either header information (titles for the columns, such as “Calories”) or data, which may be any sort of content. All of the table’s content goes into cells that are arranged into rows. All of the table’s content goes into cells that are arranged into rows. Minimal Table Structure Chapter 8, Basic Table Markup 131 header cell Menu item data cell Chicken Soup data cell Caesar Salad header cell Calories data cell 120 data cell 400 header cell Fat (g) data cell 2 data cell 26 row row row table Figure 8-2. Tables are made up of rows that contain cells. Cells are the containers for content. Simple enough, right? Now let’s look at how those parts translate into (X)HTML elements (Figure 8-3). <th>Menu item</th> <td>Chicken Soup</td> <td>Caesar Salad</td> <th>Calories</th> <td>120</td> <td>400</td> <th>Fat (g)</th> <td>2</td> <td>26</td> <tr> <tr> <tr> <table> </table> </tr> </tr> </tr> Figure 8-3. The elements that make up the basic structure of a table. Figure 8-3 shows the elements that identify the table (table), rows (tr, for “table row”), and cells (th, for “table headers,” and td, for “table data”). Cells are the heart of the table, because that’s where the actual content goes. The other elements just hold things together. What we don’t see are column elements (see note). The number of columns in a table is determined by the number of cells in each row. This is one of the things that make (X)HTML tables potentially tricky. Rows are easy—if you want the table to have three rows, just use three tr elements. Columns are different. For a table with four columns, you need to make sure that every row has four td or th elements; the columns are implied. N o t e There are two column-related elements in HTML 4.01 and XHTML: col for identi- fying a column and colgroup for establishing related groups of columns. They were created to add a layer of information about the table that can potentially speed up its display, but they are not part of HTML’s row-centric table model. See the sidebar, Advanced Table Elements, for more information. Written out in a source document, the markup for the table in Figure 8-3 would look more like the sample below. It is common to stack the th and td elements in order to make them easier to find in the source. This does not affect how they are rendered by the browser. Using Layout Tables Complex tables were once the norm for creating interesting web page layouts, but now that style sheets offer an alternative, this use of (X)HTML tables is discouraged. Not only are they not semantically sound, but they can be a real hindrance to accessibility. The professional web design community is leaving layout tables in the dust. If you still choose use table elements to create the grid of the page, follow these guidelines: Use only the minimal table elements ( table , tr , and td ). Avoid nesting tables within tables. Avoid tricks like empty rows and transparent GIF images used solely for adjusting the spacing. Use style sheets to control all presentational aspects of the table and its contents, such as colors, alignment, spacing, and column width. Make sure that your content still reads in a logical order in the source document when all of the table markup is removed. Tables that read in a logical order are said to linearize well. This is the way visitors with screen readers will encounter the page. Layout tables are not necessarily evil or even inaccessible if handled responsibly. While we are still in a period of transition with varying browser support for CSS layout features, they are still the choice of some designers.      Part II: HTML Markup for Structure 132 Minimal Table Structure <table> <tr> <th>Menu item</th> <th>Calories</th> <th>Fat (g)</th> </tr> <tr> <td>Chicken noodle soup</td> <td>120</td> <td>2</td> </tr> <tr> <td>Caesar salad</td> <td>400</td> <td>26</td> </tr> </table> Remember, all the content for a table must go in cells; that is, within td or th elements. You can put any content in a cell: text, a graphic, even another table. Start and end table tags are used to identify the beginning and end of the table. The table element may only directly contain some number of tr (row) elements. The only thing that can go in the tr element is some number of td or th elements. In other words, there may be no text content within the table and tr elements that isn’t contained within a td or th. Finally, Figure 8-4 shows how the table would look in a simple web page, as displayed by default in a browser. I know it’s not exciting. Excitement hap- pens in the CSS chapters. What is worth noting is that tables are block-level elements, so they always start on new lines. Figure 8-4. The default rendering of our sample table in a browser (Firefox). Stylin’ Tables Once you build the structure of the table in the markup, it’s no problem adding a layer of style to customize its appearance. Style sheets can and should be used to control these aspects of a table’s visual presentation. We’ll get to all the formatting tools you’ll need in the following chapters: In Chapter 12, Formatting Text: Font settings for cell contents Text color in cells In Chapter 14, Thinking Inside the Box: Table dimensions (width and height) Borders Cell padding (space around cell contents) Margins around the table In Chapter 13, Colors and Backgrounds: Background colors Tiling background images In Chapter 17, CSS Techniques: Special properties for controlling borders and spacing between cells          Stylin’ Tables Once you build the structure of the table in the markup, it’s no problem adding a layer of style to customize its appearance. Style sheets can and should be used to control these aspects of a table’s visual presentation. We’ll get to all the formatting tools you’ll need in the following chapters: In Chapter 12, Formatting Text: Font settings for cell contents Text color in cells In Chapter 14, Thinking Inside the Box: Table dimensions (width and height) Borders Cell padding (space around cell contents) Margins around the table In Chapter 13, Colors and Backgrounds: Background colors Tiling background images In Chapter 17, CSS Techniques: Special properties for controlling borders and spacing between cells          Minimal Table Structure Chapter 8, Basic Table Markup 133 The following is the source for another table. Can you tell how many rows and columns it will have when it is displayed in a browser? <table> <tr> <td>Sufjan Stevens</td> <td>Illinoise</td> <td>Asthmatic Kitty Records</td> </tr> <tr> <td>The Shins</td> <td>Oh Inverted World</td> <td>Sub-pop Records</td> </tr> </table> If you guessed that it’s a table with two rows and three columns, you’re cor- rect. Two tr elements create two rows; three td elements in each row create three columns. The sample table in this section has been stripped down to its bare essentials to make its structure clear while you learn how tables work. It is worth noting, however, that there are other table elements and attributes that offer more complex semantic descriptions and improve the accessibility of tabular content. A thoroughly marked-up version of the sample table might look like this: <table summary="A listing of calorie and fat content for each of the most popular menu items"> <caption>Nutritional Information</caption> <thead> <tr> <th scope="column">Menu item</th> <th scope="column">Calories</th> <th abbr="fat" scope="column">Fat (g)</th> </tr> </thead> <tbody> <tr> <td>Chicken noodle soup</td> <td>120</td> <td>2</td> </tr> <tr> <td>Caesar salad</td> <td>400</td> <td>26</td> </tr> </tbody> </table> Row group elements You can describe rows or groups of rows as belonging to a header, footer, or the body of a table using the thead , tfoot , and tbody elements respectively. Some user agents (another word for a browsing device) may repeat the header and footer rows on tables that span multiple pages. Authors may also use these elements to apply styles to various regions of a table. Column group elements Columns may be identified with the col element or put into groups using the colgroup element. This is useful for adding semantic context to information in columns and may be used to calculate the width of tables more quickly. Accessibility features Accessibility features such as captions and summaries for providing descriptions of table content, and the scope and headers attributes for explicitly connecting headers with their respective content are discussed later in this chapter. An in-depth exploration of the advanced table elements are beyond the scope of this book, but you may want to do more research if you anticipate working with data-heavy tables. For a detailed explanation, see the HTML 4.01 Recommendation at www.w3.org/TR/REC-html40/struct/tables.html. Advanced Table Elements Part II: HTML Markup for Structure 134 Table Headers Table Headers As you can see in Figure 8-4, the text marked up as headers (th elements) are displayed differently from the other cells in the table (td elements). The dif- ference, however, is not purely cosmetic. Table headers are important because they provide information or context about the cells in the row or column they precede. The th element may be handled differently than tds by alterna- tive browsing devices. For example, screen readers may read the header aloud before each data cell (“Menu item, Caesar salad, Calories, 400, Fat-g, 26”). In this way, they are a key tool for making table content accessible. Don’t try to fake headers by formatting a row of td elements differently than the rest of the table. Conversely, don’t avoid using th elements because of their default rendering (bold and centered). Mark up the headers semantically and change the presentation later with a style rule. That covers the basics. Before we get more fancy, try your hand at Exercise 8-1. Spanning Cells One fundamental feature of table structure is cell spanning, which is the stretching of a cell to cover several rows or columns. Spanning cells allows you to create complex table structures, but it has the side effect of making the markup a little more difficult to keep track of. You make a header or data cell span by adding the colspan or rowspan attributes, as we’ll discuss next. Column spans Column spans, created with the colspan attribute in the td or th element, stretch a cell to the right to span over the subsequent columns (Figure 8-6). Here a column span is used to make a header apply to two columns. (I’ve added a border around cells to reveal the table structure in the screenshot.) <table> <tr> <th colspan="2">Fat</th> </tr> <tr> exercise 8-1 | Making a simple table Try writing the markup for the table shown in Figure 8-5. You can open an HTML editor or just write it down on paper. The finished markup is provided in Appendix A. (Note, I’ve added a 1-pixel border around cells with a style rule just to make the structure clear. You won’t include this in your version.) Be sure to close all table elements. Not only is it required in XHTML and recommended practice in all HTML documents, some browsers will not display the table at all if the end table tag ( </table> ) is missing. exercise 8-1 | Making a simple table Try writing the markup for the table shown in Figure 8-5. You can open an HTML editor or just write it down on paper. The finished markup is provided in Appendix A. (Note, I’ve added a 1-pixel border around cells with a style rule just to make the structure clear. You won’t include this in your version.) Be sure to close all table elements. Not only is it required in XHTML and recommended practice in all HTML documents, some browsers will not display the table at all if the end table tag ( </table> ) is missing. Figure 8-5. Write the markup for this table. Spanning Cells Chapter 8, Basic Table Markup 135 <td>Saturated Fat (g)</td> <td>Unsaturated Fat (g)</td> </tr> </table> Figure 8-6. The colspan attribute stretches a cell to the right to span the specified number of columns. Notice in the first row (tr) that there is only one th element, while the second row has two td elements. The th for the column that was spanned over is no longer in the source; the cell with the colspan stands in for it. Every row should have the same number of cells or equivalent colspan values. For example, there are two td elements and the colspan value is 2, so the implied number of columns in each row is equal. Row spans Row spans, created with the rowspan attribute, work just like column spans, except they cause the cell to span downward over several rows. In this exam- ple, the first cell in the table spans down three rows (Figure 8-8). <table> <tr> <th rowspan="3">Serving Size</th> <td>Small (8oz.)</td> </tr> <tr> <td>Medium (16oz.)</td> </tr> <tr> <td>Large (24oz.)</td> </tr> </table> exercise 8-2 | Column spans Try writing the markup for the table shown in Figure 8-7. You can open an HTML editor or just write it down on paper. Don’t worry if your table doesn’t look exactly like the one shown here. The rules have been added to reveal the cell structure. Check Appendix A for the final markup. Figure 8-7. Practice column spans by writing the markup for this table. exercise 8-2 | Column spans Try writing the markup for the table shown in Figure 8-7. You can open an HTML editor or just write it down on paper. Don’t worry if your table doesn’t look exactly like the one shown here. The rules have been added to reveal the cell structure. Check Appendix A for the final markup. Figure 8-7. Practice column spans by writing the markup for this table. Some hints: For simplicity’s sake, this table uses all td elements. The second row shows you that the table has a total of three columns. When a cell is spanned over, its td element does not appear in the table.    Some hints: For simplicity’s sake, this table uses all td elements. The second row shows you that the table has a total of three columns. When a cell is spanned over, its td element does not appear in the table.    WA R N I N G Be careful with colspan values; if you specify a number that exceeds the number of columns in the table, most browsers will add columns to the existing table, which typically screws things up. . tables, and we won’t be concerned with how the tables look. Like any web content, the appearance (or presenta- tion, as we say in the web development world) of tables should be handled with style. space. Layout tables, particularly the complex nested table arrangements that were once standard web design fare, are no longer necessary and are strongly discouraged. See the sidebar, Using Layout. not semantically sound, but they can be a real hindrance to accessibility. The professional web design community is leaving layout tables in the dust. If you still choose use table elements

Ngày đăng: 03/07/2014, 13:21

Từ khóa liên quan

Mục lục

  • Learning Web Design

    • Preface

    • Part I Getting Started

      • Chapter 1

        • Where Do I Start?

          • Am I Too Late?

          • Where Do I Start?

          • What Do I Need to Learn?

          • Do I Need to Learn Java?

          • What Do I Need to Buy?

          • What You’ve Learned

          • Test Yourself

          • Chapter 2

            • How the Web Works

              • Serving Up Your Information

              • A Word About Browsers

              • Web Page Addresses (URLs)

              • The Anatomy of a Web Page

              • Putting It All Together

              • Test Yourself

              • Browser Versions

              • Chapter 3

                • The Nature of Web Design

                  • Alternative Browsing Environments

                  • User Preferences

                  • Different Platforms

                  • Connection Speed

                  • Browser Window Size and Monitor Resolution

Tài liệu cùng người dùng

Tài liệu liên quan