HtmlElement.OffsetParent Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets the element from which OffsetRectangle is calculated.
public:
property System::Windows::Forms::HtmlElement ^ OffsetParent { System::Windows::Forms::HtmlElement ^ get(); };
public System.Windows.Forms.HtmlElement OffsetParent { get; }
public System.Windows.Forms.HtmlElement? OffsetParent { get; }
member this.OffsetParent : System.Windows.Forms.HtmlElement
Public ReadOnly Property OffsetParent As HtmlElement
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.
Examples
The following code example shows how OffsetParent and OffsetRectangle differ for span1
, span2
and span3
:
<HTML>
<BODY id="documentBody">
<DIV id="div1">
<SPAN id="span1">Placeholder text 1.</SPAN>
</DIV>
<DIV id="div2" style="position:relative;top:100px;left:100px;">
<SPAN id="span2">Placeholder text 2.</SPAN>
</DIV>
<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>
</DIV>
</DIV>
</BODY>
</HTML>
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";
}
MessageBox.Show(str);
}
Private Sub GetOffsets()
Dim Str As String = ""
Dim Doc As HtmlDocument = WebBrowser1.Document
For Each Elem As HtmlElement In Doc.GetElementsByTagName("SPAN")
Str &= "OffsetParent for " & Elem.Id & " is " & Elem.OffsetParent.Id
Str &= "; OffsetRectangle is " & Elem.OffsetRectangle.ToString() & vbCrLf
Next
MessageBox.Show(Str)
End Sub
Remarks
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.