Microsoft Office 2000 uses the following technologies when saving documents as Web pages.
| HTML 3.2 | Hypertext Markup Language version 3.2 allows tables, paragraphs, images, and basic text formatting to be displayed, in addition to structural style definitions such as headings. |
| CSS 1.0 | Cascading style sheets Level 1 allows more extensive formatting and layout relative to elements in the page. |
| CSS 2.0 | Level 2 allows even more control over text layout and positioning of elements within the page. CSS 2.0 allows arbitrary 2-D positioning within the page, rather than relative to existing elements. |
| DHTML | Dynamic HTML allows for dynamic scripting of content within the page. DHTML is used to provide run-time changes to the document when viewed in the browser, including animations and navigation for Microsoft PowerPoint and some visual effects for Microsoft Excel. |
| XML | Extensible Markup Langauge (XML) provides structured data storage within HTML and allows manipulation of objects in the page based on the content. For example, Office Art is displayed using Vector Markup Language (VML), a subset of XML. |
Some Web browsers do not support the complete set of these technologies, and some formatting and functions might not be displayed properly. For example, the following table shows the technologies supported in versions of Microsoft Internet Explorer.
|
Internet Explorer |
HTML 3.2 |
CSS 1.0 |
CSS 2.0 |
DHTML |
XML |
| 3.02 |
X |
X |
|||
| 4.01 |
X |
X |
X |
X |
|
| 5 |
X |
X |
X |
X |
X |
Conditional comments are used to control the display of elements in order to create a more consistent viewing experience. In order to make a number of features visible in a Web browser, Office specifies HTML elements that are used only by Web browsers to display content. Conditional comments are specified around these elements.
A conditional comment can have one of two forms. The downlevel-revealed form reveals the contents of the comment in Web browsers. The downlevel-hidden form hides the contents of the comment.
| Expression | Consists of |
| downlevel-revealed | <![if expression]>...<![endif]> |
| downlevel-hidden | <!--[if expression]>...<![endif]--> |
| expression | term |
| expression | expression | term |
| term | value |
| term | term & value |
| value | true |
| value | false |
| value | !value |
| value | (expression) |
| value | comparison |
| comparison | feature |
| comparison | feature version |
| comparison | lt feature version |
| comparison | lte feature version |
| comparison | gt feature version |
| comparison | lte feature version |
| feature | [A-Za-z][A-Za-z0-9]* |
| version | [0-9][A-Za-z0-9.]* |
Like an ordinary HTML comment, a conditional comment is not recognized when used inside literal HTML text, such as in text within a Script element.
Conditional comments can be nested. The results are undefined if <![if]> and <![endif]> statements are not matched, or if the syntax of the expression in an <![if]> statement is ill-formed. Note that Internet Explorer 5 closes unmatched <![if]> statements at the end of a file, and any unmatched <![endif]> statements and <![if]> statements with ill-formed expressions are displayed as text.
Expressions follow normal precedence rules: parentheses and prefix operators are evaluated first, followed by & operators and | operators.
A version number consists of releases separated by dots, with the most significant release appearing first.
5.010beta.3032 specifies the releases 5, 01beta, and 3032.
5.999.a specifies the releases 5, 999, and a.
Compared from left to right, since 5 equals 5 and 010beta is less than 999, 5.010beta.3032 comes before 5.999.a.
An exact version number (such as the actual version number of a product) is assumed to have infinite precision in the sense that a specified version string of 5.2b is interpreted to mean 5.2b.0.0.0.0.0.0…
Each release string consists of letters and digits; these are separated into runs of just letters and runs of just digits. Again, the most significant part is on the left.
10alpha2 specifies the releases 10, alpha, and 2.
010beta specifies the releases 010 and beta.
Compared from left to right, since 10 equals 010 numerically and alpha is less than beta, 01alpha2 comes before 010beta.
Individual parts of a release are compared as follows:
The following example shows the order of several releases.
4.a < 4.a0 < 4.aa < 4 = 4.0 < 4.0a < 4.1 < 4.5 < 4.510
The version number inside an expression refers to the entire set of versions represented by the specified
release. For example, the expression
<![if IE 5.2m ]> matches all versions of Internet Explorer in the release 5.2m, including 5.2m.beta1, 5.2m.0, and 5.2m.6.r3, but not 5.2 or 5.
An expression can be made more exact by specifying more parts on the version number.
When inequalities are evaluated, the comparison is only done to the specified precision. So, for example, both <![if gt IE 5.2m ]> and <![if lt IE 5.2m ]> are false if the actual version number is 5.2m.6.r3, but both <![if gte IE 5.2m ]> and <![if lte IE 5.2m ]> are true.
When the Web browser encounters an uplevel-begin comment, it evaluates the expression. If the expression is true, the content between the uplevel-begin and uplevel-end comments is displayed. If the expression is false, the content between the uplevel-begin and uplevel-end comments is ignored.
When the Web browser encounters a downlevel-begin comment, it evaluates the expression. If the expression is true, the content between the downlevel-begin and downlevel-end comments is displayed. If the expression is false, the content between the downlevel-begin and downlevel-end comments is ignored.
Logical operators behave as follows:
| a & b | True if a and b are true. |
| a | b | True if either a or b are true. |
| !a | True if a is false. |
Comparison operators behave as follows:
| lt a.ver | True if a version less than ver of feature a is installed. |
| lte a.ver | True if a version less than or equal to ver of feature a is installed. |
| gt a.ver | True if a version greater than ver of feature a is installed. |
| gte a.ver | True if a version greater than or equal to ver of feature a is installed. |
In the following example, the content is displayed if the browser is a version of Internet Explorer 5 or later.
<!-- [if IE]>
Here is some content
<![endif]-->
This example displays the content in Internet Explorer 5, but not in later versions.
<!-- [if IE 5]>
Here is some content
<![endif]-->
The next example displays the content in browsers other than Internet Explorer.
<!-- [if !IE]>
Here is some content
<![endif]-->
This example displays the content if any version of the VG component is installed.
<!-- [if VG]>
Here is some content
<![endif]-->
The following example displays the content if version 6 of the VG component is not installed.
<!-- [if !VG 6]>
Here is some content
<![endif]-->
The next example displays the content if the VG component is installed and its version number is greater than 6.
<!-- [if gt VG 6]>
Here is some content
<![endif]-->
This example displays the content if version 6 of the VG component is installed on the Macintosh.
<!-- [if MAC & VG 6]>
Here is some content
<![endif]-->
The next example displays the content in Internet Explorer if the VG component is installed and its version number is less than 8.
<!-- [if IE & lt VG 8]>
Here is some content
<![endif]-->
The following table shows the If values used by Microsoft Office programs.
| If value | Word | Excel | PPT | Description |
| supportMisalignedColumns |
X |
X |
Used around special "template" rows of empty cells that make cells whose vertical borders do not line up look fine in the browser. | |
| supportMisalignedRows |
X |
X |
Used around special empty "template column" cells that make cells whose horizontal borders do not line up look fine in the browser. | |
| supportFields |
X |
Used around certain commented-out field markup. | ||
| supportLists |
X |
X |
Used for various list presentation elements (textual list numbers). | |
| supportAnnotations |
X |
Used for various comment markup elements. | ||
| supportTextWrap |
X |
X |
Used around BR CLEAR=ALL elements following Word frame table elements with wrapping disabled. | |
| supportEndnotes |
X |
X |
Used for various endnote-related markup. | |
| supportFootnotes |
X |
X |
Used for various footnote-related markup. | |
| supportIrregularTables |
X |
X |
Used around special empty "placeholder" cells that make indented rows look fine in browsers. | |
| supportRevisionMarks |
X |
X |
Used for certain pieces of revision markup. | |
| supportTabStrip |
X |
X |
Used around scripts for framesets to represent tab stribs. | |
| supportRotatedText | Used to show rotated text in browsers. |