Css For XML
Css For XML
Dec 9, 2021
A different emphasis
CSS is the same for XML as it is for HTML, but--
HTML already does a pretty good job of layout (arranging elements on the
page)
XML contains no layout information, so by itself it will typically be
displayed as one single huge blob of text
When writing CSS for XML, typically the first thing you need to
worry about is arranging text on the page
No current browser does a good job of supporting CSS,
particularly when used with XML, so:
You should make sure everyone who views your pages uses the same
version of the same browser (this is possible in some companies), or
You should test your pages in all the most common browsers
2
The display property
Every XML element that is formatted by a CSS
command is considered to be in an invisible “box”
The box containing an XML element can have one of
three display properties:
display: block
The element will start on a new line, and so will the element that
follows it (an HTML paragraph is an example)
display: inline
(default) The element will not start on a new line, or cause the next
element to start on a new line (bold is an HTML example)
display: none
The element is hidden and will not appear on the display
3
CSS units
For many of the remaining CSS values, we will need to be able
to specify size measurements
These are used to specify sizes:
em width of the letter ‘m’
ex height of the letter ‘x’
px pixels (usually 72 per inch, but depends on monitor)
% percent of inherited size
These are also used to specify sizes, but don’t really make sense unless
you know the screen resolution:
in inches
cm centimeters
mm millimeters
pt points (72pt = 1in)
pc picas (1pc = 12pt)
Note: you can use decimal fractions, such as 1.5cm
4
Boxes
The invisible box containing a styled XML element has
three special areas:
The element
padding (invisible)
border (can be colored)
margins (invisible)
5
Padding
Padding is the extra space around an element, but inside
the border
To set the padding, use any or all of:
padding-top: size
padding-bottom: size
padding-left: size
padding-right: size
padding: size to set all four sides at once
size is given in the units described earlier
Example: sidebar {padding: 1em; padding-bottom: 5mm}
6
Borders
You can set border attributes with any or all of: border-top:,
border-bottom:, border-left:, border-right:, and border:
(all at once)
The attributes are:
The thickness of the border: thin, medium (default), thick, or a specific
size (like 3px)
The style of the border: none, dotted, dashed, solid, double, groove,
ridge, inset, or outset
The color of the border: one of the 16 predefined color names, or a hex
value with #rrggbb or rgb(r, g, b) or rgb(r%, g%, b%)
Example: section {border-top: thin solid blue;}
Note: the special styles (such as groove) are not as cool as they
sound
7
Margins
Margins are the extra space outside the border
Setting margins is analogous to setting padding
To set the margins, use any or all of:
margin-top: size
margin-bottom: size
margin-left: size
margin-right: size
margin: size to set all four sides at once
8
Box and display interactions
With display:none, contents are invisible and margin,
border, and padding settings have no effect
With display:block, margin, border, and padding settings
work about as you would expect
With display:inline (which is the default if you don’t
specify otherwise):
Margin, border, and padding settings for left and right work
about as you would expect
Margin, border, and padding settings for top and bottom do not
add extra space above and below the line containing the element
This means that inline boxes will overlap other text
9
Sizing elements
Every element has a size and a natural position in
which it would be displayed
You can set the height and width of display:block
elements with:
height: size
width: size
You cannot set the height and width of inline
elements (but you can set left and right margins)
In HTML, you can set the height and width of
images and tables (img and table tags)
10
position:absolute; left: 0in; top: 0in position:absolute; right: 0in; top: 0in
position:absolute; left: 0in; bottom: 0in position:absolute; right: 0in; bottom: 0in
11
Setting relative position
To move an element relative to its natural position, use
position: relative (this is required!) and also one or more of
left: size or right: size
top: size or bottom: size
Confusing stuff:
size can be positive or negative
to move left, make left negative or right positive
to move right, make right negative or left positive
to move up, make top negative or bottom positive
to move down, make bottom negative or top positive
Setting an element’s position does not affect the position of other
elements, so
There will be a gap in the element’s original, natural position
Unless you are very careful, your element will overlap other elements
12
Pseudo-elements
13
External style sheets
In HTML, within the <head> element:
<link REL="STYLESHEET" TYPE="text/css" HREF="Style
Sheet URL">
14
Namespace selectors
Namespace selectors (XML only) choose tags from the
given namespace
namespace|element {...} chooses the element if and only if
it is from the given namespace
*|element {...} chooses the element regardless of the
namespace
|element {...} chooses the element if it has no declared
namespace
Namespace selectors are currently supported only by
Netscape 6
15
Some border styles and values
You can put borders around elements
Borders have width, style, and color
These can be set individually:
border-left-style:, border-bottom-color:, etc.
Or a border at a time:
border-top:, border-right:, etc.
16
Padding
Padding is used to set the space around an element
You can set padding individually:
padding-top:, padding-left:,
padding-bottom:, padding-right:
Or all at once: padding:
Allowable values: length | 12%
17
The End
18