margin property

Sets or retrieves the width of the top, right, bottom, and left margins of the object.

 

Syntax

Integer value = object.put_margin( v);Integer value = object.get_margin(* sMargin);

Property values

Type: BSTR

up to four of the space-delimited values listed in Possible Values.

top (0)

Any of the range of margin width values available to the IHTMLRuleStyle::marginTop property.

right (0)

Any of the range of margin width values available to the IHTMLRuleStyle::marginRight property.

bottom

Any of the range of margin width values available to the IHTMLRuleStyle::marginBottom property.

left

Any of the range of margin width values available to the IHTMLRuleStyle::marginLeft property.

String format

top | right | bottom | left

CSS information

Applies To All elements
Media visual
Inherited no
Initial Value (see individual properties)

Standards information

Remarks

This is a composite property that specifies up to four width values, in the following order: top, right, bottom, left. If one width value is specified, it is used for all four sides. If two width values are specified, the first is used for the top and bottom borders, and the second is used for left and right borders. If three width values are specified, they are used for the top, right/left, and bottom borders, respectively. Negative margins are supported except for top and bottom margins on inline objects.

As of Microsoft Internet Explorer 4.0, you can specify length values relative to the height of the element's font (em) or the height of the letter "x" (ex).

In Microsoft Internet Explorer 3.0, the specified margin value is added to the default value of the object. In Internet Explorer 4.0 or later, the margin value is absolute. The margin properties do not work with the td and tr objects in Internet Explorer 4.0, but they do work in Internet Explorer 3.0. To set margins in the cell for Internet Explorer 4.0 or later, apply the margin to an object, such as div or p, within the td.

As of Microsoft Internet Explorer 5.5, this property applies to inline elements. With earlier versions of Windows Internet Explorer, inline elements must have an absolute IHTMLRuleStyle::position or layout to use this property. Element layout is set by providing a value for the IHTMLRuleStyle::height property or the IHTMLRuleStyle::width property.

For inline elements, the top and bottom values are used to compute the border area of a surrounding inline element, if present. These values do not contribute to the height of a line.

Margins are always transparent.

The below image shows the content, padding, border, and margin areas of a basic box. The red labels illustrate the edges of each of these areas.

Examples

In the following example, three div elements specify IHTMLRuleStyle::height and IHTMLRuleStyle::width values. The second div element uses the IHTMLRuleStyle::margin property to set IHTMLRuleStyle::marginTop to 5px, IHTMLRuleStyle::marginRight to 0px, IHTMLRuleStyle::marginBottom to 15px, and IHTMLRuleStyle::marginLeft to -10px.

<div id="blue"></div>
<div id="yellow"></div>
<div id="green"></div>
#blue {
   background-color: #00A4EF;
   height: 50px;
   width: 50px;
}
#yellow {
   background-color: #FFB900;
   height: 50px;
   width: 50px;
   margin: 5px 0px 15px -10px;
}
#green {
   background-color: #7FBA00;
   height: 50px;
   width: 50px;
}

The following image shows the result.

Requirements

Minimum supported client

Windows XP

Minimum supported server

Windows Server 2003

Header

Mshtml.h

IDL

Mshtml.idl

DLL

Mshtml.dll

See also

Conceptual

CSS Values and Units Reference

Other Resources

CSS Enhancements in Internet Explorer 6