官术网_书友最值得收藏!

Mistakes in HTML

Most browsers do their best to render a web page even if the HTML does not comply perfectly with the W3C's HTML5 standard. One area where HTML5 differs from the previous versions, including XHTML, is that the standard gives detailed instructions for browser developers on how to handle mistakes and issues in an HTML5 document. HTML5 tries to standardize how browsers handle problems and there is a lot of flexibility built into the standard (such as optional omitted end tags).

With that said, there are still many ways that an HTML document might be wrong due to typos, omitted tags, or the incorrect use of tags. Let's look at a few potential mistakes.

A common problem is a missing or mistyped closing tag. Here, we can see an example: in the following snippet of HTML, we have a paragraph with two anchor elements, both of which are pointing at different pages of the Packt website:

<p>

    Learn about <a >web development</a>. Try out some of the <a >Free learning on the Packt site.

</p>

<p>

    Lorem ipsum...

</p>

There is one problem with this code. The second link does not have a closing tag and so the anchor element never closes. This makes the rest of the paragraph and the next paragraph in the document the same anchor tag. Anything beneath the opening anchor tag (<a>) until another closing anchor tag (</a>) would become an active link due to this mistake.

We can see the result in the following figure where the link text runs on to the second paragraph:

Figure 1.12: Missing closing tag on an anchor element

Some issues are not to do with syntax error but are regarding the semantic constraints of HTML5. In other words, an element might have a specific role or meaning and having more than one instance might not make sense.

For example, the main element describes the main content of an HTML document. There should never be more than one main element visible on a web page at any one time.

The following code would not be valid:

<body>

     <main id="main1"><!-- main content here … --></main>

     <main id="main2"><!-- more main content here ... --></main>

</body>

However, if we were to hide one of the instances of the main element and only render that one when we hide the other, we would be using the main element in a way that is acceptable. The browser could still determine what the main content of our web page is. For example, the following code would be valid:

<body>

     <main id="main1"><!-- main content here … --></main>

     <main id="main2" hidden><!-- more main content here ... --></main>

</body>

Look carefully and you will see that we have added the hidden attribute to the second instance of the main element. This means there is only one visible main element in the web page.

You will learn more about main and other structural elements in the next chapter.

Sometimes, mistakes are caused by not knowing the specification. Take, for example, Boolean attributes such as the disabled attribute. We can apply this attribute to some interactive elements such as form inputs and buttons.

A button element creates a clickable button UI on a web page. We can use this element to trigger form submissions or to change the web page. We can use the disabled attribute with this element to stop it from submitting or taking any action.

If we add the disabled attribute like this, <button disabled="false">Click me!</button>, we might expect this element to be enabled. We've set the disabled attribute to false, after all. However, the specification for the disabled attribute says that the state of the element is decided by whether the attribute is present or not and the value is not regarded. To enable the element, you must remove the disabled attribute.

Because of the ways most modern browsers try to correct problems in HTML5 documents, it might not be immediately obvious what the benefits of making your HTML document valid are. However, it is good to keep in mind that, while developing for the web, you could have an audience on a variety of browsers – not all of them the most modern. Equally, it is still very easy to make mistakes that will cause obvious rendering issues. The best way to solve these is to make sure your document is valid and therefore working as expected.

There are tools available to help you check that your web page is valid. In the forthcoming exercise, we will look at how we can use an online tool to validate a web page.

主站蜘蛛池模板: 新河县| 黑山县| 平舆县| 柳林县| 镇康县| 民和| 富锦市| 荣成市| 永宁县| 库伦旗| 安平县| 怀仁县| 手机| 泰来县| 清苑县| 察雅县| 汉中市| 中江县| 遂平县| 朝阳市| 永和县| 石林| 扎囊县| 石狮市| 应用必备| 昌乐县| 剑阁县| 遵义县| 临武县| 乡宁县| 吉首市| 读书| 阳谷县| 南和县| 安福县| 澄迈县| 顺义区| 乌拉特前旗| 岗巴县| 耿马| 克山县|