How To Learn “CSS” From Easy Way
Introduction To The Css :
A CSS (cascading style sheet) file allows
you to separate your web sites (X)HTML content from it's style. As always you
use your (X)HTML file to arrange the content, but all of the presentation (fonts,
colors, background, borders, text formatting, link effects & so on...) are accomplished
within a CSS. At this point you have some choices of how to use the CSS, either
internally or externally.
Internal Stylesheet :
First we will explore the internal method.
This way you are simply placing the CSS code within the
<head></head> tags of each (X)HTML file you want to style with the
CSS. The format for this is shown in the example below.
<head>
<title><title>
<style type="text/css">
CSS Content Goes Here
</style>
</head>
<body>
With this method each (X)HTML file contains
the CSS code needed to style the page. Meaning that any changes you want to
make to one page, will have to be made to all. This method can be good if you
need to style only one page, or if you want different pages to have varying
styles.
External Stylesheet :
Next we will explore the external method.
An external CSS file can be created with any text or HTML editor such as
"Notepad" or "Dreamweaver". A CSS file contains no (X)HTML,
only CSS. You simply save it with the .css file extension. You can link to the
file externally by placing one of the following links in the head section of
every (X)HTML file you want to style with the CSS file.
<link rel="stylesheet"
type="text/css" href="Path To
stylesheet.css" />
Or
you can also use the @import method as shown below
<style
type="text/css">@import url(Path To
stylesheet.css)</style>
Either of these methods are achieved by
placing one or the other in the
head
section as shown in example below.
<head>
<title><title>
<link
rel="stylesheet" type="text/css"href="style.css"
/>
</head>
<body>
Or
<head>
<title><title>
<style type="text/css"> @import url(Path To
stylesheet.css)
</style>
</head>
<body>
By using an external style sheet, all of
your (X)HTML files link to one CSS file in order to style the pages. This
means, that if you need to alter the design of all your pages, you only need to
edit one .css file to make global changes to your entire website.
Here are a
few reasons this is better.
Ø
Easier Maintenance
Ø
Reduced File Size
Ø
Reduced Bandwidth
Ø
Improved Flexibility
Are you
getting the idea? It's really cool.
Cascading Order:
In the previous paragraphs, I have
explained how to link to a css file either internally or externally. If you understood, than I am doing
a good job. If not don't fret, there is a long way to go before we are
finished. Assuming you have caught on already, you are probably asking, well
can I do both? The answer is yes. You can have both internal, external, and now
wait a minute a third way? Yes inline styles also.
Inline Styles:
I have not mentioned them until now because
in a way they defeat the purpose of using CSS in the first place. Inline styles
are defined right in the (X)HTML file along side the element you want to style.
See example below.
<p style="color:
#ff0000;">Some red text</p>
Some Red Text : Inline styles will NOT allow the
user to change styles of elements or text
formatted
this way
So, Which Is the Better ?
So with all these various ways of inserting
CSS into your (X)HTML files,you may now be asking well which is better, and if
I use more than onemethod, in what order do these different ways load into my
browser? All the various methods will cascade into a new "pseudo"
stylesheet in
the following order:
1. Inline Style (inside (X)HTML element)
2. Internal Style Sheet (inside the
<head> tag)
3. External Style Sheet
As far as which way is better, it depends
on what you want to do. If you have only one file to style then placing it
within the <head></head> tags (internal) will work fine. Though if
you are planning on stylingmultiple files then the external file method is the
way to go.
Choosing between the <link related=>
& the @import methods are completely up to you. I will mention that the
@import method may take a second longer to read the CSS file in Internet
Explorer than the <link related=> option. To combat this see Flash of unstyled content
Users With Disabilities:
The use of external style sheets also can
benefit users that suffer from disabilities. For instance, a user can turn off
your stylesheet or substitute one of there own to increase text size, change
colors and so on. For more information on making your website accessible to all
users please
read
Dive into accessibility
Power User:
Swapping stylesheets is beneficial not only
for users with disabilities, but also power users who are particular about how
they read Web documents.
Browser Issues:
You will discover as you delve farther into
the world of CSS that all browsers are not created equally, to say the least.
CSS can and will render differently in various browsers causing numerous
headaches
CSS Syntax
The syntax for CSS is different than that
of (X)HTML markup. Though it is not too confusing, once you take a look at it.
It consists of only 3 parts.
selector { property:
value }
The selector is the (X)HTML element that
you want to style. The property is the actual property title, and the value is
the style you apply to that property.
Each selector can have multiple properties,
and each property within that selector can have independent values. The
property and value are seperated with a colon and contained within curly
brackets. Multiple properties are seperated by a semi colon. Multiple values
within a
property are sperated by commas, and if an
individual value contains more than one word you surround it with quotation
marks. As shown below.
body {
background: #eeeeee;
font-family:
"Trebuchet MS", Verdana, Arial, serif;
}
As you can see in the above code I have
seperated the color from the font-family with a semi-colon, seperated the
various fonts with commas and contained the "Trebuchet MS" within
quotations marks. The final result sets the body color to light grey, and sets
the font to ones that
most
users will have installed on there computer.
I have changed the way I layout my code,
but you can arrange it in one line if you choose. I find that it is more
readable if I spread each property to a seperate line, with a 2 space
indention.
Inheritance
:
When you nest one element inside another,
the nested element will inherit the properties assigned to the containing
element. Unless you modify the inner elements values independently.
For example, a font declared in the body
will be inherited by all text in the file no matter the containing element,
unless you declare another font for a specific nested element.
body {font-family:
Verdana, serif;}
Now all text within the (X)HTML file will
be set to Arial “Bold”
If you wanted to style certain text with
another font, like an h1 or a paragraph then you could do the following.
h1 {font-family:
Georgia, sans-serif;}
p {font-family: Tahoma,
serif;}
Now all <h1> tags within the file
will be set to Georgia and all <p> tags are set to Tahoma, leaving text
within other elements unchanged from the body declaration of Verdana.
There are instances where nested elements
do not inherit the containing elements properties.
For example, if the body margin is set to
20 pixels, the other elements within the file will not inherit the body margin
by default.
body {margin: 20px;}
Combining Selectors :
You can combine elements within one
selector in the following fashion.
h1, h2, h3, h4, h5, h6 {
color: #009900;
font-family: Georgia,
sans-serif;
}
As you can see in the above code, I have
grouped all the header elements into one selector. Each one is seperated by a
comma. The final result of the above code sets all headers to green and to the
specified font. If the user does not have the first font I declared it will go
to
another sans-serif font the user has
installed on there computer.
Comment Tags :
Comments can be used to explain why you
added certain selectors within your css file. So as to help others who may see
your file, or to help you remember what you we're thinking at a later date. You
can add comments that will be ignored by browsers in the following manner.
/* This is a comment */
You will note that it begins with a /
(forward slash) and than an * (asterisks) then the comment, then the closing
tag which is just backward from the opening tag * (asterisks) then the /
(forward slash).
CSS Classes
The class selector allows you to style
items within the same (X)HTML element differently. Similiar to what I mentioned
in the introduction about inline styles. Except with classes the style can be
overwritten by changing out stylesheets. You can use the same class selector
again and
again within an (X)HTML file. To put it
more simply, this sentence you are reading is defined in my CSS file with the
following.
body
{margin: 20px;}
h1, h2, h3,
h4, h5, h6 {
color:
#009900;
font-family:
Georgia, sans-serif;
}
/* This is a
comment */
p {
font-size: small;
color: #333333
}
Pretty simple, but lets say that I wanted
to change the word "sentence" to green bold text, while leaving the
rest of the sentence untouched. I would do the following to my (X)HTML file.
<p>
To put it
more simply, this <span
class="greenboldtext">sentence</span> you are reading is styled
in my CSS
file by the following.
</p>
Then in my CSS file I would add this style
selector:
.greenboldtext{
font-size: small;
color: #008080;
font-weight: bold;
}
The final result would look like the
following:
To put it more simply, this sentence you are reading is
styled in my CSS file by the following.
Please note that a class selector begins
with a (.) period. The reason I named
it "greenboldtext" is for example purposes, you can name it whatever
you want. Though I do encourage you to use selector names that are descriptive.
You can reuse the "greenboldtext" class as many
times as you want.
CSS IDs
IDs are similar to classes, except once a specific
id has been declared it cannot be used again within the same (X)HTML file.
I generally use IDs to style the layout
elements of a page that will only be needed once, whereas I use classes to style text and such
that may be declared multiple times.
The main container for this page is defined
by the following.
<div id="container">
Everything
within my document is inside this division.
</div>
I have chosen the id selector for the
"container" division over a class, because I only need to use it one
time within this file.
Then in my CSS file I have the following:
#container{
width: 80%;
margin:
auto;
padding: 20px;
border: 1px solid #666;
background: #ffffff;
}
You will notice that the id selector begins
with a (#) number sign instead of
a (.) period, as the class selector does.
CSS Divisions
Ok so you have finished the first 4
chapters in my series. You have learned the very basics of CSS, how the syntax
works and a bit about classes and IDs. Now we are gonna take a quick break from
CSS and focus on the (X)HTML side of using it.
Divisions:
Divisions are a block level (X)HTML element used to
define sections of an (X)HTML file. A division can contain all the parts that
make up your website. Including additional divisions, spans, images, text and
so on.
You define a division within an (X)HTML file by placing
the following between the <body></body> tags:
<div>
Site contents go here
</div>
Though most likely you will want to add some style to it.
You can do that in the following fashion:
<div id="container">
Site contents go here
</div>
The CSS file contains this:
#container{
width: 70%;
margin: auto;
padding: 20px;
border: 1px solid #666;
background: #ffffff;
}
Now everything within that division will be styled by the
"container" style rule, I defined within my CSS file. A division
creates a linebreak by default. You can use both classes and IDs
with a division tag to style sections of your website.
CSS Spans
Spans are very similar to divisions except
they are an inline element versus a block level element. No linebreak is
created when a span is declared.
You can use the span tag to style certain
areas of text, as shown in the following:
<span
class="italic">This text is italic</span>
Then in my CSS file :
.italic{
font-style: italic;
}
The final
result is: This text is italic.
The purpose of the last 2 chapters was to
provide you with a basis for using CSS in an (X)HTML file. For a more detailed explaination of XHTML please visit … Web Designing Plateform In The Menu “Web Tools” Css .
CSS Margins
Inherited : No
As you may have guessed, the margin
property declares the margin between an (X)HTML element and the elements around it. The margin
property can be set for the top, left, right and bottom of an element.
(see
example below)
margin-top: length percentage or auto;
margin-left:
length percentage or auto;
margin-right:
length percentage or auto;
margin-bottom:
length percentage or auto;
As you can also see in the above example
you have 3 choices of values for the margin property
Ø
length
Ø
percentage
Ø
auto
You can also declare all the margins of an
element in a single property as follows:
margin: 10px 10px 10px
10px;
If you declare all 4 values as I have
above, the order is as follows:
1. top
2. right
3. bottom
4. left
If only one value is declared, it sets the
margin on all sides. (see below)
margin: 10px;
If you only declare two or three values,
the undeclared values are taken from the opposing side. (see below)
margin: 10px
10px; /* 2 values */
margin: 10px
10px 10px; /* 3 values */
You can set the margin property to negative
values. If you do not declare the margin value of an element, the margin is 0
(zero).
margin: -10px;
Elements like paragraphs have default
margins in some browsers, to combat this set the margin to 0 (zero).
p {margin: 0;}
You can see in the example below, the
elements for this site are set to be 20px (pixels) from the body
body{
margin:
20px;
background:
#eeeeee;
font-size:
small;
font-family:
Tahoma, Arial, "Trebuchet MS", Helvetica, sansserif;
text-align:
left;
}
CSS Padding
Inherited: No
Padding is the distance between the border
of an (X)HTML element and the content within it.
Most of the rules for margins also apply to padding,
except there is no "auto" value, and negative values cannot be
declared for padding.
padding-top: length percentage;
padding-left: length percentage;
padding-right: length percentage;
padding-bottom: length percentage;
As you can also see in the above example
you have 2 choices of values for the
padding property
Ø
length
Ø
percentage
You can also declare all the padding of an
element in a single property as follows:
padding: 10px 10px 10px
10px;
If you declare all 4 values as I have above, the order is as follows:
1. top
2. right
3. bottom
4. left
If only one value is declared, it sets the
padding on all sides. (see below)
padding: 10px;
If you only declare two or three values,
the undeclared values are taken from the opposing side. (see below)
padding:
10px 10px; /* 2 values */
padding:
10px 10px 10px; /* 3 values */
If you do not declare the padding value of
an element, the padding is 0 (zero).
You can see in the example below, the main
container for this site has 30px (pixels) of padding between the border and the
text.
#container{
width: 70%;
margin:
auto;
padding:
30px;
border: 1px
solid #666;
background:
#ffffff;
}
CSS Text Properties
Inherited : Yes
Color
You can set the color of text with the
following:
Possible values are
Ø
color name - example:(red, black...)
Ø
hexadecimal number - example:(#ff0000, #000000)
Ø
RGB color code - example:(rgb(255, 0, 0), rgb(0, 0, 0))
Letter
Spacing :
You can adjust the space between letters in
the following manner. Setting the value to 0, prevents the text from
justifying. You can use negative values
letter-spacing: value;
Possible values are
Ø
normal
Ø
length
Example:
T h e s e
l e t t e r s a r e s p a c e d a t 5 p x .
Text
Align :
You can align text with the following:
text-align: value;
Possible values are
Ø
left
Ø
right
Ø
center
Ø
justify
Font
Variant :
You can set the variant of text within an
element with the font-variant Property
font-variant: value;
Possible values are
Ø
normal
Ø
small-caps
Font
Weight :
You can control the weight of text in an
element with the font-weight property:
font-weight: value;
Possible values are
Ø
lighter
Ø
normal
Ø
100
Ø
200
Ø
300
Ø
400
Ø
500
Ø
600
Ø
700
Ø
800
Ø
900
Ø
Bold
Ø
Bolder
CSS Anchors, Links
and Pseudo
Classes
Below are the various ways you can use CSS
to style links.
a:link {color: #009900;}
a:visited {color:
#999999;}
a:hover {color:
#333333;}
a:focus {color:
#333333;}
a:active {color:
#009900;}
Now lets take a look at what each one of
the above link styles actually does.
a:link {color: #009900;}
The first on the list sets the color of a
link when no event is occurring
a:visited {color:
#999999;}
The second sets the color a link changes
to, when the user has already visited that url
a:hover {color:
#333333;}
The third sets the color a link changes to
as the user places their mouse
pointer over the link
a:focus {color:
#333333;}
The fourth is primarilly for the same
purpose as the last one, but this one is for users that are not using a mouse
and are tabbing through the links via there keyboards tab key, it sets the
color a link changes to as the user tabs through the links
a:active {color:
#009900;}
The fifth on the list sets the color a link
changes to as it is pressed.
Lets look
at an example: Google
If your last visit to Google is not stored
in your cache than the above link to google is blue, if you have already been
to google then the link should be grey. if you mouseover or tab through the
links, the link will change to dark grey, and last but not least if you click
and hold the link without releasing it you will see it return back to the
original blue color.
You must declare the a:link and a:visited before you declare
a:hover.
Furthermore, you must declare a:hover
before you can declare a:active.
Using the above code will style all links
on your web page, unless you declare a seperate set of link styles for a
certain area of your webpage .
Pseudo Classes:
You can set links contained in different
parts of your web page to be different colors by using the pseudo class. For
example, lets say you want your links in the content area to have a different
color then the links in the left or right column of your webpage.
You can do this in the following fashion:
#content a:link {color:
#009900;}
#content a:visited
{color: #999999;}
#content a:hover {color:
#333333;}
#content a:focus {color:
#333333;}
#content a:active
{color: #009900;}
Now assuming that you have your main
content in a division named "content" all links within that division
will now be styled by this new style selector. Should your selector have a
different name, just change the #content selector to match your division name.
Then for the links in a column you could
use the following:
#column a:link {color:
#009900;}
#column a:visited
{color: #999999;}
#column a:hover {color:
#333333;}
#column a:focus {color:
#333333;}
#column a:active {color:
#009900;}
Once again, this assumes the name of the
column division, just change the name to match yours.
This same method can be accomplished by
declaring a class instead of an id.
a.column:link {color:
#009900;}
a.column:visited {color:
#999999;}
a.column:hover {color:
#333333;}
a.column:focus {color:
#333333;}
a.column:active {color:
#009900;}
Though in this case you will need to add a
class to each link
<a class="column" href="" title="">some link text</a>
But, there is still yet an easier way
.column a:link {color:
#009900;}
.column a:visited
{color: #999999;}
.column a:hover {color:
#333333;}
.column a:focus {color:
#333333;}
.column a:active {color:
#009900;}
Then in the (X)HTML file
<div
class="column">
<a href="" title="">some
link text</a>
</div>
There are other properties that can be
added to links other than color, I was just trying to keep it simple. Almost
any property that can be used to style text and fonts can be used to style
links also
CSS Backgrounds
Inherited: No
Background
You can style the background of an element
in one declaration with the background property.
background: #ffffff
url(path_to_image) top left no-repeat fixed;
Values:
Ø
attachment
Ø
color
Ø
image
Ø
position
Ø
repeat
Or you can set each
property individually
Background Attachment
If you are using an image as a background.
You can set whether the background scrolls with the page or is fixed when the
user scrolls down the page with the background-attachment property
background-attachment:
value;
Values:
Ø
fixed
Ø
scroll
Background Color
You can specifically declare a color for
the background of an element using the background-color property.
background-color: value;
Values:
Ø
color name
Ø
hexadecimal number
Ø
RGB color code
Ø
Transparent
Background Image
You can set an image for the background of
an element using the background-image property.
background-image:
url(path_to_image);
Values:
Ø
url
Ø
none
Background Position
You can position an image used for the
background of an element using the background-position property.
background-position:
value;
Values:
Ø
top left
Ø
top center
Ø
top right
Ø
center left
Ø
center center
Ø
center right
Ø
bottom left
Ø
bottom center
Ø
bottom right
Ø
x-% y-%
Ø
x-pos y-pos
Background Repeat
You can set if an image set as a background
of an element is to repeat (across=x and/or down=y) the screen using the
background-repeat property.
background-repeat:
value;
Values:
no-repeat
repeat
repeat-x
repeat-y
CSS Borders
Inherited: No
Border
You can set the color, style and width of
the borders around an element in one declaration by using the border property.
border: 1px solid
#333333;
Values:
Ø
color
Ø
style
Ø
width
Or you can set each
property individually
Border Color
You can set the color of a border independently
with the border-color property.
border-color: value;
Values:
Ø
color name
Ø
hexadecimal number
Ø
RGB color code
Ø
Transparent
Border Style
You can set the style of a border
independently with the border-style property.
border-style: value;
Values:
Ø
dashed
Ø
dotted
Ø
double
Ø
groove
Ø
hidden
Ø
inset
Ø
none
Ø
outset
Ø
ridge
Ø
solid
Border Width
You can set the width of a border
independently with the border-width property.
border-width: value;
Values:
Ø
Length
Ø
Thin
Ø
Medium
Ø
Thick
Or you can set the
elements for each borders side individually
Border Bottom
You can set the color, style and width of
the bottom border around an element in one declaration with the border-bottom
property.
border-bottom: 1px solid
#333333;
Values:
Ø
color
Ø
style
Ø
width
Or you can set each value
individually
Border Bottom Color
You can set the color of the bottom border
around an element with the border-bottom-color property.
border-bottom-color:
value;
Border Bottom Style
You can set the style of the bottom border
around an element with the border-bottom-style property.
border-bottom-style:
value;
Border Bottom Width
You can set the width of the bottom border
around an element with the border-bottom-width property.
border-bottom-width:
value;
Border Left
You can set the color, style and width of
the left border around an element with the border-left property.
border-left: 1px solid
#333333;
Values:
Ø
color
Ø
style
Ø
width
Or you can set each value
individually
Border Left Color
You can set the color of the left border
around an element with the border-left-color property.
border-left-color:
value;
Border Left Style
You can set the style of the left border
around an element with the
border-left-style property.
border-left-style:
value;
Border Left Width
You can set the width of the left border
around an element with the border-left-width property.
border-left-width:
value;
Border Right
You can set the color, style and width of
the right border around an element in one declaration with the border-right
property.
border-right: 1px solid
#333333;
Values:
Ø
color
Ø
style
Ø
width
Or you can set each value
individually
Border Right Color
You can set the color of the right border
around an element with the border-right-color property.
border-right-color:
value;
Border Right Style
You can set the style of the right border
around an element with the border-right-style property.
border-right-style:
value;
Border Right Width
You can set the width of the right border
around an element with the border-right-width property.
border-right-width:
value;
Border Top
You can set the color, style and width of
the top border around an element in one declaration with the border-top
property.
border-top: 1px solid
#333333;
Values:
Ø
color
Ø
style
Ø
width
Or you can set each value
individually
Border Top Color
You can set the color of the top border
around an element with the border-top-color property.
border-top-style: value;
Border Top Width
You can set the width of the top border
around an element with the border-top-width property.
border-top-width: value;
CSS Ordered &
Unordered Lists
Inherited: Yes
List Style
You can control the appearance of ordered
and unordered lists in one
declaration with the list-style property
list-style: value value;
Values:
Ø
image
Ø
position
Ø
type
Or you can control them
individually
List Style Image
You can use an image for the bullet of unordered lists
with the list-style
Property
list-style-image:
url(path_to_image.gif, jpg or png);
If you use an image, it is a good idea to declare the
list-style-type also
in case the user has images turned off.
List Style Position
You can control the position of ordered and unordered
lists with the liststyle-
position property
list-style-position:
value;
Values
Ø
inside
Ø
outside
List Style Type
You can control the type of bullet ordered
and unordered lists use with
the list-style-type property
list-style-type: value;
Values
Ø
disc
Ø
circle
Ø
square
Ø
decimal
Ø
lower-roman
Ø
upper-roman
Ø
lower-alpha
Ø
upper-alpha
Ø
none
Content – “Basic
CSS”, Powerd By-Arya”Its Arya Place”,
a site by – http://www.arya2014.blogspot.com
|
0 comments:
Post a Comment