Assignment #2: Movie Review Solution



This assignment is about CSS and HTML for layout, positioning, and the CSS box model. You will create files for a fake movie review web site named Rancid Tomatoes for the film TMNT. Turn in the following files:

  • tmnt.html
  • movie.css, the style sheet for tmnt.html

You will recreate the page below. Your page must match the appearance specified in this document.

We do not expect you to produce a pixel-perfect page that exactly matches this image. But your page should follow the styles specified in this document and match the look, layout, and behavior shown here as closely as possible.

We will provide you a skeleton of tmnt.html with the page contents, but no page sections or styles. The only modifications you should make are to divide it into sections using div/span tags, and add id and class attributes. You should also replace the last two “YOUR REVIEW HERE” reviews with text of your choice.

Our next assignment, Homework 3, will build on the code you write in this assignment.

The screenshots in this document were taken on Windows in Firefox, which may differ from your system.

Appearance Details:

All images on the page and mentioned in the following text are hosted on the web in the folder . Link to all images using their full absolute URLs, not relative ones.

overview.png moviebg.png rottenlarge.png rottenlargebg.png fresh.gif rotten.gif critic.gif

The page’s title is: TMNT – Rancid Tomatoes

The page background is moviebg.png. Page text uses 10pt font, using Arial, Helvetica, or any sans-serif font on the system. The page body has no margin or padding, so its contents stretch to the very edge of the browser window.

The top of the page is an image banner. The center of this banner is rancidbanner.png. Behind this banner rancidbannerbg.png repeats horizontally across the length of the page. Each image is 50px tall. (Hint: To make the banner stretch to the edges of the page, use the rancidbannerbg.png as the background image of a block element that is behind rancidbanner.png.) Under the image banner is a centered heading containing the movie name and year in a 24pt bold font. The preferred fonts for this heading are Georgia, Times New Roman, or any serif font available on the system. The text in the header has a “shadow” located 3px right and 3px down from the original text, using the color #999999.

Below the main heading is the page’s overall content area, with an overall 33% rating for the film, several critics’ reviews, and an overview of the film at right. Taken together this content occupies 800px in width and is centered horizontally within the page. If the page resizes horizontally, this 800px section should move dynamically so that it remains centered horizontally on the page. This overall section should have a 20px rounded corner radius on its borders. It should also have a 5px by 5px gray box shadow with a blur distance of 5px and should be sized large enough to contain all of its contents. (Hint: See textbook section 4.3 on making contents fit.)

In the overall area there is a 550px-wide left section for the “rotten” 33% rating and the critics’ reviews of the film. The section is topped by a smaller section containing a large “rotten” image (rottenlarge.png), vertically aligned to be even with the bottom of the text around it. Behind this the image rottenlargebg.png repeats horizontally across the entire length of the section. Each of these images is 83px tall. This is followed by the 33% overall rating for the film, which is shown in a 48pt red bold font.

Below the 33% overall rating, there are two columns of reviews. The columns each occupy 47% of the width of the overall left-center section of the page. There is a horizontal spacing of 2% between the columns and neighboring content. The background color of this section is #EEEEEE. (Hint: See textbook section 4.3.4 on multi-column layouts, but avoid the new column-* CSS3 properties.)

Each review is a box with a quote about the movie, in 10pt font. The quote box has a background color of #FFFFFF, and a #CCCCCC solid border, 2px thick. The border has 20px rounded corners. The text of the quote is using Georgia, Times New Roman, or any serif font. 8px separate the quote box’s content from its border. Each box has an icon (fresh.gif or rotten.gif) for whether the reviewer liked or disliked the movie on the left side of the quote box, with 5px separating it from text to its right. Text wraps around the images as needed.

The reviewer’s personal information follows under the quote box, including: the reviewer’s name; and the publication in italic. A reviewer icon (critic.gif) is shown to the left of the text, with 5px of horizontal space separating it from the text. There is 20pt of vertical space between reviews. (Hint: Paragraphs in movie reviews should be made large enough to contain all their content, including any floating content. See textbook section 4.3.3 on making contents fit into a container.)

The top eight reviews should be as shown, but you should change the last two reviews to hold any text that you like. Be creative and write something funny or interesting about this movie.

To the right of the critics’ reviews is a General Overview section of the page with a list of information about the movie, with a background color of #A2B964. This section is 250px wide, with 10pt between the edge of the section and the text of the list. Its text appears in a 10pt font of Arial, Helvetica or any sans-serif font available on the system. You may assume that the general overview section will always be taller than the section of reviews to its left.

The section includes a definition list (using dl, dt, and dd elements) about the movie such as its stars and director. Each term is bolded and has 10pt of vertical separation between it and the element that precedes it. The bottom of this section contains a list of links about the movie. The list should be shown without bullets or indentation.

Below the reviews is a bar of centered text indicating reviews “(1-10) of 88”, with a background color of #A2B964.

It is placed directly next to surrounding content. 5px separate the edge of its text and the element’s own outer edge.

The page’s bottom right corner has links to the W3C validators, aligned at the very right edge of the page.

All other style elements on the page are subject to the preference of the web browser. Note: One common mistake students make is to alter the default margins around paragraphs. Every p tag has a default 1em margin on top and bottom. We recommend that you do not alter this default setting. Our expected output is based on leaving this default setting in place, and if you remove it, it will be difficult to get all of the spacing to match the output.

Optional Extra Features:

In addition to the previous required features, you may choose to complete some extra features. These will be ignored in grading.

  1. Top banner does not scroll: The “Rancid Tomatoes” banner across the top of the page should remain fixed at the very top of the page, even after scrolling. To keep the top banner from initially obscuring the “TMNT” heading, give the TMNT heading a top margin of 72px for separation.

  1. W3C images do not scroll: The W3C HTML and CSS validator images at the bottom of the page should remain fixed in the page’s bottom-right corner, even after scrolling.
  1. W3C images semi-transparent: The W3C HTML and CSS validator images should appear as 50% opaque, halfway transparent. Also add CSS code so that when the user hovers the mouse cursor over a particular W3C image, that image temporarily changes back to being fully visible.

  1. Small white text after 33% rating: After the large red number 33 in the 33% rating, place small white text saying, “% (out of 88 reviews)”. This text should appear in a white 8pt font. To implement this you will have to add this text to the HTML content of the page; that is fine.

  1. Favorites icon (“favicon”): Set the page to have a “favorites icon” of rotten.gif, located in the same folder as the other images in this document. You must modify the head of the HTML file to do this.

Expected output images are provided on the course web site for the standard version of the page as well as for the extra features version of the page. All of the above features can be implemented using HTML/CSS features shown in the textbook Chapters 2-4 or the lecture slides.

Implementation and Grading:

Submit your assignment online from the course web site. You do not need to turn in the provided images. For full credit, your HTML and CSS should follow the rules listed in the Style Guide on the class web site.

We strongly recommend that you install and use the Firebug add-on for Firefox on this assignment. (Or use another browser with similar functionality, such as Chrome, which includes a similar “Inspect Element” tool.) Using it to inspect elements will help you find problems with the box model and your styles. We suggest using the “Layout” tab at bottom right to see the box model settings for particular elements.

For full credit, your page must use valid HTML5 and successfully pass the W3C HTML5 validator. Do not express style information in the HTML, such as inline styles or presentational HTML tags such as b or font. If you like, you may use the newer HTML5 organizational tags such as header, footer, aside, and nav, though you are not required to do so; div is sufficient for dividing your page into sections.

Express all stylistic information on the page using CSS defined in movie.css. The majority of the points for this assignment will be for the movie.css file. 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, the two main columns of reviews share many (if not all) styles in common, so you should not specify those styles twice in your CSS file. As another example, if the page uses the same color or font family for multiple elements, 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. Use context selectors to avoid needing to apply classes and IDs to large numbers of elements. Limit the use of absolute and fixed positioning on this assignment, and do not use floating or positioning where it is not necessary or stylistically appropriate to do so (for example, where the same effect could be achieved with text alignment instead). Do not use HTML or CSS constructs past Chapter 4 of the textbook, and do not use HTML tables.

Format your HTML and CSS to be as readable as possible, similarly to the examples from class. Place a comment header in each file with your name, section, a brief description of the assignment, and the file’s contents. Properly use whitespace and indent your HTML and CSS code as shown in class. To keep line lengths manageable, do not place more than one block element on the same line or begin a block element past the 100th character on a line. For reference, our solution has roughly 130 lines of CSS (85 “substantive”), but you do not need to match this exactly.

Part of your grade will also come from successfully uploading your files to the Webster web server in a subdirectory named hw2, so that it is possible to navigate to your page by entering the following URL into the browser:

  • Please do not place a solution to this assignment online on a publicly accessible web site.