Homework Assignment 1: Recipe
This assignment tests your understanding of basic HTML and CSS. You will create several files related to a recipe
web site for a fictional pie company named Granny’s Pies. Turn in the following files:
• index.html, the first of two web pages (with an optional CSS style sheet file); appearance is up to you
• pie.html, the second of two web pages; must match a particular specified appearance
• recipe.css, the style sheet for pie.html
For full credit, your files must be uploaded to our Webster server and must match the guidelines in this document.
The first part of your task is to create a front page for this web site, stored in a file named index.html. Your front
page must contain a link to pie.html. The file must also be at least 20 lines long and must contain at least 4 different
HTML elements in its body. It also may not significantly borrow content from your pie.html. Otherwise, this front
page can have any appearance you like. If you like, you may use an optional CSS file with this page named index.css
and submit it with your other files. Be creative! We may show some students’ pages in class.
Pie Recipe Page:
The second part is to recreate a specific web page of a recipe for lemon meringue pie, stored in a file named
pie.html. Unlike index.html, this page must exactly match the appearance specified in this document.
You must match in appearance the pie web page shown on the next page of this document. The width of the
screenshot below is based on a browser window width of 1024px; if your screen is a different size, the width of your
page may not exactly match. (Firefox’s Web Developer Toolbar add-on can help you resize your browser to any dimension; you
could use 1024×768 to compare the images.) Any line breaks shown are done automatically by the browser, except ones
that are clearly much narrower than the page width, such as the line “One 9-inch pie”:
Provided Output Text:
You don’t need to type in all of the text of the pie web page, only the HTML tags. There is a provided text file
on the course web site that you can copy and paste into your text editor to get started. Then you can add the
appropriate HTML tags to the file and save it as your .html page.
Appearance and Behavior Details:
The pie web page’s title text should be Grandma’s Lemon Meringue Pie .
All headings on the page should use a foreground color of #A4A400 (red=164, green=164, blue=0) and a
background color of #F0F0F0 (red=240, green=240, blue=240). The font families for headings are:
Lucida Sans Unicode, Helvetica, Arial, or any sans-serif font available on the system (in that order). The page’s main
heading is aligned to the center of the page body, and uses a 22pt bold font. Other headings on the page are leftaligned and appear in an 18pt normal font. All headings should be underlined.
The overall page’s body should have a white background. Text in the body should have a foreground color of
#404040 (red=64, green=64, blue=64) and use an 11pt font. The font families for page text are Georgia,
Garamond, or any serif font available on the system. Any links on the page should use the color #A4A400
(red=164, green=164, blue=0), matching the color of the page headings.
In the Ingredients list, the underlined words “tbsp” and “tsp” are abbreviations for “tablespoons” and “teaspoon”
respectively. When the user hovers the mouse over these abbreviations, the full word should appear as a tooltip.
At the end of the Directions, the deleted word “cake” with a strike-out line through it is replaced by the word “pie”.
After the Links section there is a short copyright notice that appears as a section of pre-formatted text in a
monospace font. The text is spaced such that the second line is indented by 2 spaces and the third line by 4 spaces.
Appearance and Behavior Details (continued):
The names of the four major steps of the recipe directions (such as “Preheat Oven”) are strongly emphasized.
The quotations from the users appear in an italic font as indented blocks with background color #FFFFA8
(red=255, green=255, blue=168). Some words in the last quote are bolded for emphasis.
The picture of the pie and the W3C validator images at the bottom come from the following images, respectively.
All images are located at the base URL of https://webster.cs.washington.edu/images/ . Use an absolute URL to
link to each image; don’t link to a relative URL on your hard drive.
The page bottom has four links. The “Home” link should go to your index.html page. Use a relative URL and
assume it is located on the same site and directory as pie.html. The “Search for other lemon meringue pie recipes”
text, “W3C HTML5” button, and “W3C CSS” button should link to the following web pages, respectively:
• https://webster.cs.washington.edu/validate-html.php (this is our custom W3C HTML validator)
• https://webster.cs.washington.edu/validate-css.php (this is our custom W3C CSS validator)
All other decisions about styling on the page are left to the web browser. Any styles mentioned previously that are
the same as browser defaults do not have to be explicitly included in your CSS style sheet. The screenshot in this
document was taken on Windows using Firefox, which may differ from the appearance on your system.
Extra Features / CSE Majors:
In addition to the previous required features, CSE non-majors must also complete at least two (2) of the following
additional requirements in your pie page. CSE majors (B section) must complete ALL of the features listed.
These are features that may have not been covered in detail in lecture; you will have to explore your resources such as
your textbook, lecture slides, or online references to learn how to complete these features. If non-majors want to
complete more than two of the extra features below, that is fine, but only two are required.
1. Background: Set the overall page to use a background image of: (use absolute URLs to link to all images)
The image should repeat in both directions across the page and should not move when the page is scrolled.
2. Favicon: Set the page to have a “favorites icon” (“favicon”). Use absolute URLs to link to all images. Use:
Favicons are explained in Chapter 3. The icon may not work in Internet Explorer; you may ignore this.
3. Pie bullet: Set all bulleted lists of items on the page to use an image for their bullet icon rather than the
normal black circle. Use the following image (use absolute URLs to link to all images):
4. Wide headings: Place 0.25em horizontal spacing between neighboring letters in all headings on the page.
5. Tight heading background: Make it so that the gray background behind the headings on the page is only
behind the text itself, not stretched across the entire width of the page. (Looks nice with extra feature #1.)
Other: Do you have an extra feature you’d like to add to your page that isn’t listed here? Ask us on the
course message board and we’ll let you know if it is okay to substitute for one of the above.
Near the top of your HTML file, put a comment saying which extra features you have completed.
As much as possible, you should implement these changes by modifying your CSS code rather than your HTML.
Some of the CSS properties necessary will not have been covered in class, so you must learn them yourself. Try
using the textbook or Google. There are some good HTML and CSS references such as the following sites:
Implementation and Grading:
For full credit, your HTML and CSS should follow the rules listed in the Style Guide on the class web site. Choose
appropriate HTML tags to match the structure of the content on the page. Do not express style information in
HTML with inline styles or presentational tags such as b or font. Do not use any HTML tables in your pie.html.
Your pie.html page must also pass the W3C HTML5 validator with no errors (a green bar). (Your page is fine as long
as you see the green bar and text “This document was successfully checked as HTML5!”) We will click your W3C validation
buttons to validate your page, so test them for validity by clicking those same buttons.
You only need to worry about your page’s appearance in standards-compliant browsers such as Firefox or Chrome.
You will not be tested in Microsoft Internet Explorer or other browsers that do not comply to web standards.
Express all stylistic information on the page using CSS defined in recipe.css. For full credit, your style sheet must
successfully pass the W3C CSS validator. Part of your grade comes from expressing your CSS concisely and without
unnecessary or redundant styles. For example, if the page uses the same color or font family for multiple elements
on the page, you must group those elements into a single CSS rule, so that it would be possible to change the page’s
color/font by modifying a single place in the CSS file. Outside of extra features, do not use HTML or CSS
constructs that have not been discussed in lecture or the slides, through Chapters 2-3 of the textbook.
Though they will not be discussed until after the homework is assigned, you may know about using HTML class
and id attributes to target elements for styling. Do not overuse such attributes in your HTML unnecessarily. If
there is already a suitable tag for representing a given piece of content, favor the use of that tag rather than a less
appropriate tag with a class or id attached for styling purposes.
Format your HTML and CSS nicely so that it is as readable as possible, similarly to the examples shown in class.
Also place a comment header in each file containing your name and section and a brief description of the
assignment and the file’s contents. You must properly use whitespace and indent your HTML and CSS code
following examples shown in class. To keep line lengths manageable, do not place more than one block element on
the same line or begin any block element past the 100th character on a line. For reference, our solution has 135 lines
of HTML and 45 lines of CSS, though you do not need to match this exactly.
The majority of the points will be for pie.html and recipe.css. The index.html will also be graded, but it will be
worth few points. The main style constraint on index.html is that it should pass the W3C HTML5 and CSS
validators. Beyond that it can contain any non-obscene content you like, even using material we have not yet learned
in lecture. Please do not link to external resources (other than image files or CSS) from your index.html page. If
your index.html links to any images, please download those images and upload them to your Webster space and
point your page to the image URLs on Webster; this will help to avoid broken image links when grading.
Submit your assignment online from the turn-in link in the Homework section of the course web site. Turn in both
.html files and your .css style sheets. You do not need to turn in the provided images. If your index.html page
includes images linked using absolute URLs, you do not need to turn in those images.
Part of your grade will also come from successfully uploading your files to the Webster web server. You should
place your files into your public web space in a subdirectory named hw1, so that it is possible to navigate to your
page by entering the following URL into the browser:
• https://webster.cs.washington.edu/ your-UW-Netid /hw1/pie.html
For example, if your UW NetID is johndoe, your page should be available at the following URL:
If your page is not available at exactly this URL (case-sensitive), you may not receive credit for this part of the
assignment. Please note that uploading your files to Webster, while part of your grade, is NOT the way to turn in
your program; turn in your program through the turnin link on the course web site as stated previously. Students
who upload files to Webster but do not turn them in may not receive full credit for their work.
Please do not place a solution to this assignment online on a publicly accessible web site, neither during nor after the
school quarter is over. Doing so is considered a violation of our course academic integrity policy.
Copyright © Marty Stepp / Jessica Miller, licensed under Creative Commons Attribution 2.5 License. All rights reserved.