Html <;a>;内部<;p>—;它';在文本案例中有什么好的做法?

Html <;a>;内部<;p>—;它';在文本案例中有什么好的做法?,html,Html,(✘)我认为这是错误的: <ul> <li>Hello!</li> </ul> 你好! (✔)这是正确的: <ul> <li><p>Hello!</p></li> </ul> 你好! 但我不知道这是否: <ul> <li><p><a href="#">Hello!</a><

(✘)我认为这是错误的:

<ul>
    <li>Hello!</li>
</ul>
  • 你好!
(✔)这是正确的:

<ul>
    <li><p>Hello!</p></li>
</ul>
  • 你好!

但我不知道这是否:

<ul>
    <li><p><a href="#">Hello!</a></p></li>
</ul>
比这更正确:

<ul>
    <li><a href="#">Hello!</a></li>
</ul>
我的哲学 当我处理
之外的文本时,我感觉不到一致性。我认为HTML是三种文本类型之父:标题段落提示。对我来说,这种模式之外的所有文本都是错误的

我现在就在这里想知道它是否真的错了。是吗

太国外了? 对不起,我不知道还有比这更好的地方可以问这样的问题

从技术上讲。。。
是的,我知道从技术上讲,这两种方法都是可行的。

不,你不能在
a
标记内启动
p
标记,然后在
a
标记外关闭它。如果你想问它是否合法,那么它是合法的

但是,在段落中包含超链接是一种更好的做法。如果您在段落中有链接,则没有问题

(不包括html5)但是你不能在超链接中开始整个段落,你可以使用div

<ul>
    <li>Hello!</li>
</ul>
不同于

<ul>
    <li><a href="#">Hello!</a></li>
</ul>
如何操作?因为
p
将在内容中添加边距和填充。
p
也有一些默认属性。

所有HTML版本: 您不能将
放入另一个

除HTML5外的所有HTML版本: 不允许将
放入

(✘) 我认为这是错误的:

<ul>
    <li>Hello!</li>
</ul>
  • 你好!
不,完全正确

(✔) 这是正确的:

<ul>
    <li><p>Hello!</p></li>
</ul>
  • 你好!

是的,这也是正确的

唯一的区别是,在第一个例子中,你没有表示文本是一个段落,而仅仅是一个列表项;而在第二个例子中,你表明它是列表项内部的一段文本。在这种情况下,我倾向于选择前者(但这纯粹是一个品味和语义问题),因为我不相信任何一个单词都能单独构成一整段文字

但我不知道这是否:

<ul>
    <li><p><a href="#">Hello!</a></p></li>
</ul>
比这更正确:

<ul>
    <li><a href="#">Hello!</a></li>
</ul>
这没有任何区别


你似乎有一种强迫感,想把HTML元素中的每一个文本字符串都包装起来,以表示它的…文本性,这是不必要的;当然,只有当文本实际上是一个段落时,才需要将文本包装在
p
中。

我不知道你想问什么。“我能把
放在
里面吗总是
”?这是什么意思?你说的“这是一个简单的文本”是什么意思"?可能值得花点时间让其他人,更习惯英语的人,校对你的问题,或者,也许,重新措辞你的问题。请稍等。我会更新主题。看看你的DTD,它告诉你是否允许。你在问题中发布的每一个HTML示例都是完全有效的,并且是语义上的HTML。我不能批评你的答案(因为我不理解这个问题),但我能问一下你认为这个问题是什么吗?@DavidThomas我想我也不明白。这个问题真的很让人困惑。@Guilherme如果你只想添加一个
,你可以这样做,你不需要把它包装在
p
标签中。@N1K你知道我的问题,但我需要知道是否有“更好的实践”显示锚。在包装锚方面没有更好的做法,因为锚具有
display
inline
。它只占用
a
标记之间的空间。如果它没有文本内容(或图像),它将不会占用任何空间,这是一种不好的做法。如果你想要它(例如)一整行,你可以设置他的
显示
css规则为
,并根据你的需要对齐内容。正如我在回答中提到的,唯一的区别是p的填充和边距的默认值。没有其他的。.完美的答案!这正是我想要的!是的,我认为我有一个类似com的东西pulsion(描述我内心感受的完美术语!).无论如何,你和@AfzaalAhmadZeeshan回答了我的问题。如果我不需要填充/空白,我可以将
切换到
吗?这是一种正确的思考方式?那会好的!但是,你可以从
p
切换到
div
,因为
div
更接近
p
,因为div将开始一个新的段落,但跨越一段只是内联..同时,您也可以尝试以下操作:
p{margin:0;padding:0}
这将删除边距和填充。。
<ul>
    <li><p><a href="#">Hello!</a></p></li>
</ul>
<ul>
    <li><a href="#">Hello!</a></li>
</ul>