margin property

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


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 IHTMLCSSStyleDeclaration::marginTop property.

right (0)

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


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


Any of the range of margin width values available to the IHTMLCSSStyleDeclaration::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


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 IHTMLCSSStyleDeclaration::position or layout to use this property. Element layout is set by providing a value for the IHTMLCSSStyleDeclaration::height property or the IHTMLCSSStyleDeclaration::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.


In the following example, three div elements specify IHTMLCSSStyleDeclaration::height and IHTMLCSSStyleDeclaration::width values. The second div element uses the IHTMLCSSStyleDeclaration::margin property to set IHTMLCSSStyleDeclaration::marginTop to 5px, IHTMLCSSStyleDeclaration::marginRight to 0px, IHTMLCSSStyleDeclaration::marginBottom to 15px, and IHTMLCSSStyleDeclaration::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.


Minimum supported client

Windows XP

Minimum supported server

Windows Server 2003







See also


CSS Values and Units Reference

Other Resources

CSS Enhancements in Internet Explorer 6