jQuery rememberScroll.js Demo


The testing document starts here

Full table of contents

    1 Introduction
        1.1 Where does this specification fit?
        1.2 Is this HTML5?
        1.3 Background
        1.4 Audience
        1.5 Scope
        1.6 History
        1.7 Design notes
            1.7.1 Serializability of script execution
            1.7.2 Compliance with other specifications
            1.7.3 Extensibility
        1.8 HTML vs XML syntax
        1.9 Structure of this specification
            1.9.1 How to read this specification
            1.9.2 Typographic conventions
        1.10 Privacy concerns
            1.10.1 Cross-site communication
        1.11 A quick introduction to HTML
            1.11.1 Writing secure applications with HTML
            1.11.2 Common pitfalls to avoid when using the scripting APIs
            1.11.3 How to catch mistakes when writing HTML: validators and conformance checkers
        1.12 Conformance requirements for authors
            1.12.1 Presentational markup
            1.12.2 Syntax errors
            1.12.3 Restrictions on content models and on attribute values
        1.13 Suggested reading
    2 Common infrastructure
        2.1 Terminology
            2.1.1 Resources
            2.1.2 XML compatibility
            2.1.3 DOM trees
            2.1.4 Scripting
            2.1.5 Plugins
            2.1.6 Character encodings
            2.1.7 Conformance classes
            2.1.8 Dependencies
            2.1.9 Extensibility
            2.1.10 Interactions with XPath and XSLT
        2.2 Case-sensitivity and string comparison
        2.3 Common microsyntaxes
            2.3.1 Common parser idioms
            2.3.2 Boolean attributes
            2.3.3 Keywords and enumerated attributes
            2.3.4 Numbers
                2.3.4.1 Signed integers
                2.3.4.2 Non-negative integers
                2.3.4.3 Floating-point numbers
                2.3.4.4 Percentages and lengths
                2.3.4.5 Non-zero percentages and lengths
                2.3.4.6 Lists of floating-point numbers
                2.3.4.7 Lists of dimensions
            2.3.5 Dates and times
                2.3.5.1 Months
                2.3.5.2 Dates
                2.3.5.3 Yearless dates
                2.3.5.4 Times
                2.3.5.5 Local dates and times
                2.3.5.6 Time zones
                2.3.5.7 Global dates and times
                2.3.5.8 Weeks
                2.3.5.9 Durations
                2.3.5.10 Vaguer moments in time
            2.3.6 Colors
            2.3.7 Space-separated tokens
            2.3.8 Comma-separated tokens
            2.3.9 References
            2.3.10 Media queries
        2.4 URLs
            2.4.1 Terminology
            2.4.2 Parsing URLs
            2.4.3 Dynamic changes to base URLs
        2.5 Fetching resources
            2.5.1 Terminology
            2.5.2 Determining the type of a resource
            2.5.3 Extracting character encodings from meta elements
            2.5.4 CORS settings attributes
            2.5.5 Referrer policy attributes
        2.6 Common DOM interfaces
            2.6.1 Reflecting content attributes in IDL attributes
            2.6.2 Collections
                2.6.2.1 The HTMLAllCollection interface
                2.6.2.2 The HTMLFormControlsCollection interface
                2.6.2.3 The HTMLOptionsCollection interface
            2.6.3 The DOMStringList interface
            2.6.4 Garbage collection
        2.7 Safe passing of structured data
            2.7.1 Serializable objects
            2.7.2 Transferable objects
            2.7.3 StructuredSerializeInternal ( value, forStorage [ , memory ] )
            2.7.4 StructuredSerialize ( value )
            2.7.5 StructuredSerializeForStorage ( value )
            2.7.6 StructuredDeserialize ( serialized, targetRealm [ , memory ] )
            2.7.7 StructuredSerializeWithTransfer ( value, transferList )
            2.7.8 StructuredDeserializeWithTransfer ( serializeWithTransferResult, targetRealm )
            2.7.9 Performing serialization and transferring from other specifications
            2.7.10 Monkey patch for Blob and FileList objects
    3 Semantics, structure, and APIs of HTML documents
        3.1 Documents
            3.1.1 The Document object
            3.1.2 Resource metadata management
            3.1.3 DOM tree accessors
        3.2 Elements
            3.2.1 Semantics
            3.2.2 Elements in the DOM
            3.2.3 HTML element constructors
            3.2.4 Element definitions
                3.2.4.1 Attributes
            3.2.5 Content models
                3.2.5.1 The "nothing" content model
                3.2.5.2 Kinds of content
                    3.2.5.2.1 Metadata content
                    3.2.5.2.2 Flow content
                    3.2.5.2.3 Sectioning content
                    3.2.5.2.4 Heading content
                    3.2.5.2.5 Phrasing content
                    3.2.5.2.6 Embedded content
                    3.2.5.2.7 Interactive content
                    3.2.5.2.8 Palpable content
                    3.2.5.2.9 Script-supporting elements
                3.2.5.3 Transparent content models
                3.2.5.4 Paragraphs
            3.2.6 Global attributes
                3.2.6.1 The title attribute
                3.2.6.2 The lang and xml:lang attributes
                3.2.6.3 The translate attribute
                3.2.6.4 The dir attribute
                3.2.6.5 The style attribute
                3.2.6.6 Embedding custom non-visible data with the data-* attributes
            3.2.7 The innerText IDL attribute
            3.2.8 Requirements relating to the bidirectional algorithm
                3.2.8.1 Authoring conformance criteria for bidirectional-algorithm formatting characters
                3.2.8.2 User agent conformance criteria
            3.2.9 Requirements related to ARIA and to platform accessibility APIs

HTML5 is the latest evolution of the standard that defines HTML. The term represents two different concepts:

    It is a new version of the language HTML, with new elements, attributes, and behaviors,
    and a larger set of technologies that allows more diverse and powerful Web sites and applications. This set is sometimes called HTML5 & friends and often shortened to just HTML5.

Designed to be usable by all Open Web developers, this reference page links to numerous resources about HTML5 technologies, classified into several groups based on their function.

    Semantics: allowing you to describe more precisely what your content is.
    Connectivity: allowing you to communicate with the server in new and innovative ways.
    Offline and storage: allowing webpages to store data on the client-side locally and operate offline more efficiently.
    Multimedia: making video and audio first-class citizens in the Open Web.
    2D/3D graphics  and effects: allowing a much more diverse range of presentation options.
    Performance and integration: providing greater speed optimization and better usage of computer hardware.
    Device access: allowing for the usage of various input and output devices.
    Styling: letting authors write more sophisticated themes.

SemantIcs

Sections and outlines in HTML5
    A look at the new outlining and sectioning elements in HTML5: <section>, <article>, <nav>, <header>, <footer> and <aside>.
Using HTML5 audio and video
    The <audio> and <video> elements embed and allow the manipulation of new multimedia content.
Forms in HTML5
    A look at improvements to web forms in HTML5: the constraint validation API, several new attributes, new values for the <input> attribute type and the new <output> element.
New semantic elements
    Beside sections, media and forms elements, there are numerous new elements, like <mark>, <figure>, <figcaption>, <data>, <time>, <output>, <progress>, or <meter> and <main>, increasing the number of valid HTML5 elements.
Improvement in <iframe>
    Using the sandbox and srcdoc attributes, authors can now be precise about the level of security and the wished rendering of an <iframe> element.
MathML
    Allows directly embedding mathematical formulas.
Introduction to HTML5
    This article introduces how to indicate to the browser that you are using HTML5 in your web design or web application.
HTML5-compliant parser
    The parser, which turns the bytes of an HTML document into a DOM, has been extended and now precisely defines the behavior to use in all cases, even when faced with invalid HTML. This leads to far greater predictability and interoperability between HTML5-compliant browsers.

Connectivity

Web Sockets
    Allows creating a permanent connection between the page and the server and to exchange non-HTML data through that means.
Server-sent events
    Allows a server to push events to a client, rather than the classical paradigm where the server could send data only in response to a client's request.
WebRTC
    This technology, where RTC stands for Real-Time Communication, allows connecting to other people and controlling videoconferencing directly in the browser, without the need for a plugin or an external application.

Offline & storage

Offline resources: The application cache
    Firefox fully supports the HTML5 offline resource specification. Most others have offline resource support at some level.
Online and offline events
    Firefox 3 supports WHATWG online and offline events, which let applications and extensions detect whether or not there's an active Internet connection, as well as to detect when the connection goes up and down.
WHATWG client-side session and persistent storage (aka DOM storage)
    Client-side session and persistent storage allows web applications to store structured data on the client side.
IndexedDB
    IndexedDB is a web standard for the storage of significant amounts of structured data in the browser and for high performance searches on this data using indexes.
Using files from web applications
    Support for the new HTML5 File API has been added to Gecko, making it possible for web applications to access local files selected by the user. This includes support for selecting multiple files using the <input> of type file HTML element's new multiple attribute. There also is FileReader.

Multimedia

Using HTML5 audio and video
    The <audio> and <video> elements embed and allow the manipulation of new multimedia content.
WebRTC
    This technology, where RTC stands for Real-Time Communication, allows connecting to other people and controlling videoconferencing directly in the browser, without the need for a plugin or an external application.
Using the Camera API
    Allows using, manipulating, and storing an image from the computer's camera.
Track and WebVTT
    The <track> element allows subtitles and chapters. WebVTT is a text track format.

3D graphics AND effects

Canvas tutorial
    Learn about the new <canvas> element and how to draw graphs and other objects in Firefox.
HTML5 Text API for <canvas> elements
    The HTML5 text API is now supported by <canvas> elements.
WebGL
    WebGL brings 3D graphics to the Web by introducing an API that closely conforms to OpenGL ES 2.0 that can be used in HTML5 <canvas> elements.
SVG
    An XML-based format of vectorial images that can directly be embedded in the HTML.

Performance and Integration

Web Workers
    Allows delegation of JavaScript evaluation to background threads, allowing these activities to prevent slowing down interactive events.
XMLHttpRequest level 2
    Allows fetching asynchronously some parts of the page, allowing it to display dynamic content, varying according to the time and user actions. This is the technology behind Ajax.
JIT-compiling JavaScript engines
    The new generation of JavaScript engines is much more powerful, leading to greater performance.
History API
    Allows the manipulation of the browser history. This is especially useful for pages loading interactively new information.
The contentEditable Attribute: Transform your website to a wiki!
    HTML5 has standardized the contentEditable attribute. Learn more about this feature.
Drag and drop
    The HTML5 drag and drop API allows support for dragging and dropping items within and between web sites. This also provides a simpler API for use by extensions and Mozilla-based applications.
Focus management in HTML
    The new HTML5 activeElement and hasFocus attributes are supported.
Web-based protocol handlers
    You can now register web applications as protocol handlers using the navigator.registerProtocolHandler() method.
requestAnimationFrame
    Allows control of animations rendering to obtain optimal performance.
Fullscreen API
    Controls the usage of the whole screen for a Web page or application, without the browser UI displayed.
Pointer Lock API
    Allows locking the pointer to the content, so games and similar applications don't lose focus when the pointer reaches the window limit.
Online and offline events
    In order to build a good offline-capable web application, you need to know when your application is actually offline. Incidentally, you also need to know when your application has returned to an online status again.

Device access

Using the Camera API
    Allows using, manipulating, and storing an image from the computer's camera.
Touch events
    Handlers to react to events created by a user pressing touch screens.
Using geolocation
    Let browsers locate the position of the user using geolocation.
Detecting device orientation
    Get the information when the device on which the browser runs changes orientation. This can be used as an input device (e.g., to make games that react to the position of the device) or to adapt the layout of a page to the orientation of the screen (portrait or landscape).
Pointer Lock API
    Allows locking the pointer to the content, so games and similar application don't lose focus when the pointer reaches the window limit.

StylIng

CSS has been extended to be able to style elements in a much more complex way. This is often referred as CSS3, though CSS is not a monolithic specification any more and the different modules are not all at level 3: some are at level 1 and others at level 4, with all the intermediate levels covered.

New background styling features
    It is now possible to put a shadow to a box, using box-shadow and multiple backgrounds can be set.
More fancy borders
    Not only it is now possible to use images to style borders, using border-image and its associated longhand properties, but rounded borders are supported via the border-radius property.
Animating your style
    Using CSS Transitions to animate between different states or using CSS Animations to animate parts of the page without a triggering event, you can now control mobile elements on your page.
Typography improvement
    Authors have better control to reach better typography. They can control text-overflow and hyphenation, but also can add a shadow to it or control more precisely its decorations. Custom typefaces can be downloaded and applied thanks to the new @font-face at-rule.
New presentational layouts
    In order to improve the flexibility of designs, two new layouts have been added: the CSS multi-column layouts and CSS flexible box layout.

Was this article helpful?
Thank you!
Document Tags and Contributors
Tags:

    Guide HTML HTML5 Overview Web Web Development

 Contributors to this page: peterholthoffman, xfq, Sheppy, bwbw223, stephaniehobson, teoli, BradleyDon, r-o-b, jswisher, firefoxromanov63, shottiebl8714, jsx, danielinux7, sxxxsz, saidkocdemir, sparky11478, nasko83, janokar, ecal, Windforce, amalraj, abhishek93, masa86, mdmanuwerhussain, EmilyG, jtthackery, John.Smith, TanyaSharma, sivsivsree, dbs, melchiorb, cforcloud, indrani7, ZawNaingOo, kscarfone, dac, Timmi, imonlhec22, SteveFaulkner, ginapugalee, ethertank, gati_mahesh, sharwoodjr, anisur3036, Sannymei1960, ACSHN, openjck, haboqueferus, iwo, soulxshajjad, pablocubico, 94423450, [email protected], Deadsparrow, KyleBarnhart, harangozo, msrishikesh, juliepagano, Mohammed_Hossam, iSpellbinder, bdnd, trevorh, louisremi, berkerpeksag, vigia122, auco, tw2113, vladikoff, markg, medimnos, lmorchard, Jay, Ptak82, Jason23, thatsmekaustubh, Carleial, Dwchiang, Jesse, jisung, coder, xaky, leegorous, makkes, funkyeah, Verruckt, sebmozilla, Ms2ger, Izel, f.sanxz, Crash, BenoitL, Marsf
 Last updated by: peterholthoffman, Apr 28, 2017, 11:13:58 AM