1 / 67

CSS Basics: Introduction to Styling with Cascading Style Sheets

Learn about CSS basics, selectors, rules, values, and more. Understand how CSS separates content from presentation and improves flexibility. Discover the philosophy behind CSS and its impact on web design.

Download Presentation

CSS Basics: Introduction to Styling with 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 Overview Introduction to Cascading Style Sheets Styling HTML with CSS Web Fundamentals SoftUni Team Technical Trainers Software University http://softuni.bg

  2. Table of Contents body { … } margin: 2px; color: #2aa0bd; • What is CSS? • CSS Basic Selectors and Rules • Select by element Name, Id or Class • Importing CSS into HTML • Inline, Embedded and External Styles • Nested Selectors, Attribute Selectors,Pseudo Selectors • CSS Values: Types, Ranges, Units • Default Browser Styles • CSS Rules Precedence

  3. Cascading Style Sheets Separating Content from Presentation

  4. CSS: Philosophy Presentation (CSSdocument) Content (HTML document) • Title • Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse at pede ut purus malesuada dictum. Donec vitae neque non magna aliquam dictum. • Vestibulum et odio et ipsum • accumsan accumsan. Morbi at • arcu vel elit ultricies porta. Proin • tortor purus, luctus non, aliquam nec, interdum vel, mi. Sed nec quam nec odio lacinia molestie. Praesent augue tortor, convallis eget, euismod nonummy, lacinia ut, risus. Bold Italics Indent Separate content from presentation!

  5. The Resulting Page • Title • Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Suspendisse at pede ut purus malesuada dictum. Donec vitae neque non magna aliquam dictum. • Vestibulum et odio et ipsum • accumsan accumsan. Morbi at • arcu vel elit ultricies porta. Proin • Tortor purus, luctus non, aliquam nec, interdum vel, mi. Sed nec quam nec odio lacinia molestie. Praesent augue tortor, convallis eget, euismod nonummy, lacinia ut, risus.

  6. CSS Intro Styling with Cascading Stylesheets

  7. CSS Introduction • Cascading Style Sheets (CSS) • Used to describe the presentation of documents • Define sizes, spacing, fonts, colors, layout, etc. • Improve content accessibility • Improve flexibility • Designed to separate presentation from content • Due to CSS, all HTML presentation tags and attributes are deprecated, e.g. <font>, <center>, <b>, <i>, etc.

  8. CSS Style Sheets Syntax h1, nav h2, h3.big, #title { color: green; font-weight: bold } CSS Stylesheetsconsist of rules, selectors, declarations, properties and values Selectors are separated by commas Declarations are separated by semicolons Properties and values are separated by colons

  9. Why “Cascading”? • Priority scheme determining which style rules apply to element • Cascade priorities or specificity (weight) are calculated and assigned to the rules • Child elements in the HTML DOM tree inherit styles from their parent • Can override them • Control via !important rule

  10. Why "Cascading"? (2)

  11. Style Inheritance • Some CSS styles are inherited and some are not • Text-related and list-related properties are inherited: • color, font-size, font-family, line-height, text-align, list-style, text-decorationetc. • Box-related and positioning styles are not inherited: • width, height, border, margin, padding, position, float, etc. • <a> and <input> elements do notinherit color and text-decoration

  12. CSS, HTML and Media • CSS can be applied to any XML document • Not just to HTML / XHTML • CSS can specify different styles for different media • On-screen • In print • Handheld, projection, etc. • … even by voice or Braille-based reader • @mediascreen / @mediaprint / @mediatv

  13. CSS Selectors Select the Elements to Apply a Style

  14. CSS Selectors .header a { color: green } #menu>li { padding-top: 8px } • CSS Selectors determine which element the rules apply to: • All elements of specific type (tag) • Those that match a specific attribute (id, class) • Elements may be matched depending on how they are nested in the document tree (HTML) • Examples:

  15. Primary Selectors h1 { font-family: Verdana, sans-serif; } p { margin: 0; color: #EEE; } #element_id { color: #ff0000; } #wrapper { margin: 0 auto; } .myClass { border: 1px solid red; } .special { font-weight: bold; color: yellow; } By tag (element selector): By element ID: By class name (only for HTML):

  16. Nested Selectors p.item a { text-decoration: underline } p * { color: black } * { background: #E5E5E5 } • Match relative to element placement • Matches direct and indirect child elements: • This matches all <a> tags that are inside of <pclass="item"> • *– universal (wildcard) selector (avoid or use with care!) • This matches all descendants of the <p>element: • Matching all elements in the page:

  17. Nested Selectors (2) img + .link { float: right } p > .error { font-size: 8px } p.post-text.special { font-weight: bold } • + selector – used to match “next sibling”: • Matches all siblings with class name linkafter <img>element • >selector – matches direct child nodes: • Matches all elements with class error, direct children of <p> • .class1.class2(no space!) • Matches elements with both (all) classes applied at the same time

  18. Attribute Selectors a[title] { color: black } input[type='text'] { font-family: Consolas } #reg-form input[type='text'] { background: #EEE } a[title*=logo] { border: none } • []selects elements based on attributes • Selects <a> elements which has titleattribute: • Selects <input> elements with type='text' • Selects <a> elements whose title contains the word "logo":

  19. Combined CSS Selectors h1, .link, #top-link { font-weight: bold; } h1, .link, #top-link { font-weight: bold; } html, body, div, h1, ul, li, a, img, span, form, legend, input, button, textarea, fieldset { margin: 0; padding: 0; } html, body, div, h1, ul, li, a, img, span, form, legend, input, button, textarea, fieldset { margin: 0; padding: 0; } • Selectors can be combined with commas: • This matches <h1> tags, elements with class "link", and the element with id "top-link" • Resetting the browsers default margins and paddings:

  20. Combining Multiple Selectors <h1 id="header" class="intro">HTML and CSS</h1> h1#header.intro:hover { text-decoration: underline; color: #C00; } • We can combine selectors to achieve more specific rules • Don't put spaces between combined selectors • "A space B" means B descendant of A; AB means "A and B"

  21. CSS Selectors Live Demo

  22. Importing CSS Into HTML How to Use CSS with HTML?

  23. Importing CSS Into HTML • CSS (presentation) can be put in HTML (content) in three ways: • Inline: the CSS rules in the style attribute • No selectors are needed • Embedded: in the <head> in a <style> element • External: CSS rules in separate file (best) • Usually a file with .css extension • Linked via <link rel="stylesheet" href="…"> • Via the@import directive in embedded CSS block

  24. Linking HTML and CSS (2) HTML links to an external CSS file • Using external CSS files is highly recommended • Simplifies the HTML document • Improves page load speed (CSS files are cached)

  25. Inline Styles: Example <!DOCTYPE html> <html lang="en"> <head> <title>Inline Styles</title> </head> <body> <p>Here is some text</p> <!--Separate multiple styles with a semicolon--> <p style="font-size: 20pt">Here is some more text</p> <p style="font-size: 20pt; color: #0000FF">Even more text</p> </body> </html>

  26. Embedded Styles <style type="text/css"> • Embedded in the HTML in the <style> tag: • The <style> tag is placed in the <head> section of the document • type attribute specifies the MIME type • MIME describes the format of the content • Other MIME types: text/html, image/gif, text/plain, … • Not required in HTML5 • Used for document-specific styles

  27. Embedded Styles: Example <!DOCTYPE html> <html> <head> <title>Style Sheets</title> <style type="text/css"> em {background-color:#8000FF; color:white} h1 {font-family:Arial, sans-serif} p {font-size:18pt} .blue {color:blue} </style> <head>

  28. Embedded Styles: Example (3) … <body> <header> <h1 class="blue">A Heading</h1> </header> <article> <p>Here is some text. Here is some text. Here is some text. Here is some text. Here is some text.</p> <h1>Another Heading</h1> <p class="blue">Here is some more text. Here is some more text.</p> <p class="blue">Here is some <em>more</em> text. Here is some more text.</p> </article> </body> </html>

  29. External CSS Styles <link rel="stylesheet" type="text/css" href="styles.css"> • External linking • Separate pages can all use a shared style sheet • Modify a single file to change the styles across your entire Web site • <linkrel="stylesheet"> • Specifies a relationship between documents (HTML and CSS) • The <link>elements should be in the <head>

  30. External CSS Styles (2) <style type="text/css"> @import url("styles.css"); /* same as */ @import "styles.css"; </style> @import • Another way to link external CSS files • Insert a CSS file into another CSS file: • Ancient browsers do not recognize @import

  31. External Styles: Example /* CSS Document */ a { text-decoration: none } a:hover { text-decoration: underline; color: red; background-color: #CCFFCC } li em { color: red; font-weight: bold } ul { margin-left: 2cm } ul ul { text-decoration: underline; margin-left: .5cm }

  32. External Styles: Example (2) <!DOCTYPE html> <html> <head> <title>Importing style sheets</title> <link type="text/css" rel="stylesheet" href="styles.css" /> </head> <body> <h1>Shopping list for <em>Monday</em>:</h1> <li>Milk</li> …

  33. External Styles: Example (3) … <li>Bread <ul> <li>White bread</li> <li>Rye bread</li> <li>Whole wheat bread</li> </ul> </li> <li>Rice</li> <li>Potatoes</li> <li>Pizza <em>with mushrooms</em></li> </ul> <a href="http://food.com" title="grocery store">Go to the Grocery store</a> </body> </html>

  34. Pseudo Selectors Relative to Element Content or State

  35. Common Pseudo Selectors a:hover { color: red } p:first-line { text-transform: uppercase } .title:before { content: "»" } .title:after { content: "«" } • Pseudo-classes define state • :hover, :visited, :active, :lang • Pseudo-elements define element "parts" or are used to generate content • :first-line, :before, :after

  36. Common Pseudo Selectors Live Demo

  37. Structural Pseudo-Classes • :root • The root of the document • E:nth-child(n) • An E element, the n-thchild of its parent • E:nth-last-child(n) • An E element, the n-thchild of its parent, counting from the last on • E:nth-of-type(n) • An E element, the n-th sibling of its type

  38. Structural Pseudo-Classes (2) • E:nth-last-of-type(n) • An E element, the n-thsibling of its type, counting from the last one • E:last-child • An E element, last child of its parent • E:first-of-type • An E element, first sibling of its type • E:last-of-type • An E element, last sibling of its type

  39. Structural Pseudo-Classes (3) • E:only-child • An E element, only child of its parent • E:only-of-type • An E element, only sibling of its type • E:empty • An E element that has no children (including text nodes) • More detailed descriptions: http://www.w3.org/TR/css3-selectors/#structural-pseudos

  40. Structural Selectors Live Demo

  41. The UI Element States Pseudo-Classes • E:enabled • A user interface element E which is enabled • E:disabled • A user interface element E which is disabled • E:checked • A user interface element E which is checked (for instance a radio-button or checkbox) • Currently supported only in Opera and IE10 !

  42. UI Selectors Live Demo

  43. Other CSS 3 Selectors • E:target • An Eelement being the target of the referring URI • E:not(s) • An Eelement that does not match simple selector • E ~ F • An Felement preceded by an E element

  44. Other CSS 3 Selectors Live Demo

  45. Exercise in class CSS Overview

  46. CSS Values Types, Ranges, Units

  47. CSS Values li.nav-item { color: #44f1e1 } li.nav-item { color: rgb(68,241,255) } • All values in CSS are strings • They can represent values that are not strings • I.e. 14px means size 14 pixels • Colors are set in a red-green-blue format (RGB) • Both in hex and decimal

  48. Size Values • When setting a size (width, height, font-size, …) the values are given as numbers • Multiple formats / metrics may be used • Pixels, ems, rems, e.g. 12px, 1.4em, 1.2rem • Points, inches, centimeters, millimeters • E.g. 10pt, 1in, 1cm, 1mm • Percentages, e.g. 50% • Of the size of the container / current font size • Zero can be used with no unit: border:0;

  49. Size Values Live Demo

  50. Color Values The opacity values are from 0.0 to 1.0 color: #f1a2ff color: rgb(241, 162, 255) color: rgba(241, 162, 255, 0.1) color: hsl(291, 85%, 89%); color: hsl(291, 85%, 89%, 0.1); • Colors in CSS can be represented in few ways • Using red-green-blue • Or red-green-blue-alpha • Using hue-saturation-light • Or hue-saturation-light-alpha

More Related