方向的导航栏
2011年4月25日9:12分由亨利Koblentz |在CSS的101个 , 发展 | 3条评论我最近碰到一个水平右对齐链接导航菜单。 正如您所期望的,它是一个元素的名单float:right和列表项的float:left 。 即使有什么方法不对的,它启发了我借此机会讨论方向性的布局。
要素成本的浮动
花车没有方向性的概念,他们不喜欢内联元素或工作表列(该dir属性是一个神奇的子弹)。 随着彩车,作家必须实现一个机制,以“交换”的价值观时的界面的变化( ltr对比rtl )。
因此,而不是使用float ,作者可能有利于inline-block 。 下面是一个简单的例子:
ul { text-align: end; text-align: right\9; *text-align: right; } li { display: inline; } a { display: inline-block; padding: 5px 15px; margin: 0 5px; } 请注意,使用“ \ 0 “(无空格),而不是” \9 “将采取戏曲照顾,但不得作为证据作为未来的” \9 “(即只)。
由于这个演示页显示,在Chrome,Safari和Firefox中, inline-block技术使得布局写作模式依赖(流方向的匹配值的dir属性,或者在没有方向的初始值,如果指定)。 对于其他UA的孩子,因为IE的缺乏支持属性选择器(即html[dir="rtl"] ),作者需要添加一个标记,以应付在钩的方向改变。 例如,对于全面A级兼容性:
- 对于浮动的技术:
.rtl ul { float: left; } .rtl ul li { float: right; }- 对于inline - block的技术:
.rtl ul { text-align: left\9; /* IE8/9 */ *text-align: left; /* IE5/6/7 */ }
text-align: start | end
不像left和right , start和end正在编写模式依赖于关键字。 在英语中, start映射到left ,并end映射到right 。 依托start和end ,而不是left与right允许一些浏览器做交换( ltr / rtl ) 自动 。
浏览器之间的差异和技术
- 在浏览器不支持“
start/end“(即歌剧) - 浮法技术:交换的方向不会改变任何东西
- inline - block的技术:交换的方向不会改变菜单的排列,但链接是正确的顺序显示
- 在浏览器都支持“
start/end“(浏览器,Safari浏览器,火狐) - 浮法技术:交换的方向不会改变任何东西
- inline - block的技术:交换的方向,就足以交换双方的菜单和链接方向
就是这样! 下次你要的样式元素水平,记得给display:inline-block或display:table一试。



亨利,
这种说法是不正确部分:
请参阅此测试系列花车和双向这项测试显示浮动菜单中的'劳动教养'方向。 目前,歌剧和WebKit处理溢出'劳动教养'错误的方向布局。
我要说的是你的方法(破解CSS)的编码,使喜欢IE7的,快乐的。 这不利于人们谁读,写脚本(即希伯来文或阿拉伯文),有'劳动教养'的方向以百万计100秒。 在IE7 -,Web开发人员不得不让IE7的破解大大,表现在'劳动教养'方向。 一个常见的事,看看方向'的'劳动教养与此类网页的CSS是使用
text-align: right和text-align: right实现的文本正确的位置。 我会指出,IE是不是唯一的浏览器在处理'劳动教养'方向不佳。现在,这也许给你一个惊喜,但IE8的支持RTL的方向正确。 唯一的浏览器,这样做是正确的,是前IE8的壁虎。 我建议你同时浮动UL和李权利,而不是黑客或IE9的IE8的文章,因为这非常双向增加了关于整个误传。
我对写作模式和方向上的一些规范的影响。 这是关于逻辑性质 , 浮动和RTL溢出和溢出和比迪 。
评论由阿兰格雷斯利 - 2011年4月26日#
@艾伦
你是我的困惑。 你提到在你的页面“浮动:权利或浮动:RTL的开始”,但据我所知,没有这样的东西只列出“启动”,在规范[1]其中
left,right,none和inherit。看来这就是你在你的测试用例使用。 即“看得见的溢出和包含块劳动教养”即使我认为
text-align:right在那里是多余的,text-align:start会更合适呢。另外,请注意,在本文中我“证明”使用
text-align: start|end。right|left值只回用作下降。其实,你可能已经错过了这个文章,是要避免在不同风格的东西根据上下文整点。 您的演示页面,显示在RTL和LTR上下文交换下拉菜单float值和左/右特性,这是什么新鲜事:-(
感谢您的反馈!
[1] http://www.w3.org/TR/CSS21/visuren.html#浮位置
评论由亨利Koblentz - 2011年4月26日#
哦乐趣。 测试。
浮动和双向
评论由阿兰格雷斯利 - 2011年4月26日#