HtmlElement.OffsetParent Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets the element from which OffsetRectangle is calculated.

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

public HtmlElement OffsetParent { get; }

Property Value

Type: System.Windows.Forms.HtmlElement

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";


.NET Framework
Available since 2.0
Return to top