Недопустимый тег _formhelpers.html? [Дубликат]

У меня была точно такая же проблема, и, наконец, она была решена.

Я поместил все зависимые DLL в ту же папку, где был сохранен mylib.dll, и убедитесь, что JAVA Compiler смог его найти (если в пути компиляции нет mylib.dll, будет ошибка сообщая об этом во время компиляции). Важно отметить, что вы должны убедиться, что все зависимые библиотеки имеют одну и ту же версию с mylib.dll, например, если ваша версия mylib.dll является версией, тогда вы также должны поместить в нее версию всех зависимых библиотек ,

Надеюсь, это поможет другим, кто столкнулся с одной и той же проблемой.

148
задан Charles 9 December 2013 в 07:21
поделиться

14 ответов

Необязательные - это все те, которые должны быть семантически понятны, где они заканчиваются, без использования конечного тега. НАПРИМЕР. каждый <li> подразумевает </li>, если перед ним нет ни одного.

Все теги запрещенного конца будут немедленно сопровождаться их конечным тегом, поэтому было бы лишним, чтобы каждый раз набирать <img src="blah" alt="blah"></img>.

Я почти всегда использую необязательный теги (если у меня не очень хорошая причина), потому что он предоставляет более читаемый и обновляемый код.

48
ответ дан aslum 22 August 2018 в 12:16
поделиться
  • 1
    я вижу это сейчас. <LI> похоже на пулю. Никто не захотел бы обернуть всю маркированную точку в <LI>...</LI>. Таким образом, LI соответствует тому, что люди могли бы писать во время разметки. Sames идет для метки абзаца (<P>), в текстовой обработке вы добавляете знак абзаца в начале абзаца; а не в конце каждого. Таким образом, в этой интерпретации закрывающие теги являются необязательными, потому что никто из обычных людей не подумает об их наличии. Кроме того, сам элемент не имеет содержимого - элемент является содержимым. – Ian Boyd 9 June 2010 в 19:40
  • 2
    Что вы подразумеваете под Я почти всегда использую необязательные теги - вы имеете в виду, что вы include конечный тег или что вы оставьте это ? (У меня создалось впечатление, что вы включаете его, когда я читаю ваш ответ, но комментарий выше Ian Boyd дает мне впечатление, что вы исключаете это.) – KajMagnus 28 June 2012 в 09:36
  • 3
    @IanBoyd И для последнего абзаца? – Pacerier 15 July 2012 в 19:02
  • 4
    @Pacerier Люди писали абзацы текста сотни лет. Никто не смутился, когда заканчивается абзац. – Ian Boyd 16 July 2012 в 22:24
  • 5
    Соответствующая ссылка для HTML5, для тех, кто нашел этот ответ, пытаясь найти фактическую справочную документацию: w3.org/TR/html5/syntax.html#optional-tags – Mike 'Pomax' Kamermans 4 December 2013 в 19:46

Использование концевых тэгов облегчает работу с фрагментами, поскольку их поведение не зависит от элементов sibling. Эта причина сама по себе должна быть достаточно убедительной. Кто-нибудь имеет дело с монолитными html-документами?

2
ответ дан CurtainDog 22 August 2018 в 12:16
поделиться

Для запрещенных типов закрытия используйте синтаксис, подобный: <img /> С помощью />, чтобы закрыть тег, который принят в xml

-2
ответ дан Dani 22 August 2018 в 12:16
поделиться
  • 1
    Он не работает в HTML4 (он соответствует неясному синтаксису SGML, который делает что-то немного другое). В HTML5 это разрешено, но бессмысленно. – Kornel 9 June 2010 в 19:43

Я думаю, лучший ответ - включить закрывающие теги для чтения или обнаружения ошибок. Однако, если у вас есть много сгенерированных HTML (скажем, таблиц данных), вы можете сэкономить значительную полосу пропускания, опуская необязательные теги.

5
ответ дан Gabe 22 August 2018 в 12:16
поделиться
  • 1
    Любопытно: как это помогает при обнаружении ошибок? – Richard JP Le Guen 9 June 2010 в 19:43
  • 2
    Ричард: Когда у вас есть глубоко вложенные структуры, вам гораздо легче найти ошибки, потому что закрывающие теги дают больше информации о намерениях. – Gabe 9 June 2010 в 20:02
  • 3
    Я думаю, что закрывающие теги дают больше информации о намерениях & quot; является наилучшим кратким ответом на этот вопрос. Спорит о хорошей четкой причине так или иначе. – squarecandy 4 January 2015 в 04:55

Что делает HTML 5?

Ответ на этот вопрос находится в рабочем проекте W3C: http://www.w3.org/TR/ html5 / syntax.html # syntax-tag-omission

И что мне делать?

Это вопрос стиля. Я стараюсь никогда не пропускать концевые теги, потому что это помогает мне быть строгим, а not опустить теги, которые необходимы.

8
ответ дан ghoppe 22 August 2018 в 12:16
поделиться
  • 1
    +1 для ссылки на черновик спецификации HTML 5 и соответствующий раздел. Но html 5 не говорит так или иначе. – Ian Boyd 17 June 2010 в 17:03

Если вы пишете парсер HTML, было бы проще разобрать HTML, который включал бы необязательные закрывающие теги, или HTML, который этого не делает? Я думаю, что добавление необязательных закрывающих тегов будет проще, поскольку мне не нужно было бы делать вывод, где должен быть закрывающий тег.

По этой причине я всегда включаю необязательные закрывающие теги - по теории что моя страница может отображаться быстрее, поскольку я создаю меньше работы для HTML-анализатора браузера.

0
ответ дан Joel Mueller 22 August 2018 в 12:16
поделиться
  • 1
    Я не согласен; понятие корректности в противоположность действительности является концепцией только для XML и становится неактуальным, если у вас есть элементы, теги закрытия которых запрещены . – Richard JP Le Guen 9 June 2010 в 22:42
  • 2
    Я это понимаю, но обработанный элемент DOM имеет как начало, так и конец, даже если ваш HTML-тег не работает. Если вы включаете тег <li> без закрывающего тега, в какой-то момент браузер должен будет решить, где заканчивается элемент, и действовать так, как если бы вы поставили конечный тег в этот момент. Это может быть относительно тривиальное количество логики, но "некоторые" все еще больше, чем «нет». и я не думаю, что необоснованно предполагать, что отказ от дополнительных тегов заканчивается для браузера больше, чем их включение. – Joel Mueller 10 June 2010 в 00:46
  • 3
    Это интересный момент, но я до сих пор не согласен; теги close являются необязательными, поскольку они потребуются и, следовательно, подразумеваются в соответствии с правилами проверки ... поэтому, когда парсер достигает точки, где имеет , как закрывающий тег в соответствии с проверкой, не мог можно утверждать, что задача потребления закрывающего тега (когда присутствует) просто замедлит его? – Richard JP Le Guen 10 June 2010 в 15:14
  • 4
    @Richard - я полагаю, это зависит от фактической реализации в конкретном браузере, но мне сложно переписать идею о том, что явное указание того, где вы хотите, чтобы элемент заканчивался, будет хуже для производительности, чем говорить браузеру, чтобы понять это для вы. – Joel Mueller 10 June 2010 в 17:44
  • 5
    @RichardJPLeGuen Я думаю, все зависит от того, как выглядят правила. Когда вы закрываете </table>, и ваш стек содержит <table><tbody><tr><td>, вы можете просто закрыть все, пока не будете соответствовать <table>. Аналогично для открытия <p> в нециклическом контексте. Но может быть гораздо труднее, я не знаю. – maaartinus 27 May 2014 в 04:55

Если это лишнее, оставьте это.

Если он служит цели (даже, казалось бы, тривиальной цели, такой как умиротворение вашей среды IDE или умиротворение ваших глаз), оставьте ее.

В четко определенной спецификации редко встречаются дополнительные элементы, которые не влияют на поведение. За исключением «комментариев», конечно. Но спецификация HTML меньше спецификации дизайна и больше документа состояния текущих основных реализаций. Поэтому, когда элемент является необязательным в HTML и, похоже, не имеет никакой цели, мы можем догадаться, что необязательный характер - это просто документирование причуды в конкретном браузере.

Глядя на раздел RFC с HTML-5, связанный выше , вы видите, что необязательные теги странно связаны с наличием комментариев! Это должно сказать вам, что авторы не носят дизайнерские шляпы. Вместо этого они играют в игру «документировать причуды» в основных реализациях. Поэтому мы не можем воспринимать спекуляцию слишком серьезно в этом отношении.

Итак, решение таково: не потейте. Переходите к чему-то, что действительно имеет значение. :)

6
ответ дан John 22 August 2018 в 12:16
поделиться

Есть случаи, когда явные теги помогают, но иногда это бесполезный педантизм.

Обратите внимание, что спецификация HTML четко указывает, когда допустимо пропустить теги, поэтому это не всегда ошибка.

Например, вам никогда не понадобится </body></html>. Никто не помнит, чтобы явно <tbody> помещать <tbody> (до такой степени, что XHTML сделал исключения для него).

Вам не нужно </head><body>, если у вас нет DOM-манипуляционных скриптов, которые фактически ищут <head> ( то лучше закрыть его явно, потому что правила для подразумеваемого конца <head> могут вас удивить).

Вложенные списки на самом деле лучше без </li>, потому что тогда сложнее создать errorneous ul > ul дерево.

Действительно:

<ul>
  <li>item
  <ul>
    <li>item
  </ul>
</ul>

Неверно:

<ul>
  <li>item</li>
  <ul>
    <li>item</li>
  </ul>
</ul>

И имейте в виду, что конечные теги подразумеваются, пытаетесь ли вы закрыть все элементы или не. Помещение концевых тегов не будет автоматически делать синтаксический анализ более надежным:

<p>foo <p>bar</p> baz</p>

будет анализироваться как:

<p>foo</p><p>bar</p> baz

Это может помочь только при проверке документов.

57
ответ дан Kornel 22 August 2018 в 12:16
поделиться
  • 1
    Подождите, почему <p>foo <p>bar</p> baz</p> не анализируется как два вложенных p тега? – Eric 9 June 2010 в 19:58
  • 2
    Поскольку элемент <P> не может содержать элементы уровня блока, а <P> - элемент уровня блока. From ( w3.org/TR/REC-html40/struct/text.html#edef-P ) "Элемент P представляет собой абзац. Он не может содержать элементы уровня блока (включая сам P). & Quot; – Ian Boyd 9 June 2010 в 21:25
  • 3
    @IanBoyd Вы имеете в виду, что не можете содержать элементы уровня блока, независимо от правил CSS? – Pacerier 13 July 2012 в 05:19
  • 4
    @Pacerier CSS никак не может влиять на DOM. Сначала DOM анализируется, а затем отображает CSS. Дисплей CSS block - это совершенно другая вещь из содержимого блочного уровня HTML (просто случается, что большинство элементов блочного блока HTML отображаются по умолчанию как блоки CSS). – Kornel 18 July 2012 в 12:23
  • 5
    @ anton1980 Нет, это не то же самое. Четкое указание обработки исключенных необязательных закрывающих тегов и надежная работа во всех совместимых браузерах. OTOH созданный <t> не будет работать как <title>. – Kornel 26 September 2012 в 18:07

Делайте все, что, по вашему мнению, делает код более удобочитаемым и поддерживаемым.

Лично я всегда был бы склонен закрыть <td> и <tr>, но я бы никогда не потрудился с <li>.

-1
ответ дан Matthew Wilson 22 August 2018 в 12:16
поделиться
  • 1
    я надеялся на некоторое руководство по поводу первоначального дизайнерского решения и что они сделали бы x , если бы могли. – Ian Boyd 9 June 2010 в 19:18
  • 2
    В чем разница между <td> и <li>, что заставляет вас не беспокоиться с <li>? Для меня мало различий. – ghoppe 9 June 2010 в 19:26
  • 3
    Там нет технических различий, это чисто субъективно. Я чувствую, что лучше читать HTML лучше, если я закрываю td и tr. Но я никогда не чувствовал нужды с ли. – Matthew Wilson 10 June 2010 в 11:50

В некоторых фигурных скобках, таких как C #, вы можете опустить фигурные фигурные скобки вокруг оператора if, если его две длинные строки. например, ...

, если ([условие]) & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [code]

, но вы не можете этого сделать ...

, если ([условие]) & nbsp; & nbsp; & nbsp; & nbsp; [code] & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; [code]

заявление. это ухудшает удобочитаемость, и ошибки могут быть легко введены, и их трудно найти.

по тем же причинам, я закрываю все теги. теги, подобные тегу img, все еще нужно закрыть, просто не с помощью отдельного закрывающего тега.

1
ответ дан MiguelR 22 August 2018 в 12:16
поделиться
  • 1
    Не могли бы вы привести пример HTML, который так сложно? По моему опыту, дополнительные конечные теги не так обманчивы. – Kornel 9 June 2010 в 19:48
  • 2
    Я помню, что несколько лет назад у меня была проблема с IE7, где я обнаружил первый тег li в отдельной строке из текста, который он содержал, без закрытия li, IE7 рассматривал все патроны как одну большую пулю. помещая тег и текст в одну строку или закрывая тег, устранит проблему. Кажется, я не могу воспроизвести это сейчас, поэтому он, вероятно, также имел какое-то отношение к css в игре. но я бы не стал обвинять вас в том, что вы приняли это как «у меня полностью есть девушка ... в Канаде!» история. – MiguelR 11 June 2010 в 18:01

Причина, по которой я спрашиваю, потому что вы просто знаете, что это необязательно по соображениям совместимости; и они сделали бы их (обязательные | запрещенные), если бы они могли.

Это интересный вывод. Мое прочтение этого состоит в том, что почти каждый раз, когда тег можно надежно определить, тег является необязательным. Дизайн предполагает, что целью было сделать его быстрым и легким в написании.

Что делали HTML 1, 2, 3 в отношении этих, теперь необязательных закрывающих тегов.

DTD для HTML 2 встроен в RFC , который вместе с исходным HTML DTD имеет необязательные начальные и конечные теги по всему месту.

HTML 3 был оставлен (благодаря браузерные войны) и заменен на HTML 3.2 (который был разработан для описания текущего состояния Интернета).

Что делает HTML 5?

HTML 5 с самого начала был ориентирован на «мощение коров»

И что мне делать?

А теперь это субъективно и аргументировано:)

Некоторые люди считают, что явные теги лучше для читаемости и ремонтопригодности благодаря тому, что они находятся перед глазами читателей.

Некоторые люди думают, что предполагаемые теги лучше для читаемости и ремонтопригодности благодаря не загромождению редактора.

12
ответ дан Quentin 22 August 2018 в 12:16
поделиться
  • 1
    +1 я не думал о понятии «надежно вывел». Так что защищает идею о том, что на самом деле не было никакого намерения так или иначе. Я предположил, что спецификация пытается быть максимально совместимой с существующими спецификациями HTML и HTML. – Ian Boyd 9 June 2010 в 19:37
  • 2
    Извини, Дэйв, я дал его аслуму; он нуждается в репутации :) Но у вас есть та же идея, с более связанным и цитируемым контентом. Но хороший ответ. – Ian Boyd 9 June 2010 в 19:54

Лично я поклонник XHTML и, как и ghoppe, «я стараюсь никогда не пропускать теги конца, потому что это помогает мне быть строгим и не пропускать теги, которые необходимы».

, но

Если вы намеренно используете HTML 4.n, нельзя утверждать, что включение их облегчает использование документа, поскольку понятие корректности в отличие от действительности является концепцией XML и вы теряете эту выгоду, когда вы запрещаете определенные теги. Таким образом, единственная проблема становится действительной ... и если она по-прежнему остается без них ... вы могли бы также сохранить полосу пропускания, нет?

2
ответ дан Richard JP Le Guen 22 August 2018 в 12:16
поделиться
18
ответ дан Rory O'Kane 22 August 2018 в 12:16
поделиться

Моя рекомендация заключается в том, что вы опускаете большинство дополнительных тегов закрытия и все дополнительные атрибуты, с которыми вы можете справиться. Многие IDE будут жаловаться, поэтому вам не удастся избежать некоторых из них, но, как правило, лучше для меньшего размера файла и меньше беспорядка. Если у вас есть генераторы кода, определенно опускайте конечные теги, потому что вы можете получить от них хороший размер. Обычно это не имеет значения, так или иначе.

Но когда это имеет значение, тогда действуйте на нем. В недавней моей работе я смог уменьшить размер моего визуализированного HTML с 1,5 МБ до 800 КБ, исключив большую часть генерируемых атрибутов конца и избыточного значения для открытого тега, где текст элемента был таким же, как и стоимость. У меня около 200 тегов. Я мог бы реализовать это совсем по-другому, но это будет больше работы ($$$), поэтому это позволяет мне легко сделать страницу более отзывчивой.

Просто из любопытства я обнаружил, что если я удалю кавычки вокруг атрибутов, которые им не нужны, я мог бы сэкономить 20 КБ, но моей среде IDE (Visual Studio) это не нравится. Я также с удивлением обнаружил, что очень длинный идентификатор, который генерирует ASP.NET, составляет 20% от моего файла.

Идея о том, что мы могли бы получить какую-либо значимую часть HTML строго достоверно, была ошибочной в первом место, так что делайте все, что лучше всего подходит для вас и ваших клиентов. Большинство инструментов, которые я когда-либо видел или использовал, скажут, что они генерируют xhtml, но они действительно не работают на 100%, и в любом случае нет никакой пользы для строгого соблюдения.

4
ответ дан user1777246 22 August 2018 в 12:16
поделиться
  • 1
    Я почти не могу согласиться с отсутствием необязательных конечных тегов, но я считаю довольно плохую идею опускать кавычки по атрибутам. Вы рискуете, что ваш сайт будет ломаться в некоторых браузерах таким образом. Если у вас есть 800kb html-файлов, вы делаете что-то серьезно. – Christoph 26 October 2012 в 21:41
  • 2
    @Christoph: Опускание необязательных концевых тегов (например, </p> или </li>) отлично подходит в соответствии со спецификацией HTML. Если браузер не понимает этого, это проблема с браузером. – Konrad Borowski 21 April 2013 в 19:33
Другие вопросы по тегам:

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