html中有vr(垂直规则)吗?

Xai*_*oft 128 html

我知道html中有一个hr(水平规则),但我不相信有一个vr(垂直规则).我错了,如果没有,为什么不存在纵向规则?

And*_*ird 152

不,没有纵向规则.

拥有一个没有逻辑意义.HTML是按顺序解析的,这意味着您可以从上到下,从左到右的方式布局HTML代码,从左到右,从左到右(通常)

vr标签不遵循该范例.

但是,这很容易使用CSS.例如:

<div style="border-left:1px solid #000;height:500px"></div>
Run Code Online (Sandbox Code Playgroud)

请注意,您需要指定高度或使用内容填充容器.

  • ERF.我试图说,如果事情已经可以垂直分离,那么如何添加vr不遵循HTML范式? (18认同)
  • 这不是表格被添加到HTML规范的原因.表用于显示列表数据.几乎任何HTML元素都可用于垂直分隔项目(您设置为显示的任何内容:块和浮动:左侧任何高度设置) (6认同)
  • 表可以垂直分隔项目,因此您所说的并不是没有vr标记的真正原因. (4认同)
  • @CiscoIPPhone - 垂直分离需要水平规则.横向分离需要垂直规则.我认为,Ergo,Andy Baird是正确的. (4认同)
  • 如果您要分头讨论 HTML 的解析方式,您可能需要考虑 HTML 是一维的;它从头读到尾。换句话说,编辑 HTML 唯一需要知道的是字符的顺序。如果逻辑意义上规定浏览器应该根据代码读取的方向来布局网页,那么网页看起来像一个可滚动的股票行情。幸运的是,大多数浏览器不会这样做。就范式而言,我不认为 HTML 已经有两三年来一致的范式了。 (3认同)
  • 我不能同意它不遵循范式。如您所说,它是按顺序从上到下,从左到右解析的。您可以使用垂直规则从左到右划分内容。在HTML的早期,我同意这在逻辑上是没有道理的。现在,即使没有语义上正确的标记,垂直规则也是html中经常使用的东西。只是我的两分钱。 (2认同)

小智 35

您可以制作这样的垂直规则: <hr style="width: 1px; height: 20px; display: inline-block;">


meg*_*lop 16

正如其他人所指出的,垂直规则的概念不符合HTML文档结构和表示背后的原始思想.然而,现在(特别是随着web-apps的激增),有一些场景确实很有用.

例如,考虑固定在屏幕顶部的水平导航菜单,类似于大多数窗口GUI应用程序中的菜单栏.您有几个从左到右排列的顶级菜单项,当点击打开下拉菜单时.多年前,通常的做法是使用单行表创建它,但这是糟糕的HTML,并且人们普遍认为正确的方法是使用大量自定义CSS的列表.

现在,假设您要对类似的项目进行分组,但在组之间添加一个垂直分隔符,以实现以下目的:

[Item 1a] [Item 1b] | [Item 2a] [Item 2b]
Run Code Online (Sandbox Code Playgroud)

使用<hr style="width: 1px; height: 100%; ..." />作品,但在更改该元素实际用途时可能会在语义上被认为是错误的.此外,您不能在HTML DTD仅允许内联级元素(例如元素内)的某些元素中使用它<span>.

一个更好的选择是<span style="display: inline-block; width:1px; height:100%; background:#000; margin: 0 2px;"></span>,但并非所有浏览器都支持display: inline-block;CSS属性,因此唯一真正的内联级选项是使用如下图像:

<img src="pixel.gif" alt="|" style="width:1px; height:100%; background:#000; margin: 0 2px;" />

这具有与仅文本浏览器(如lynx)兼容的附加优点,因为显示管道字符而不是图像.(令我很生气的是M $ IE错误地使用alt文本作为工具提示;这就是title属性的用途!)


小智 8

<style type="text/css">
.vr
{
  display:inline;
  height:100%;
  width:1px;
  border:1px inset;
  margin:5px
}
</style>

<div style="font-size:50px">Vertical Rule: &rarr;<div class="vr"></div>&larr;</div>
Run Code Online (Sandbox Code Playgroud)

试试看.


小智 7

怎么样:

writing-mode:tb-rl
Run Code Online (Sandbox Code Playgroud)

top-> bottom,right-> left?

我们需要垂直规则.


Nix*_*ova 5

display:flex内的<hr>将使其垂直显示。

JSFiddle:https://jsfiddle.net/w6y5t1kL/

例:

<div style="display:flex;">
  <div>
    Content
    <ul>
      <li>Continued content...</li>
    </ul>
  </div>
  <hr>
  <div>
    Content
    <ul>
      <li>Continued content...</li>
    </ul>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)