HtmlElement.OffsetParent Property

Gets the element from which OffsetRectangle is calculated.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in

public HtmlElement OffsetParent { get; }
/** @property */
public HtmlElement get_OffsetParent ()

public function get OffsetParent () : HtmlElement

Not applicable.

Property Value

The element from which the offsets are calculated. If an element's parent or another element in the element's hierarchy uses relative or absolute positioning, OffsetParent will be the first relatively or absolutely positioned element in which the current element is nested. If none of the elements above the current element are absolutely or relatively positioned, OffsetParent will be the BODY tag of the document.

Elements can be positioned on an HTML page in one of three ways: default flow positioning; relative positioning, in which the element is offset by a fixed amount relative to its parent; and absolute positioning, in which the element is given a fixed coordinate position relative to the upper-left corner of the document.

When a document's elements use relative or absolute positioning, you can use OffsetParent to calculate an element's coordinate position in the client area.

For more information about element positioning in HTML, see About Element Positioning (

The following code example shows how OffsetParent and OffsetRectangle differ for span1, span2 and span3:

    <BODY id="documentBody">

        <DIV id="div1">
            <SPAN id="span1">Placeholder text 1.</SPAN>

        <DIV id="div2" style="position:relative;top:100px;left:100px;">
            <SPAN id="span2">Placeholder text 2.</SPAN>

        <DIV id="div3" style="position:absolute;top:200px;left:200px;">
            <DIV id="div4" style="position:relative;top:100px;left:100px;">
                <SPAN id="span3">Placeholder text 3.</SPAN>

private void GetOffsets()
    String str = "";
    HtmlDocument doc = webBrowser1.Document;

    foreach (HtmlElement elem in doc.GetElementsByTagName("SPAN"))
        str += "OffsetParent for " + elem.Id + " is " + elem.OffsetParent.Id;
        str += "; OffsetRectangle is " + elem.OffsetRectangle.ToString() + "\n";


Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0