1 / 54

CSS: Cascading Style Sheets

CSS: Cascading Style Sheets. What are Style Sheets. A style sheet is a mechanism that allows to specify how HTML (/ XHTML / XML ) pages should look The style is specified by style rules The style rules appear either in the document or in external files, called style sheets. Style Sheets.

john
Download Presentation

CSS: Cascading Style Sheets

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSS: Cascading Style Sheets

  2. What are Style Sheets • A style sheetis a mechanism that allows to specify how HTML (/XHTML/XML) pages should look • The style is specified by style rules • The style rules appear either in the document or in external files, called style sheets

  3. Style Sheets • Usually, a file that ends with .css • For example: • i.a.cnn.net/cnn/.element/ssi/css/1.1/main.css(CNN) • http://www.huji.ac.il/styles/style.css (HUJI) • To attach a style sheet to an HTML file, add <link rel="stylesheet"type="text/css"href="css-file"/>to the head

  4. Without a style sheet

  5. Simple Example <html> <head><title>A Joke</title></head> <body> <div><imgsrc="tomato.gif"alt="joke"/></div> <h1>A joke</h1> <p>A mama tomato, a papa tomato and a baby tomato are walking down the street. The baby tomato keeps falling behind so the papa tomato goes back, steps on the baby tomato and says, ketchup ("Catch-up!"). </p> </body> </html>

  6. Style File: joke.css body { background-image:url("bg.gif"); } h1 { background-color: green; color:rgb(250, 200, 250); /* pink */ font-family:cursive } p { background-color: yellow; color: purple; font-size:200%;}

  7. Simple Example (with css) <html> <head><title>A Joke</title> <linkrel="stylesheet"type="text/css"href="joke.css"/> </head> <body> <div><imgsrc="tomato.gif"alt="joke"></div> <h1>A joke</h1> <p>A mama tomato, a papa tomato and a baby tomato are walking down the street. The baby tomato keeps falling behind so the papa tomato goes back, steps on the baby tomato and says, ketchup ("Catch-up!"). </p></body> </html>

  8. Why do we Need a Style Sheet? • In XHTML (or HTML 4.01), styling is very limited, hence style sheets are necessary • Transitional versions are richer in style • Separates content from style • Reduces download time (how?) • Allows to easily maintain a consistent appearance over a whole Web site (how?)

  9. Declaration Selector Property Value(s) “important” rule Style Rules h1 { color:purple; font-family: Impact, Arial Black; font-size-adjust:.46; font-size:2.33em; font-weight:400; font-style:normal; text-decoration:none; word-spacing:normal !important; letter-spacing:normal; text-transform:none; }

  10. Style Rules (cont) • A rule has the following form selector {declaration block} • The selector determines when the rule is applied • For example, the following rule applies to text that is inside a <p> tag p{color: green;font-size:1.5em;font-style:italic}

  11. What Kind of Properties can a CSS Style Sheet Change? • Style properties • Layout properties • There are many properties and many possible values • We will not cover all of them here • Look in the Web !!! • A good source: http://www.w3schools.com/css

  12. Style Properties

  13. Our Examples • We use the following HTML example: This is<span>our example </span>for css. • The <span> tag is used to group elements for formatting with styles • Extremely useful tag...

  14. Font Properties • Font properties: family, size, weight, style, variant, ... span { font-family: courier; font-size:130%; font-style:italic; font-weight:bold}

  15. Text Properties • Text properties: color, transform, decoration, … span { color:#00cc00; text-decoration:line-through; text-transform:uppercase}

  16. Background Properties • Background properties: background-color, background-image, … span {background-color:#00ff00} span {background-image:url('bg.gif');}

  17. Layout Properties

  18. Page Layout • Each HTML element defines a layer (rectangular box) that is placed in some location on the page • Layers are nested with correspondence to the nesting of their elements

  19. Inline vs. Block Elements • There are two type of elements: • Block elements: p, ol, table, div, h1, etc. • Inline elements: b, i, a, span, cite, etc. • Layers of block elements are separated from their adjacent elements (i.e., a new line before and after), while inline elements are not • You can turn a block into an inline and vice-versa, using the display property, e.g., h1 { display: inline }

  20. Positioning Elements • Using CSS, you can define the position of an element inside its parent layer • For that, use the properties position, left, right, top and bottom span { position:relative; left:1cm; top: 1cm; color:#00cc00;}

  21. Position Types • But 1cm left to what?? • For that, we have the position property • Four position types: • static: the default position • absolute: relative to the parent layer coordinates • relative: relative to the static position • fixed: relative to the window coordinates

  22. Position Examples span { position:absolute; left:1cm; top: 1cm; color:#00cc00;} span { position:fixed; left:1cm; top: 1cm; color:#00cc00;}

  23. Position Examples span { position:static; left:1cm; top: 1cm; color:#00cc00;} Totally Ignored! This is thedefault position type

  24. More Layout Properties • Layer properties • margin-top (-bottom, -left, -right) • padding-top (-bottom, -left, -right) • border-width (-color, -style, … ) • Text Layout • direction, word-spacing, white-space, letter-spacing, line-height, text-align, text-indent, …

  25. Length Units • CSS has several types of length units: • em, ex: height of current fonts • px, in, cm, mm, pt, pc: international units • %: ratio of parent’s respective dimension • A page should remain a proper layout when windows (and even fonts) resize • Hence, do not assume anything about default sizes

  26. Selector Types

  27. Not supported by IE 5, 5.5 and 6 Several Kinds of Selectors • Type Selectors • Class Selectors • ID Selectors • Attribute Selectors • Universal Selector • Child Selectors • Adjacent-Sibling Selectors • Descendant Selectors • Pseudo-Class Selectors • Pseudo-Element Selectors

  28. Type Selector • A type selector is the name of an element type • A type selector matches every instance of the element type LI {color: red;font-size:16px} Matches: <ol> <li> An item </li> <liclass="reditem"> Another item </li> </ol>

  29. Class Selector • A class selector is a selector of the form x.y • It matches xs that have the classattribute with value y LI.reditem {color: red} .reditem { color: red} will also work! Matches: <ol> <li> An item </li> <liclass="reditem"> Another item </li> </ol>

  30. ID Selectors • IDs are identical to classes, except that there can only be one element with a given ID in a document LI#23 {color: red} #23 { color: red} will also work! Matches: <ol> <li> An item </li> <liid="23"> Another item </li> </ol>

  31. Attribute Selectors • p[attribute] • matches p when attribute is set to any value • p[title=intro] or p[title="intro"](the quotes are optional) • matches p when its title attribute is set to “intro” • p[class~=green] • matches p when the class attribute value includes the word “green”

  32. Universal Selector • The universal selector matches every element • The following rule means that all the text will have a size of 40px * {font-size: 40px }

  33. Descendant Selector • A descendant selector has the form S1 S2 where S1 and S2are selectors • It matches all elements that • match S2, and • are descendants (nested in) elements that match S1

  34. An Example p em {color: blue} Matches: This is <em>not blue</em>. <p> This is <em> blue </em> <span><i>and so is <em> this </em></i></span>. </p> What will this match? .href em {color: blue}

  35. Pseudo-Classes • Pseudo class selectors are similar to class selectors, but they match states rather than class values • For example, a link can be in the states: visited, active, mouse-over (“hover”), etc. • Another example: a text-area can be focused

  36. Examples of Rules for Pseudo-Classes • A:link {color: blue} • A:visited {color: purple} • A:hover {font-size: 1.5em} • A:active {color: red} • INPUT:focus {background-color: yellow}

  37. Grouping Selectors • We can group several declarations by specifying several selectors, separated by commas • For example, the following rule applies to all elements that match eitherH1,P B, orH2[class=largehead] P B, H1, H2.largehead{font-size: 120%}

  38. Inserting Style to a Page

  39. Inline Styles • In an inline style, the declaration block appear as the value of the attribute style of the element • Almost every tag can have the style attribute • exceptional: base, head, html, meta, param, script, style and title <pstyle="color: green; font-size: 1.5em; font-style: italic"> This text will be shown in italic green and the size will be 1.5 times the current font size </p>

  40. Document-Level Style <html> <head> <style type="text/css"> body{color: red;background: skyblue;} h1{color: blue } </style> </head> <body>... </body> </html>

  41. Imported Style Sheets • The @import rule imports the style rules of another style sheet • Usage: @import url(file.css) • Several import rules may appear at the beginning of the style sheet • Import rules can appear in embedded style sheets or in external style sheets

  42. Imported Style Sheets An Example: @importurl(general.css); body { color: red;background:skyblue } h1 {color: blue } Why do we need the import command?

  43. Inheritance and Cascading

  44. Inheritance of Properties • Consider a property of an element that does not match any rule • For some properties (inherited properties), the computed value of this property is inherited from the parent of the element • For example, color,font and word-spacing are inherited • Yet border, margin and padding are not!

  45. An Example • Given the rules: • body { font-size: 10pt } • h1 { font-size: 120% } • What will be the font size of the <em> element? Computed Value: 12pt <body> <h1>A <em>large</em> heading</h1> </body>

  46. Cascading of Styles • CSS merges style rules from different places (inline, document-level, linked and defaults) • Different places may have conflicting style rules • conflicts may even arise in a single source • The process of merging (cascading) styles from different places determines which style rules have higher priority

  47. Determining Property Values • Suppose that we would like to determine the value of property p for element e • Choose all declarations that have a selector that matches e and have the property p • Choose the first declaration in the cascading order, and apply the corresponding rule

  48. Cascading Order The cascading order of declarations: • Primary sort: importance of origin • Secondary sort: specificity of selectors • Final sort: order of appearance

More Related