Things to note when writing self-closing XHTML tags

Things to note when writing self-closing XHTML tags

The img tag in XHTML is so-called self-closing, which is completely legal in XML.
The img tag in XHTML should be written like this: <img alt="" src="" />. This writing method is also called self-closing, which is completely legal in XML. If you are familiar with XML-related development, you may be accustomed to this way of writing, thinking that any element in XML that does not have child nodes can be written in this way, and then any tag with no content in XHTML can also be written in this way. In theory, XHTML allows any tag to be written in a self-closing manner, but browser compatibility has brought a new problem, that is, IE cannot correctly recognize the self-closing writing method of certain tags. String 8
Please try to enter the following XHTML code and browse it in IE: <p>hello <script type="text/javascript" /> world</p>. You will find that you can only see the hello at the beginning but not the world at the end. This is really inexplicable. Many of you may have encountered this problem before and spent hours on it without finding a reasonable explanation. String 4
The explanation comes from another similar code: <p>hello <textarea /> world</p>. Can you get a reasonable explanation by looking at its display effect in IE? We can see that the hello in the front is displayed normally, while the world in the back is displayed in the textarea. This proves that IE does not correctly recognize that the textarea tag has been closed by itself, but treats it as not closed and recognizes the following content as the content inside the textarea.
Now we understand why the previous code cannot see the world behind it, because it is recognized as part of the script. This shows that when we use XHTML, we cannot use self-closing writing style as arbitrarily as XML. Only a few tags that do not need to be closed can be written in a self-closing way. For other tags, it is best to use paired closing writing style even if they do not have any content.
Finally, I need to remind everyone that in fact, stupid parsers are not only found in IE. Problems caused by imprecise parsers may occur in many places. Therefore, when writing XHTML, we still have to accommodate some habits inherited from old HTML. We cannot just write it casually as if we think it meets the standards like real XML. Don't believe it? Let’s try another one: <p>hello <br></br> world</p>, and notice how it looks in IE and Opera.
Some relevant specifications of XHTML:
1. All tags must have a corresponding end tag
2. The names of all tag elements and attributes must be lowercase
3. All XML tags must be properly nested
4. All attributes must be enclosed in quotation marks ""
5. Encode all < and & special symbols
6. Assign a value to all attributes
7. Don’t use “--” in comments

<<:  How to use docker to deploy dubbo project

>>:  mysql update case update field value is not fixed operation

Recommend

Detailed explanation of the basic usage of the Linux debugger GDB

Table of contents 1. Overview 2. gdb debugging 2....

CentOS 6.5 installation mysql5.7 tutorial

1. New Features MySQL 5.7 is an exciting mileston...

Make your website run fast

Does performance really matter? Performance is im...

5 super useful open source Docker tools highly recommended

Introduction The Docker community has created man...

Specific use of Node.js package manager npm

Table of contents Purpose npm init and package.js...

Detailed explanation of two quick ways to write console.log in vscode

(I) Method 1: Define it in advance directly in th...

Solution for adding iptables firewall policy to MySQL service

If your MySQL database is installed on a centos7 ...

How to define input type=file style

Why beautify the file control? Just imagine that a...

MySQL exposes Riddle vulnerability that can cause username and password leakage

The Riddle vulnerability targeting MySQL versions...

Sample code for installing ElasticSearch and Kibana under Docker

1. Introduction Elasticsearch is very popular now...

Where is mysql data stored?

MySQL database storage location: 1. If MySQL uses...

Shell script to monitor MySQL master-slave status

Share a Shell script under Linux to monitor the m...