11.09.2009 10:37

  1. Увидел в Scipio такой шаблон:

    <!DOCTYPE html>
    <head>
      <title>Login</title>
      <meta charset="utf-8">
    
    <body>
    <form action="{% url scipio_login %}" method="post">
      {{ form.as_p }}
    
      <div><button>Login</button></div>
    </form>
    

    Немного удивило, что:

    • нет тега <html>,
    • не закрыты <head> и <body>.

    В HTML5 так можно?

  2. Так можно в любом HTML. Больше того (а это шок похлеще), можно и открывающие теги этих элементов опускать. Это переткло из SGML'ного прошлого, там есть понятие implied тегов, когда парсер, находя элементы, которые должны встречаться в каком-то контейнере, имеет право тут же неявно открыть контейнер.

    То есть вот это валидный HTML (и 4, и 5, не знаю про 3.2):

    <title>Title</title>
    <p>Hello World!
    

    По нему будет создан такой DOM:

    HTML
      HEAD
        TITLE
      BODY
        P
    
  3. А, пардон, чтобы он был прям валидным-валидным, DOCTYPE ещё конечно нужен:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <title>Title</title>
    <p>Hello World!
    
  4. Очень познавательно. Спасибо!

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.