浏览器引擎如何工作?

时间:2018-07-26 07:17:46

标签: html browser

这是我使用Google HTML / CSS指南的HTML测试代码。

<table>
    <thead>
      <tr>
        <th>Date
        <th>Country
    <tbody>
      <tr>
        <td>24/07/2018
        <td>Myanmar
      <tr>
        <td>31/06/2018
        <td>France
  </table>

以下是浏览器的解释方式。

<table>
     <thead>
        <tr>
          <th>Date
          </th>
          <th>Country
          </th>
        </tr>
      </thead>
      <tbody>
         <tr>
            <td>24/07/2018
            </td>
            <td>Myanmar
            </td>
         </tr>
          <tr>
            <td>31/06/2018
            </td>
            <td>France
            </td>
          </tr>
       </tbody>
    </table>

这是我的问题。

  • 浏览器如何检测到缺少结束标记及其解释方式。

  • 是否最好使用没有结束元素?如果是,我什么时候应该使用?

  • 如果不是最好的话,为什么?
  • 会影响样式并在HTML语义样式上添加交互性吗?

1 个答案:

答案 0 :(得分:0)

答案:

  1. 这超出了SO的范围,但是就像任何编译器检测到打开的东西都没有关闭一样。您可以尝试编写一些程序来识别有效的括号序列,这可能很相似。
  2. 不使用结束元素可能会导致页面无法正常维护。始终使用结束元素。
  3. 请参阅2。
  4. 请参阅2。

浏览器有时可以猜测您的意思(更好的说,他们很幸运地以产生您的意思的方式进行了解析),但也可能是错误的。看到这个:

<div>Hello<span>world

是这个

<div>Hello</div><span>world></span>

<div>Hello<span>world></span></div>

都是有效的,浏览器也不了解您的意思。如果您真的想了解浏览器应该如何解析HTML,请参阅以下链接: @modu和@kalido:http://w3c.github.io/html/syntax.html#tokenization。您也许可以锻炼浏览器如何解析上面的行。