我注意到如果我想更改元素的方向顺序,我应该使用dir属性(例如<div dir="ltr"></div>
)。
我很惊讶HTML5确认了这种方法,并没有用CSS3取代它,因为据我所知,HTML5 / CSS3的方法是将元素放在HTML文件上并用CSS设置它们的样式。这就是为什么不推荐使用align
,width
和height
等属性(img标记用于优化且仅在px中)。此外,删除样式标记(例如<font>
)可确认此方法。
我想知道为什么dir
属性仍在HTML中而不在CSS中?有什么理由吗?
答案 0 :(得分:4)
元素的方向是副作用。该属性描述了语言的编写方向。例如,英语是从左到右的语言,而希伯来语是从右到左的语言。因此它是一个语义属性。
答案 1 :(得分:2)
如果HTML5中的某个属性没有被弃用,那就是它的原因,这种情况也不例外。首先,值得指出的是有一个CSS direction
属性,所以它确实存在。但实际上更好使用该属性,原因如下:
(以下引文均来自w3)
dir
属性用于设置要显示的文本的基本方向。从右到左脚本启用HTML至关重要。
仅当您需要更改该块中内容的基本方向时,才在块元素上使用dir属性。不要使用CSS。
您应该始终使用专用的bidi标记来描述您的内容,标记可用。然后可能需要也可能不需要CSS来描述该标记的含义。
更具体地说:
...方向性是文档结构的一个组成部分[所以]应该使用标记.... CSS应用的样式不是永久性的。它可能会被关闭,被覆盖,无法识别,或在不同的上下文中被更改/替换。虽然双向标记仅用于文本的视觉渲染,但它在功能上并不是纯粹的装饰......
基本上说它得到了更好的认可,您将在浏览器中获得更持久的结果。
就个人而言,如果您纯粹将它用于样式化内容(这是CSS的设计目的),那么我就不会使用该属性。主要是因为您可能会使用另一个限制您网站兼容性的属性,并且大多数人将其用于样式目的而不是语言支持和诸如此类的东西。我认为这是一个可访问性功能,因为不是每个人都需要它,但是对那些人来说它是有益的。
值得指出的是,还有第三种方法可以使用配对的Unicode bidi格式化代码字符。但是最好避免这种情况,因为它可能变得不切实际,w3 recognise this:
当在自由流动的内容中使用控制字符时,总是存在重叠或未终止范围的可能性
使用标记管理继承和段落分隔符的效果也更容易。
HTML 4规范明确警告不要混淆这两种方法,因为嵌套不当的可能性增加。
我说谎,它不是官方的辅助功能,但我认为它是一个。虽然以下是真的:
既不应使用标记也不应使用CSS
unless they are needed
。
HTML5添加了new feature:
HTML5为dir属性提供了一个新值:auto。 auto值告诉浏览器查看元素中第一个强类型字符。如果它是从右到左打字的字符,例如希伯来语或阿拉伯字母,则该元素将获得rtl的方向。如果它是拉丁字符,那么方向将是ltr。
基本上意味着HTML5会自动选择最佳选项。因此,它选择适合用户正在阅读的语言的相应值。请记住,大多数浏览器都提供翻译服务。根据我的定义,这使得可访问性功能成为可能。
答案 2 :(得分:0)
我找到了完整的答案here
因为方向性是文档结构的组成部分, 标记应该用于设置文档的方向性 大块的信息,或识别文本中的地方 单独使用Unicode双向算法是不够的 期望的方向性。
为了产生所需的从右到左或双向效果,一些 人们只是将CSS应用于任何一般段落或内联 元素围绕着相关的文字。但是,CSS应用的样式 不是永久性的。它可能会被关闭,被覆盖,去 无法识别,或在不同的环境中更改/替换。标记 也可能找到进入CSS不可用的地方,例如。 通过共享数据库或引用的片段。
虽然只有视觉呈现文本才需要bidi标记 它在功能上不是纯粹的装饰。
标记仍然与文档内容集成在一个持久性中 时尚。如果您使用,它还可以使内容更加清晰 专用的bidi标记。因此,您应该使用专用的bidi标记 只要它可用。不要简单地将CSS样式附加到 实现效果的一般要素。
这就是HTML5中存在dir
属性和css的原因。