Почему форма, вложенная в p, не проверяется как XHTML

Если обнаружение действительно необходимо, вы должны взглянуть на http://detector.dmolsen.com .

30
задан Syncrossus 1 June 2018 в 19:23
поделиться

5 ответов

Посмотрите сообщения об ошибках, которые вы получаете, когда пробуете это с http://validator.w3.org

Помимо предупреждения о том, что вы не указали символ кодировка (и поэтому предполагается, что UTF-8), основная ошибка заключается в том, что

не может содержать не встроенный контент. Вы можете либо полностью удалить

и

, либо переместить их внутрь
.

Что касается «почему» ', потому что именно так он определен в схеме, которая определяет, что является, а что нет, XHTML. Если вы посмотрите этот раздел определения XHTML , вы увидите, что

может содержать только текстовые или «встроенные» (не «блочные») теги.

57
ответ дан 27 November 2019 в 23:55
поделиться

Согласно это , потому что:

Строка 8, Столбец 44: тип документа не допускать здесь элемента "форма"; отсутствует один из «объект», «вход», «дель», «карта» начальный тег ✉ Упомянутый элемент не допускается появиться в контексте, в котором вы его разместили; другой упомянутый элементы - единственные, которые оба разрешены там и могут содержать упомянутый элемент. Это может означать что вам нужен содержащий элемент, или возможно, что вы забыли закрыть предыдущий элемент.

Одной из возможных причин этого сообщения является что вы пытались поставить элемент уровня блока (например, "p" или "table") внутри встроенного элемента (например, "a", "span" или "font").

Строка 9, столбец 40: тип документа не разрешать здесь элемент «ввод»; отсутствует один из "p", "h1", "h2", "h3", «h4», «h5», «h6», «div», «pre», "адрес", "набор полей", "входы", "дель" начальный тег input type = "submit" value = "Hello" Упомянутый элемент не может появляться в контекст, в который вы его поместили; другие упомянутые элементы - это только те, которые разрешены там и может содержать упомянутый элемент. Это может означать, что вам нужен содержащий элемент, или, возможно, что вы забыли закрыть предыдущий элемент.

Одной из возможных причин этого сообщения является что вы пытались поставить элемент уровня блока (например, "p" или "table") внутри встроенного элемента (например, "a", "span" или "font").

1
ответ дан 27 November 2019 в 23:55
поделиться

Попробуйте использовать W3C Markup Validator , который подскажет, что является недопустимым в большинстве (X) HTML и CSS-документов.

-1
ответ дан 27 November 2019 в 23:55
поделиться

Вы не можете поместить форму внутри абзаца. Напишите так:

<body>
  <form action="something.php" method="get">
  <p>
    <input type="submit" value="Hello"/>
  </p>
  </form>
</body>
-2
ответ дан 27 November 2019 в 23:55
поделиться

Я провел тест с вашим HTML-кодом через validator.w3.org , и в результате вам нужно поменять местами теги P и FORM, чтобы он прошел как действительный W3C HTML.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>A webpage</title>
</head>
<body>
  <form action="something.php" method="get">
    <p>
      <input type="submit" value="Hello"/>
    </p>
  </form>
</body>
</html>
-3
ответ дан 27 November 2019 в 23:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: