intro/review - La Salle University

advertisement
Cascading Style Sheets
Basics
Why use Cascading Style Sheets?
• Allows you to set up a series of rules for all pages
in a site.
• The series may be changed by making a single
change to the rule—without requiring changes to
all the pages in the site.
• A separate file can be defined for the rules.
• Standards-compliant
How to add CSS to HTML Tags
• You can use the tags <style> </style>to list
a series of rules embedded in the header
• The styles are used to define specific sets of
characteristics for HTML tags, classes, or
IDs. Classes can be added to tags by using a
class attribute : <p class="fred">
Block vs. inline tags
• Block-level tags such as <p> add a line
break before and after the tag.
– <div> is block-level
• Inline tags such as <b> do not.
– <span> is inline
• Don't confuse these with inline styles, e.g.:
– <p style="color:red";>
Styles inline: in the Tag
• CSS rules consist of
selector {property1:value1; property2:value2;}.
• (For inline styles, the rules are enclosed in
quotes.)
• <h1 style="font-family: 'Times New
Roman'; font-variant: small-caps; color:
red;"> Hello World </h1>
Style Sheets Defined in <head>
• Surround with <style> … </style> tags. For HTML
include comments:
<style type="text/css">
/* CSS rules go here */
</style>
• Selectors can be HTML tags (h1), classes (.fred), ids
(#fred), pseudo-classes (.fred:hover), pseudo-elements
(.fred:first-letter) attributes (img[alt]), others. Ids can only
be used once per HTML page.
Sample Style sheet in <head>
<style type="text/css">
h1 {font-family: Georgia, ‘Times New Roman’, Times, serif;
color: red; text-align: center;}
h2 {font-weight: bold; color: orange;}
.dropcap {font: 100%/200% serif; color: blue; margin-top:
1em; position: relative; left: 10px; top: 10px;}
p {color: red; font-family: courier, monospace; padding:
1em;}
#fred {border: 2px solid #cf4;}
</style>
(Use vertical format as in Zeldman Chap. 9)
Using the Style Sheet
• When you use the H1, H2 or P tags the
styles defined in the style sheet are applied.
• To use the .dropcap class you may
– Either add the class to the tag
• .dropcap and add the class name <p
class="dropcap">
– Define a set of div or span tags and add the
attribute class=" "
• <span class="dropcap">
External Linking
• You may also define a style sheet as a text
file which includes the defined set of rules.
• The file contains only the selectors and the
property: value pairs.
• The file is the same as the rules in the
<head> element without the <style></style>
tags.
• The external file is then connected to the HTML page by
using the tag
• <link rel="stylesheet" href="xxx.css" type="text/css" />
Note /> for XHTML; for HTML5 just
<link rel=“stylesheet” href=“xxx.css” >
• The xxx.css is the name of the file path that contains the
list of rules.
• You should end the file with the extension css to be sure
you know what the file contains.
• You may also import one CSS file into another:
<style type="text/css"> @import url(other.css)</style>.
Order of style rules (cascade)
• The last definition is the one which is applied to
the tag.
• So if a css file is attached with a definition for p
tags and there is an inline definition for the p tag
after the reference to the embedded or external
file, the inline definition will apply. In general
inline>embedded>external.
• If the user has a set of defined browser
characteristics which conflict with the css, the user
characteristics will override the css definition.
Defining Classes
• You can define a set of specifics which may
be applied to a series of tags.
• The definition is prefaced with a
.classname. You reference the class name
in the HTML tag by using the attribute
class="classname"
Defining IDs
• In the style sheets, you may also define an ID,
which acts like a class except there can be only
one per page <div class="header">. Note in
HTML5 this would be replaced by <header>
• The ID always starts with a pound/hash sign (#):
#idname
• To apply the ID tag to the HTML tag, you add the
attribute <p id="idname">
• See Zeldman chapter 8 for reasons to use id.
Example
• #area1 {color: red}
• < div id="area1">
Multiple Tags with the same
Style (grouped selectors)
• Separate the list of tags by commas and the
place the set of style rules in parentheses for
the entire group.
• h1, h2, h3 {color: blue;}
Descendant (contextual) Selectors
• You can pass a style definition down a list of related
selectors. E.g.
#copy li p {font-size: 1.5em;} (Read this right to left. All p
that are descendants of li that are descendants of an
element with id="copy" get this rule.)
• The selectors are separated by a space.
• The first selector in the list is the parent, the others are
descendants.
• Changes to the first selector will be inherited by the next
selector.
CSS 2.1 selectors (IE 7+, MOSe)
• Child selectors
li>p {color: red;} (all p that are children of an li)
• Adjacent siblings
li+li {color: #234;} (all li that are adjacent siblings of li)
• Universal (wild card) selector
* {color:red;}
• #copy * i{color:#123456;}
• Attribute selectors
a[href="page2.html"] {color: black;} OR
div[align] {font-family: serif;}
Pseudo-classes
• Most common are
:link, :visited, :hover, :active. E.g.
a:hover {text-decoration:underline;}
• Also (2.1) :first-child, :focus, :blur, :lang()
• With IE7+ (and always with MOSe) can use
the "whatever:hover" e.g.
li:hover {text-decoration:underline;}
Pseudo-elements
• Not often used, but Gillenwater uses :before
and :after for "generated content."
• :first-letter, :first-line, :before, :after
Some other options
• !important tag
• Adding the !important to the style rule will
override any other rule.
• Media queries: in <link …> or <style>
media="screen" media="print" media="handheld"
media="all" etc. <style media="print">
• media="print" — used for a print page style sheet.
(Resume project)
• media="screen" – used for a browser display [but
omit if only sending to a browser]
Competing rules
• The cascade as described earlier
• Inheritance (rules passed to descendants)
• Specificity (id=100, class=10, tag=1) (sort
of)
• Lower rule in a style sheet or declaration
wins
h1 {color:blue;}
h1 {color:red;} so h1 will be red
Comments
• CSS comments look like JavaScript:
<style type="text/css">
/* Multiple lines of comment go here and can continue
until the closing mark */
p {color:red;}
</style>
• Conditional comments are best way to serve IE rules. E.g.
<!--[if IE 7]>
<link type="text/css" rel="stylesheet" href="ie7.css">
<![endif]-->
OR <!--[if lte IE 7> ... <![endif]-->
Or <!--[if IE]> ... <![endif]-->
Defaults for font-family
• serif—small ornamentation at the end of the
letters
• sans-serif – not serif
• monospace—all letters occupy same
amount of space
• cursive—resembles handwriting
• fantasy—decorative fonts that are not the
same as the other styles
Setting Font
• font-family: font stack (give the one you prefer
first); multiple word families need quotes
font-family: "courier new", courier, monospace;
• @font-face is used to define the name and location
of a font to be downloaded to the user’s computer.
• @font-face{font-family: nametodownload;
src:url(filelocation);}
• Best idea—use browser-safe screen fonts
(Georgia, Verdana)
Other font properties
• font-size:
– Absolute (pt, in cm, mm)
– Relative (sort of) (px, em, %)
– Absolute expression
• xx-small, x-small, small, medium, large, x-large,
xx-large (smaller, larger are relative)
• font-style:
– italic
•
font-weight:
– normal, bold, lighter.
– Or use a value of 100 to 900 in increments of 100.
• Creating smallcaps
– font-variant
• small-caps
• normal
• Shorthand: font options separated by spaces after the font:
property. E.g.
h1 {font: bold italic small-caps 12px/18px verdana, serif;}
• At a minimum, need font-family, font-size. E.g.
h1 {font: 12px georgia, "times new roman", times, serif;
Download