• Areturnstatement must not appear anywhere inside the constructor body, unless it is a simple early-return (returnorreturn
this).
• The element's attributes and children must not be inspected, as in the non-upgradep656
case none will be present, and relying on
upgrades makes the element less usable.
• The element must not gain any attributes or children, as this violates the expectations of consumers who use thecreateElement
or
createElementNS
methods.
• In general, work should be deferred toconnectedCallbackas much as possible—especially work involving fetching resources or
rendering. However, note thatconnectedCallbackcan be called more than once, so any initialization work that is truly one-time will
need a guard to prevent it from running twice.
• In general, the constructor should be used to set up initial state and default values, and to set up event listeners and possibly ashadow
root
.
Several of these requirements are checked duringelement creation
, either directly or indirectly, and failing to follow them will result in a custom
element that cannot be instantiated by the parser or DOM APIs.
Acustom elementis an element that iscustom
. Informally, this means that its constructor and prototype are defined by the author, instead of by
the user agent. This author-supplied constructor function is called thecustom element constructor.
Two distinct types ofcustom elementsp651
can be defined:
1. Anautonomous custom element, which is defined with noextendsoption. These types of custom elements have a local name equal
to theirdefined namep652
.
2. Acustomized built-in element, which is defined with anextendsoption. These types of custom elements have local name equal to
the value passed in theirextendsoption, and theirdefined namep652
is used as the value of theisattribute.
After acustom elementp651
iscreated
, changing the value of theisp651
attribute does not change the element's behaviour.
Autonomous custom elementsp651
have the following element definition:
Categoriesp114:
Flow contentp117
.
Phrasing contentp117
.
Palpable contentp118
.
Contexts in which this element can be usedp114:
Wherephrasing contentp117
is expected.
Content modelp114:
Transparentp119
.
Content attributesp114:
Global attributesp121
, except theisp651
attribute
Any other attribute that has no namespace (see prose).
DOM interfacep114:
Supplied by the element's author (inherits fromHTMLElementp113
)
Anautonomous custom elementp651
does not have any special meaning: itrepresentsp112
its children. Acustomized built-in elementp651
inherits the
semantics of the element that it extends.
Any namespace-less attribute that is relevant to the element's functioning, as determined by the element's author, may be specified on an
autonomous custom elementp651
, so long as the attribute name isXML-compatiblep43
and contains nouppercase ASCII lettersp64
. The exception is
theisp651
attribute, which must not be specified on anautonomous custom elementp651
(and which will have no effect if it is).
4.13.3 Core concepts
651
Pdf form save in reader - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
pdf form save in reader; make pdf form editable in reader
Pdf form save in reader - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
extract data from pdf c#; edit pdf form in reader
Customized built-in elementsp651
follow the normal requirements for attributes, based on the elements they extend. To add custom attribute-based
behavior, usedata-*p130
attributes.
Avalid custom element nameis a sequence of charactersnamethat meets all of the following requirements:
• namemust match thePotentialCustomElementNamep652
production:
PotentialCustomElementName ::=
[a-z] (PCENCharp652
)* '-' (PCENCharp652
)*
PCENChar ::=
"-" | "." | [0-9] | "_" | [a-z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] | [#x37F-
#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |
[#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]
This uses theEBNF notation
from theXMLspecification.[XML]p1165
• namemust not be any of the following:
◦ annotation-xml
◦ color-profile
◦ font-face
◦ font-face-src
◦ font-face-uri
◦ font-face-format
◦ font-face-name
◦ missing-glyph
Acustom element definitiondescribes acustom elementp651
and consists of:
Aname
Avalid custom element namep652
Alocal name
A local name
Aconstructor
Acustom element constructorp651
Aprototype
A JavaScript object
A list ofobserved attributes
Asequence<DOMString>
The list of names above is the summary of all hyphen-containing element names from theapplicable specificationsp62
, namely
SVGandMathML.[SVG]p1163
[MATHML]p1161
Note
These requirements ensure a number of goals forvalid custom element namesp652
:
• They start with alowercase ASCII letterp64
, ensuring that the HTML parser will treat them as tags instead of as text.
• They do not contain anyuppercase ASCII lettersp64
, ensuring that the user agent can always treat HTML elements ASCII-case-
insensitively.
• They contain a hyphen, used for namespacing and to ensure forward compatibility (since no elements will be added to HTML,
SVG, or MathML with hyphen-containing local names in the future).
• They can always be created withcreateElement()
andcreateElementNS()
, which have restrictions that go beyond the
parser's.
Apart from these restrictions, a large variety of names is allowed, to give maximum flexibility for use cases like<math-α>or<emotion-
>.
Note
652
C# PDF: PDF Document Viewer & Reader SDK for Windows Forms
SaveFile(String filePath): Save PDF document file to a specified path form (Here, we take a blank form as an open a file dialog and load your PDF document in
fill in pdf form reader; extract data from pdf using java
VB.NET Image: How to Save Image & Print Image Using VB.NET
printing multi-page document files, like PDF and Word is used to illustrate how to save a sample RE__Test Public Partial Class Form1 Inherits Form Public Sub New
export pdf form data to excel spreadsheet; extracting data from pdf files
A collection oflifecycle callbacks
A map, whose three keys are the strings "connectedCallback", "disconnectedCallback", and "attributeChangedCallback". The
corresponding values are either a JavaScript function object, or undefined. By default the value of each entry is undefined.
Aconstruction stack
A list, initially empty, that is manipulated by theupgrade an elementalgorithm and theHTMLElementconstructorp113
. Each entry in the list
will be either an element or analready constructedmarker.
Tolook up a custom element definition, given adocument,namespace,localName, andis, perform the following steps. They will return either a
custom element definitionp652
or null:
1. Ifnamespaceis not theHTML namespacep97
, return null.
2. Ifdocumentdoes not have abrowsing contextp748
, return null.
3. Letregistrybedocument'sassociatedWindowp748
'sCustomElementsRegistryp653
object.
4. If there iscustom element definitionp652
inregistrywithnamep652
andlocal namep652
both equal tolocalName, return thatcustom element
definitionp652
.
5. If there is acustom element definitionp652
inregistrywithnamep652
equal toisandlocal namep652
equal tolocalName, return thatcustom
element definitionp652
.
6. Return null.
EachWindowp758
object is associated with a unique instance of aCustomElementsRegistryp653
object, allocated when theWindowp758
object is
created.
ThecustomElementsattribute of theWindowp758
interface must return theCustomElementsRegistryp653
object for thatWindowp758
object.
interface CustomElementsRegistry {
[CEReactions
] void define
(DOMString name, Function constructor, optional ElementDefinitionOptions
options);
any get
(DOMString name);
Promise<void> whenDefined
(DOMString name);
};
dictionary ElementDefinitionOptions {
DOMString extends;
};
EveryCustomElementsRegistryp653
has a set ofcustom element definitionsp652
, initially empty. In general, algorithms in this specification look
up elements in the registry by any ofnamep652
,local namep652
, orconstructorp652
.
EveryCustomElementsRegistryp653
also has awhen-defined promise map, mappingvalid custom element namesp652
to promises. It is used
to implement thewhenDefined()p655
method.
Custom element registries are associated withWindowp758
objects, instead ofDocumentp103
objects, since eachcustom element
constructorp651
inherits from theHTMLElementp113
interface, and there is exactly oneHTMLElementp113
interface perWindowp758
object.
Note
window.customElementsp653 .definep654(name,constructor)
Defines a newcustom elementp651
, mapping the given name to the given constructor as anautonomous custom elementp651
.
Note
IDL
4.13.4 TheCustomElementsRegistryp653
interface
653
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Merge Microsoft Office Word, Excel and PowerPoint data to PDF form. Append one PDF file to the end of another and save to a single PDF file.
using pdf forms to collect data; filling out pdf forms with reader
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
this RasterEdge XDoc.PDF SDK, you can simply delete a single page from a PDF document using VB.NET or remove any page from a PDF document and save to local
extract table data from pdf to excel; export pdf form data to excel spreadsheet
Element definitionis a process of adding acustom element definitionp652
to theCustomElementsRegistryp653
. This is accomplished by the
define()p654
method. When invoked, thedefine(name, constructor, options)method must run these steps:
1. IfIsConstructor
(constructor) is false, then throw aTypeError
and abort these steps.
2. Ifnameis not avalid custom element namep652
, then throw a"SyntaxError"
DOMException
and abort these steps.
3. If thisCustomElementsRegistryp653
contains an entry withnamep652
name, then throw a"NotSupportedError"
DOMException
and abort these steps.
4. If thisCustomElementsRegistryp653
contains an entry withconstructorp652
constructor, then throw a"NotSupportedError"
DOMException
and abort these steps.
5. LetlocalNamebename.
6. Letextendsbe the value of theextendsmember ofoptions, or null if no such member exists.
7. Ifextendsis not null, then:
1. Ifextendsis avalid custom element namep652
, then throw a"NotSupportedError"
DOMException
.
2. If theelement interface
forextendsand theHTML namespacep97
isHTMLUnknownElementp113
(e.g., ifextendsdoes not
indicate an element definition in this specification), then throw a"NotSupportedError"
DOMException
.
3. SetlocalNametoextends.
8. LetobservedAttributesIterablebeGet
(constructor, "observedAttributes"). Rethrow any exceptions.
9. IfobservedAttributesIterableis undefined, then letobservedAttributesbe an emptysequence<DOMString>. Otherwise, let
observedAttributesbe the result ofconverting
observedAttributesIterableto asequence<DOMString>. Rethrow any exceptions.
10. LetprototypebeGet
(constructor, "prototype"). Rethrow any exceptions.
11. IfType
(prototype) is not Object, then throw aTypeError
exception.
12. LetconnectedCallbackbeGet
(prototype, "connectedCallback"). Rethrow any exceptions.
13. IfconnectedCallbackis not undefined, andIsCallable
(connectedCallback) is false, then throw aTypeError
exception.
14. LetdisconnectedCallbackbeGet
(prototype, "disconnectedCallback"). Rethrow any exceptions.
15. IfdisconnectedCallbackis not undefined, andIsCallable
(disconnectedCallback) is false, then throw aTypeError
exception.
16. LetattributeChangedCallbackbeGet
(prototype, "attributeChangedCallback"). Rethrow any exceptions.
17. IfattributeChangedCallbackis not undefined, andIsCallable
(attributeChangedCallback) is false, then throw aTypeError
exception.
window.customElementsp653 .definep654(name,constructor, { extends:baseLocalName})
Defines a newcustom elementp651
, mapping the given name to the given constructor as acustomized built-in elementp651
for theelement
typep43
identified by the suppliedbaseLocalName. A"NotSupportedError"
DOMException
will be thrown upon trying to extend a
custom elementp651
or an unknown element.
window.customElementsp653 .getp655(name)
Retrieves thecustom element constructorp651
defined for the givennamep652
. Returns undefined if there is nocustom element
definitionp652
with the givennamep652
.
window.customElementsp653 .whenDefinedp655(name)
Returns a promise that will be fulfilled when acustom elementp651
becomes defined with the given name. (If such acustom elementp651
is already defined, the returned promise will be immediately fulfilled.) Returns a promise rejected with a"SyntaxError"
DOMException
if not given avalid custom element namep652
.
654
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
to extract single or multiple pages from adobe PDF file and save into a The portable document format, known as PDF document, is a widely-used form of file
html form output to pdf; cannot save pdf form in reader
C# Image: Save or Print Document and Image in Web Viewer
or image, you can easily save the changes to DLL Library, including documents TIFF, PDF, Excel, Word string fileName = Request.Form["saveFileName"]; string fid
extract data from pdf to excel online; export excel to pdf form
18. Letdefinitionbe a newcustom element definitionp652
withnamep652
name,local namep652
localName,constructorp652
constructor,
prototypep652
prototype,observed attributesp652
observedAttributes, andlifecycle callbacksp653
connectedCallback,
disconnectedCallback, andattributeChangedCallback(stored by their corresponding name).
19. Adddefinitionto thisCustomElementsRegistryp653
.
20. Letdocumentbe thisCustomElementsRegistryp653
'srelevant global objectp837
'sDocumentobjectp748
.
21. Letupgrade candidatesbe all elements that areshadow-including descendants
ofdocument, whose namespace is theHTML
namespacep97
and whose local name islocalName, inshadow-including tree order
. Additionally, ifextendsis non-null, only include
elements that have an attribute namedisp651
whose value isname.
22. For each elementelementinupgrade candidates,enqueue a custom element upgrade reactionp658
givenelementanddefinition.
23. If thisCustomElementsRegistryp653
'swhen-defined promise mapp653
contains an entry with keyname:
1. Letpromisebe the value of that entry.
2. Resolvepromisewith undefined.
3. Delete the entry with keynamefrom thisCustomElementsRegistryp653
'swhen-defined promise mapp653
.
When invoked, theget(name)method must run these steps:
1. If thisCustomElementsRegistryp653
contains an entry withnamep652
name, then return that entry'sconstructorp652
.
2. Otherwise, return undefined.
When invoked, thewhenDefined(name)method must run these steps:
1. Ifnameis not avalid custom element namep652
, then return a new promise rejected with a"SyntaxError"
DOMException
and abort
these steps.
2. If thisCustomElementsRegistryp653
contains an entry withnamep652
name, then return a new promise resolved with undefined and
abort these steps.
3. Letmapbe thisCustomElementsRegistryp653
'swhen-defined promise mapp653
.
4. Ifmapdoes not contain an entry with keyname, create an entry inmapwith keynameand whose value is a new promise.
5. Letpromisebe the value of the entry inmapwith keyname.
6. Returnpromise.
ThewhenDefined()p655
method can be used to avoid performing an action until all appropriatecustom elementsp651
aredefined
. In
this example, we combine it with the:definedp667
pseudo-class to hide a dynamically-loaded article's contents until we're sure that all
of theautonomous custom elementsp651
it uses are defined.
articleContainer.hidden = true;
fetch(articleURL)
.then(response => response.text())
.then(text => {
articleContainer.innerHTML = text;
return Promise.all(
[...articleContainer.querySelectorAll(":not(:defined)")]
.map(el => customElements.whenDefined(el.localName))
);
})
.then(() => {
articleContainer.hidden = false;
});
Example
655
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
Description: Convert to DOCX/TIFF with specified zoom value and save it into stream. Parameters: zoomValue, The magnification of the original PDF page size.
how to fill pdf form in reader; export pdf form data to excel
C# Create PDF from Tiff Library to convert tif images to PDF in C#
Description: Convert to PDF and save it on the disk. Parameters: Name, Description, Valid Value. Description: Convert to PDF and save it into stream. Parameters:
make pdf form editable in reader; how to flatten a pdf form in reader
Toupgrade an element, given as input acustom element definitionp652
definitionand an elementelement, run the following steps:
1. Addelementto the end ofdefinition'sconstruction stackp653
.
2. LetCbedefinition'sconstructorp652
.
3. LetconstructResultbeConstruct
(C).
4. Removeelementfrom the end ofdefinition'sconstruction stackp653
.
5. IfconstructResultis an abrupt completion, then returnconstructResult(i.e., rethrow the exception).
6. IfSameValue
(constructResult.[[value]],element) is false, then throw an"InvalidStateError"
DOMException
and terminate these
steps.
7. Setelement'scustom element state
to "customized".
8. For eachattributeinelement'sattribute list
, in order,enqueue a custom element callback reactionp657
withelement, callback name
"attributeChangedCallback", and an argument list containingattribute's local name, null,attribute's value, andattribute's
namespace.
9. Ifelementis currentlyin a shadow-including document
, thenenqueue a custom element callback reactionp657
withelement, callback
name "connectedCallback", and an empty argument list.
Totry to upgrade an element, given as input an elementelement, run the following steps:
1. Letdocumentbeelement'snode document
.
2. Letisbe the value of the attribute inelement'sattribute list
whose qualified name is "isp651
", if any such attribute exists, or null
otherwise.
3. Letdefinitionbe the result oflooking up a custom element definitionp653
givendocument,element's namespace,element's local name,
andis.
4. Ifdefinitionis not null, thenenqueue a custom element upgrade reactionp658
givenelementanddefinition.
Acustom elementp651
possesses the ability to respond to certain occurrences by running author code:
• Whenupgradedp656
, itsconstructorp651
is run.
• When it isinserted
in a shadow-including document
, itsconnectedCallbackis run.
• When it isin a shadow-including document
andremoved
, itsdisconnectedCallbackis run.
• When any of its attributes arechanged
,appended
,removed
, orreplaced
, itsattributeChangedCallbackis run.
We call these reactions collectivelycustom element reactions.
The way in whichcustom element reactionsp656
are invoked is done with special care, to avoid running author code during the middle of delicate
operations. Effectively, they are delayed until "just before returning to user script". This means that for most purposes they appear to execute
synchronously, but in the case of complicated composite operations (likecloning
, orrange
manipulation), they will instead be delayed until after all
the relevant user agent processing steps have completed, and then run together as a batch.
Additionally, the precise ordering of these reactions is managed via a somewhat-complicated stack-of-queues system, described below. The
intention behind this system is to guarantee thatcustom element reactionsp656
always are invoked in the same order as their triggering actions, at
least within the local context of a singlecustom elementp651
. (Becausecustom element reactionp656
code can perform its own mutations, it is not
possible to give a global ordering guarantee across multiple elements.)
This can occur ifCconstructs another instance of the same custom element before callingsuper(), or ifCuses JavaScript's
return-override feature to return an arbitrary object from the constructor.
Note
4.13.5Upgrades
4.13.6 Custom element reactions
656
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
key. Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Powerful components
pdf data extraction to excel; pdf form save with reader
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
Description: Convert to PDF/TIFF and save it on the disk. Parameters: Description: Convert to PDF/TIFF and save it into stream. Parameters:
collect data from pdf forms; can reader edit pdf forms
Eachunit of related similar-origin browsing contextsp752
has acustom element reactions stack, which is initially empty. Each item in the stack is
anelement queue, which is initially empty as well; theelement queuep657
at the top of the stack is called thecurrent element queue. Each item in
anelement queuep657
is an element. (The elements are not necessarilycustomyet, since this queue is used forupgradesp656
as well.)
All elements have an associatedcustom element reaction queue, initially empty. Each item in thecustom element reaction queuep657
is of one of
two types:
• Anupgrade reaction, which willupgradep656
the custom element and contains acustom element definitionp652
; or
• Acallback reaction, which will call a lifecycle callback, and contains a callback function as well as a list of arguments.
This is all summarised in the following schematic diagram:
custom element
reactions stack
element queue
<x-a>
<x-b>
<x-c>
custom element reaction queue
Upgrade
Attribute
changed
Attribute
changed
Connected
Toenqueue a custom element callback reaction, given acustom elementp651
element, a callback namecallbackName, and a list of arguments
args, run the following steps:
1. Letdocumentbeelement'snode document
.
2. Ifdocumentdoes not have abrowsing contextp748
, then abort these steps.
3. Letregistrybedocument'sassociatedWindowp748
'sCustomElementsRegistryp653
object.
4. Letdefinitionbe the entry inregistrywithnamep652
equal toelement's local name.
5. Letcallbackbe the value of the entry indefinition'slifecycle callbacksp653
with keycallbackName.
6. Ifcallbackis undefined, then abort these steps.
7. IfcallbackNameis "attributeChangedCallback", then:
1. LetattributeNamebe the first element ofargs.
2. Ifdefinition'sobserved attributesp652
does not containattributeName, then abort these steps.
8. Add a newcallback reactionp657
toelement'scustom element reaction queuep657
, with callback functioncallbackand argumentsargs.
9. Addelementto thecurrent element queuep657
.
This algorithm can only be called when such a definition exists.
Note
657
Toenqueue a custom element upgrade reaction, given an elementelementandcustom element definitionp652
definition, run the following steps:
1. Add a newupgrade reactionp657
toelement'scustom element reaction queuep657
, withcustom element definitionp652
definition.
2. Addelementto thecurrent element queuep657
.
Toinvoke custom element reactionsin anelement queuep657
queue, run the following steps:
1. For eachcustom elementp651
elementinqueue:
1. Letreactionsbeelement'scustom element reaction queuep657
.
2. Repeat untilreactionsis empty:
1. Remove the first element ofreactions, and letreactionbe that element. Switch onreaction's type:
upgrade reactionp657
Upgradep656
elementusingreaction'scustom element definitionp652
.
callback reactionp657
Invoke
reaction's callback function withreaction's arguments, and withelementas thecallback this
value
.
If this throws any exception, thenreport the exceptionp840
.
To ensurecustom element reactionsp656
are triggered appropriately, we introduce the[CEReactions]IDLextended attribute. It indicates that the
relevant algorithm is to be supplemented with additional steps in order to appropriately track and invokecustom element reactionsp656
.
The[CEReactions]p658
extended attribute must take no arguments, and must not appear on anything other than an operation, attribute, setter, or
deleter. Additionally, it must not appear on readonly attributes, unless the readonly attribute is also annotated with[PutForwards].
Operations, attributes, setters, or deleters annotated with the[CEReactions]p658
extended attribute must run the following steps surrounding the
main algorithm specified for the operation, setter, deleter, or for the attribute's setter:
Before executing the algorithm's steps
Push a newelement queuep657
onto thecustom element reactions stackp657
.
After executing the algorithm's steps
Pop theelement queuep657
from thecustom element reactions stackp657
, andinvoke custom element reactionsp658
in that queue.
4.14 Common idioms without dedicated elements
The main content of a page — not including headers and footers, navigation links, sidebars, advertisements, and so forth — can be marked up in a
variety of ways, depending on the needs of the author.
The simplest solution is to not mark up the main content at all, and just leave it as implicit. Another way to think of this is that thebodyp156
elements
marks up the main content of the page, and the bits that aren't main content are excluded through the use of more appropriate elements like
asidep165
andnavp162
.
The intent behind this extended attribute is somewhat subtle. One way of accomplishing its goals would be to say that every operation,
attribute, setter, and deleter on the platform should have these steps inserted, and to allow implementers to optimize away unnecessary
cases (where no DOM mutation is possible that could causecustom element reactionsp656
to occur).
However, in practice this imprecision could lead to non-interoperable implementations ofcustom element reactionsp656
, as some
implementations might forget to invoke these steps in some cases. Instead, we settled on the approach of explicitly annotating all relevant
IDL constructs, as a way of ensuring interoperable behavior and helping implementations easily pinpoint all cases where these steps are
necessary.
Note
Example
4.14.1 The main part of the content
658
If the main content is an independent unit of content that one could imagine syndicating independently, then thearticlep157
element would be
appropriate to mark up the main content of the document.
Here is a short Web page marked up along this minimalistic school of thought. The main content is highlighted. Notice how all theother
content in thebodyp156
is marked up with elements to indicate that it's not part of the main content, in this caseheaderp170
,navp162
,
andfooterp171
.
<!DOCTYPE HTML>
<html lang="en">
<head>
<title> My Toys </title>
</head>
<body>
<header>
<h1>My toys</h1>
</header>
<nav>
<p><a href="/">Home</a></p>
<p><a href="/contact">Contact</a></p>
</nav>
<p>I really like my chained book and my telephone. I'm not such a
fan of my big ball.</p>
<p>Another toy I like is my mirror.</p>
<footer>
<p>© copyright 2010 by the boy</p>
</footer>
</body>
</html>
The document in the previous example is here recast as a blog post:
<!DOCTYPE HTML>
<html lang="en">
<head>
<title> The Boy Blog: My Toys </title>
</head>
<body>
<header>
<h1>The Boy Blog</h1>
</header>
<nav>
<p><a href="/">Home</a></p>
<p><a href="/contact">Contact</a></p>
</nav>
<article>
<header>
<h1>My toys</h1>
<p>Published August 4th</p>
</header>
<p>I really like my chained book and my telephone. I'm not such a
fan of my big ball.</p>
<p>Another toy I like is my mirror.</p>
</article>
<footer>
<p>© copyright 2010 by the boy</p>
</footer>
</body>
</html>
Example
659
If the main content is not an independent unit of content so much as a section of a larger work, for instance a chapter, then thesectionp159
element would be appropriate to mark up the main content of the document.
If neitherarticlep157
norsectionp159
would be appropriate, but the main content still needs an explicit element, for example for styling purposes,
then themainp204
element can be used.
Here is the same document, but as a chapter in an online book:
<!DOCTYPE HTML>
<html lang="en">
<head>
<title> Chapter 2: My Toys — The Book of the Boy </title>
</head>
<body>
<header>
<hgroup>
<h1>The Book of the Boy</h1>
<h2>A book about boy stuff</h2>
</hgroup>
</header>
<nav>
<p><a href="/">Front Page</a></p>
<p><a href="/toc">Table of Contents</a></p>
<p><a href="/c1">Chapter 1</a> — <a href="/c3">Chapter 3</a></p>
</nav>
<section>
<h1>Chapter 2: My Toys</h1>
<p>I really like my chained book and my telephone. I'm not such a
fan of my big ball.</p>
<p>Another toy I like is my mirror.</p>
</section>
</body>
</html>
Example
This is the same as the original example, but usingmainp204
for the main content instead of leaving it implied:
<!DOCTYPE HTML>
<html lang="en">
<head>
<title> My Toys </title>
<style>
body > main { background: navy; color: yellow; }
</style>
</head>
<body>
<header>
<h1>My toys</h1>
</header>
<nav>
<p><a href="/">Home</a></p>
<p><a href="/contact">Contact</a></p>
</nav>
<main>
<p>I really like my chained book and my telephone. I'm not such a
fan of my big ball.</p>
<p>Another toy I like is my mirror.</p>
</main>
<footer>
<p>© copyright 2010 by the boy</p>
Example
660
Documents you may be interested
Documents you may be interested