The <main> HTML element represents the dominant content of the of a document. The main content area consists
of content that is directly related to or expands upon the central topic of a document, or the central functionality of
an application.
Instantiate the Main class using Main::widget().
$main = Main::widget();Or, block style instantiation.
<?= Main::begin() ?>
// ... content to be wrapped by `main` element
<?= Main::end() ?>Use the provided methods to set specific attributes for the a element.
// setting class attribute
$main->class('container');Or, use the attributes method to set multiple attributes at once.
$main->attributes(['class' => 'container', 'style' => 'background-color: #eee;']);If you want to include content within the main tag, use the content method.
$main->content('MyContent');Or, use begin() and end() methods to wrap content.
<?= Main::begin() ?>
My content
<?= Main::end() ?>Generate the HTML output using the render method, for simple instantiation.
$html = $main->render();For block style instantiation, use the end() method, which returns the HTML output.
$html = Main::end();Or, use the magic __toString method.
$html = (string) $main;Below are examples of common use cases:
// adding multiple attributes
$main->class('external')->content('MyContent');
// using data attributes
$main->dataAttributes(['analytics' => 'trackClick']);Explore additional methods for setting various attributes such as lang, name, style, title, etc.
Refer to the Attribute Tests for comprehensive examples.
The following methods are available for setting attributes:
| Method | Description |
|---|---|
attributes() |
Set multiple attributes at once. |
class() |
Set the class attribute. |
content() |
Set the content within the main element. |
dataAttributes() |
Set multiple data-attributes at once. |
id() |
Set the id attribute. |
lang() |
Set the lang attribute. |
name() |
Set the name attribute. |
style() |
Set the style attribute. |
title() |
Set the title attribute. |
Refer to the Custom Methods Tests for comprehensive examples.
The following methods are available for customizing the HTML output:
| Method | Description |
|---|---|
begin() |
Start the main element. |
end() |
End the main element, and generate the HTML output. |
render() |
Generates the HTML output. |
widget() |
Instantiates the Main::class. |