What is the difference between ID and CLASS?
ID identifies and sets style to
one and only one occurrence of an element while class can be attached to any
number of elements.
Can I include comments in my Style Sheet?
Yes. Comments can be written anywhere where
whitespace is allowed and are treated as white space themselves. Anything
written between /* and */ is treated as a comment (white space). NOTE: Comments
cannot be nested.
Is there anything that CAN T be
replaced by Style Sheets?
Quite a bit actually. Style sheets only specify
information that controls display and rendering information. Virtual style
elements that convey the NATURE of the content can not be replaced by style
sheets, and hyperlinking and multimedia object insertion is not a part of style
sheet functionality at all (although controlling how those objects appear IS
part of style sheets functionality.) The CSS1specification has gone out of its
way to absorb ALL of the HTML functionality used in controlling display and
layout characteristics. For more information on the possible properties in CSS,
see the Index DOT Css Property Index.
Rule of Thumb: if an HTML element or attribute
gives cues as to how its contentsshould be displayed, then some or all of its
functionality has been absorbed by stylesheets.
What are pseudo-elements?
Pseudo-elements are fictional elements that do not
exist in HTML. They address the element's sub-part (non-existent in HTML) and
not the element itself. In CSS1 there are two pseudo-elements: 'first-line
pseudo-element' and 'first-letter pseudo-element'. They can be attached to
block-level elements (e.g. paragraphs or headings) to allow typographical
styling of their sub-parts.
What is property?
Property is a stylistic parameter (attribute) that
can be influenced through CSS, e.g. FONT or WIDTH. There must always be a
corresponing value or values set to each property, e.g. font: bold or font:
bold san-serif.
How do I make my div 100% height?
You need to know what the 100% is of, so the parent
div must have a height set. One problem that people often come up against is
making the main page fill the screen if there's little content. You can do that
like this :
CSS
body, html {
height:100%;
}
body {
margin:0;
padding:0;
}
#wrap {
position:relative;
min-height:100%;
}
* html #wrap {
height:100%;
}
Here, the #wrap div goes around your whole page -
it's like a sub-body.
You need to use 'min-height' rather than 'height'
for Firefox because otherwise it will set it to 100% of the viewport and no
more. Internet Explorer, being well... crap, treats 'height' as it should be
treating 'min-height' which it doesn't recognise. (You can target IE by
preceding your code with ' * html ').
To make floated divs within this #wrap div 100% of
the #wrap div... well that's more difficult. I think the best way is to use the
'faux columns' technique which basically means that you put the background in
your body rather than your columns. If the body has columns and your floats
don't then it looks like your floated content is in a column that stretches to
the bottom of the page. I've used this technique in my layout demos.
The problem is often not that the columns aren't
100% height, but that they're not equal lengths. Columns usually don't start
from the top of the page and end at the bottom - there's often a header and a
footer or sometimes, more interesting designs don't have a recognisable
columnar layout, but do require div boxes to be equal heights. This can be done
with the aid of a couple of images and some css or with some javascript.
Why is my external stylesheet not working ?
There may be several different reasons behind that,
but one very common mistake is to have an external stylesheet that contains
HTML markup in some form.
An external stylesheet must contain only CSS rules,
and if required, correctly formed CSS comments; never include any HTML syntax,
such as <style type="text/css">…
CSS comments are defined as anything that is placed
between
/* (the comment start mark) and
*/ (the comment end mark). I.e. as follows…
/* This text right here is a correct CSS comment */
CSS comments may span multiple lines in the
stylesheet. Nesting of CSS comments is not allowed.
Another reason for external stylesheets (and even
embedded and inline stylerules) not to function as expected may be that you
have tried to make use of some CSS-features that are not supported in the
browser you are using.
External stylesheets shall also be served from the
www-server with a MIME-type of 'text/css' in its 'Content Type:' HTTP header.
You may need to negotiate with your server admin to
add this MIME type to your server if you are not able to configure the server
yourself.
How do I
quote font names in quoted values of the style attribute?
The attribute values can contain both single quotes
and double quotes as long as they come in matching pairs. If two pair of quotes
are required include single quotes in double ones or vice versa:
<P STYLE="font-family: 'New Times Roman';
font-size: 90%">
<P STYLE='font-family: "New Times
Roman"; font-size: 90%'>
It's been reported the latter method doesn't work
very well in some browsers, therefore the first one should be used.
Are Style Sheets case sensitive?
No. Style sheets are case insensitive. Whatever is
case insensitive in HTML is also case insensitive in CSS. However, parts that
are not under control of CSS like font family names and URLs can be case
sensitive - IMAGE.gif and image.gif is not the same file.
What is cascade?
Cascade is a method of defining the weight
(importance) of individual styling rules thus allowing conflicting rules to be
sorted out should such rules apply to the sameselector.
Declarations with increased weight take precedence
over declaration with normal weight:
P {color: white ! important} /* increased weight */
P (color: black} /* normal weight */
What is important declaration?
Important declaration is a declaration with
increased weight. Declaration with increased weight will override declarations
with normal weight. If both reader's and author's style sheet contain
statements with important declarations the author's declaration will override the
reader's.
BODY {background: white ! important; color: black}
In the example above the background property has
increased weight while the color property has normal.
What is CSS declaration?
CSS declaration is style attached to a specific
selector. It consists of two parts; property which is equivalent of HTML
attribute, e.g. text-indent: and value which is equivalent of HTML value, e.g.
10pt. NOTE: properties are always ended with a colon.
What is CLASS selector?
Class selector is a "stand alone" class
to which a specific style is declared. Using the CLASS attribute the declared
style can then be associated with any HTML element. The class selectors are
created by a period followed by the class's name. The name can contain
characters a-z, A-Z, digits 0-9, period, hyphen, escaped characters, Unicode
characters 161-255, as well as any Unicode character as a numeric code,
however, they cannot start with a dash or a digit. (Note: in HTML the value of
the CLASS attribute can contain more characters).It is a good practice to name
classes according to their function than their appearance.
.footnote {font: 70%} /* class as selector */
<ADDRESS CLASS=footnote/>This element is
associated with the CLASS footnote</ADDRESS>
<P CLASS=footnote>And so is this</P>
What is selector?
CSS selector is equivalent of HTML element(s). It
is a string identifying to which element(s) the corresponding declaration(s)
will apply and as such the link between the HTML document and the style sheet.
For example in P {text-indent: 10pt} the selector
is P and is called type selector as it matches all instances of this element
type in the document.
in P, UL {text-indent: 10pt} the selector is P and
UL (see grouping); in .class {text-indent: 10pt} the selector is .class (see
class selector).
What does the Cascading in Cascading Style Sheets
mean?
Style Sheets allow style information to be
specified from many locations. Multiple (partial) external style sheets can be
referenced to reduce redundancy, and both authors as well as readers can
specify style preferences. In addition, three main methods can be employed by
an author to add style information to HTML documents, and multiple approaches
for style control are available in each of these methods. In the end, style can
be specified for a single element using any, or all, of these methods.
Why use Style Sheets?
Style sheets allow a much greater degree of layout
and display control than has ever been possible thus far in HTML. The amount of
format coding necessary to control display characteristics can be greatly
reduced through the use of external style sheets which can be used by a group
of documents. Also, multiple style sheetscan be integrated from different
sources to form a cohesive tapestry of styles for a document. Style sheets are
also backward compatible - They can be mixed with HTML styling elements and
attributes so that older browsers can view content as intended.
How do I get rid of the gap under my image?
Images are inline elements, which means they are
treated in the same way as text. Most people kind of know this - they know that
if you use 'text-align:center' on an image it will be centred. What many people
don't realise is that this means you will have a gap underneath an image. This
gap is for the descenders of letters like j,q,p,y and g. To get rid of this gap
you need to make the image block-level - like this :
CSS
img {display:block;}
One problem that this can cause is when you want to
have a few images next to each other - if they are block-level, they won't be
next to each other. To get around that, you can use float:left. Of course, this
might present another problem - maybe you don't want the image to float left.
In this case, you can use an unordered list like this :
CSS
ul, li {
list-style-type:none;
padding:0;
margin:0 auto;
}
ul {
width:150px;
}
li {
float:left;
}
HTML
<ul>
<li><img src="wine.jpg"
height="50" width="50" alt="wine"
/></li>
<li><img src="wine.jpg"
height="50" width="50" alt="wine"
/></li>
<li><img src="wine.jpg"
height="50" width="50" alt="wine"
/></li>
<li><img src="wine.jpg"
height="50" width="50" alt="wine"
/></li>
<li><img src="wine.jpg"
height="50" width="50" alt="wine"
/></li>
<li><img src="wine.jpg"
height="50" width="50" alt="wine" /></li>
<li><img src="wine.jpg"
height="50" width="50" alt="wine"
/></li>
<li><img src="wine.jpg"
height="50" width="50" alt="wine"
/></li>
<li><img src="wine.jpg"
height="50" width="50" alt="wine"
/></li>
</ul>
Can CSS be used with other than HTML documents?
Yes. CSS can be used with any ny structured
document format. e.g. XML, however, the method of linking CSS with other
document types has not been decided yet.
Some examples of good and bad coding. What is wrong
with this?
<font size="3">Welcome to my page</font>
Comment: The font-tag is design and design
shouldn’t be in the HTML document. All design should be in the CSS-file!
Instead do this:
In the HTML:
<h1>Welcome to my page</h1>
In the CSS:
h1 { font-size: 2em; }
One more example:
<b>An error occurred</b>
This looks right doesn’t it? But if you look up
what <b> stands for you quickly find bold. But bold is certainly design,
so it still doesn’t belong in the HTML document. A better choice is <em>
that stands for emphasis or simply “this piece of text is important”. So
instead of saying “this text looks like this” you are saying “this text is
important” and you let the looks be decided by the CSS. Seems like a minor
change, but it illustrates how to select your tags. Use this instead:
In the HTML:
<em>An error occured</em>
In the CSS:
em {
font-weight: bold;
color: Red;
}
One last example:
<table>
<tr><td><a
href="">first link</a></td></tr>
<tr><td><a
href="">second link</a></td></tr>
...
</table>
How to use CSS to separate content and design ?
The idea here is that all sites contain two major
parts, the content: all your articles, text and photos and the design: rounded
corners, colors and effects. Usually those two are made in different parts of a
webpage’s lifetime. The design is determined at the beginning and then you
start filling it with content and keep the design fixed.
In CSS you just add the nifty <link>-tag I’ve
told you about to the head of yourHTML document and you have created a link to
your design. In the HTML documentyou put content only, and that link of yours
makes sure it looks right. You can also use the exact same link on many of your
pages, giving them all of them the same design. You want to add content? Just
write a plain HTML document and think about marking things up like “header”
instead of “big blue header” and use CSS to make all headers look the way you
want!
Why was the decision made to make padding apply
outside of the width of a box, rather than inside, which would seem to make
more sense?
It makes sense in some situations, but not in
others. For example, when a childelement is set to width: 100%, I don't think
it should cover the padding of its parent. The box-sizing property in CSS3
addresses this issue. Ideally, the issue should have been addressed earlier,
though.
What is parent-child selector?
Parent-child selector is a selector representing
the direct descendent of a parentelement. Parent-child selectors are created by
listing two or more tilde (~) separated selectors.
BODY ~ P {background: red; color: white}
The P element will be declared the specified style
only if it directly descends from the BODY element:
<BODY> <P>Red and white paragraph
</P> </BODY>
BODY ~ P ~ EM {background: red; color: white}
The EM element will be declared the specified style
only if it directly descends from the P element which in its turn directly
descends from the BODY element:
< <P> <EM>Red and white EM
</EM> </P> </BODY>
What is attribute selector?
Attribute selector is a selector defined by 1) the
attribute set to element(s), 2) the attribute and value(s), 3) the attribute
and value parts:
1a) A[title] {text-decoration: underline}
All A elements containing the TITLE attribute will
be underlined
1b) A[class=name] {text-decoration: underline}
The A elements classed as 'name' will be underlined
2) A[title="attribute element"]
{text-decoration: underline}
The A elements containing the TITLE attribute with
a value that is an exact match of the specified value, which in this example is
'attribute element', will be underlined
3) A[title~="attribute"]
{text-decoration: underline}
The A elements containing the TITLE attribute with
a value containing the specified word, which in this example is 'attribute',
will be underlined.
How do I combine multiple sheets into one?
To combine multiple/partial style sheets into one
set the TITLE attribute taking one and the same value to the LINK element. The
combined style will apply as a preferred style, e.g.:
<LINK REL=Stylesheet
HREF="default.css" TITLE="combined">
<LINK REL=Stylesheet HREF="fonts.css"
TITLE="combined">
<LINK REL=Stylesheet HREF="tables.css"
TITLE="combined">
ADVANCED CSS FEATURES:
CSS can be even used to change the appearance of
the scroll bar at your right side. Unfortunately, that only works with IE. You
have to be using IE in order for this to work. Here is how to change some
appearances of your scroll bar:
The CSS statements for doing this are:
1) scrollbar-3dlight-color
2)scrollbar-arrow-color
3) scrollbar-base-color
4) scrollbar-dark shadow-color
5) scrollbar-face-color
6) scrollbar-highlight-color
7) scrollbar-shadow-color
8) scrollbar-track-color
<style type="text/css">
<!--
BODY {
scrollbar-arrow-color: green;
scrollbar-face-color: #FFFFFF;
scrollbar-track-color: rgb(12,35,244);
}
// -->
</style>
How to customize your textboxes.
Here is the code on how to do it:
<style type="text/css">
<!--
BODY {
scrollbar-arrow-color: green;
scrollbar-face-color: #FFFFFF;
scrollbar-track-color: rgb(12,35,244);
}
TEXTAREA {
scrollbar-arrow-color: green;
scrollbar-face-color: #FFFFFF;
scrollbar-track-color: rgb(12,35,244);
}
// -->
</style>
That above code, has some similarities. The textbox
area is treated with the same function statements as for the scrollbar. The
scrollbar statements goes in the BODYselector.
No comments:
Post a Comment