方向的导航栏

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

不像leftrightstartend正在编写模式依赖于关键字。 在英语中, start映射到left ,并end映射到right 依托startend ,而不是leftright允许一些浏览器做交换( ltr / rtl自动

浏览器之间的差异和技术

在浏览器不支持“ start / end “(即歌剧)
浮法技术:交换的方向不会改变任何东西
inline - block的技术:交换的方向不会改变菜单的排列​​,但链接是正确的顺序显示
在浏览器都支持“ start / end “(浏览器,Safari浏览器,火狐)
浮法技术:交换的方向不会改变任何东西
inline - block的技术:交换的方向,就足以交换双方的菜单和链接方向

就是这样! 下次你要的样式元素水平,记得给display:inline-blockdisplay:table一试。

蒂埃里Koblentz 关于作者:亨利Koblentz是一个工程师在雅虎年底前他拥有TJK设计的EZ - css.orgCSS的101.org 您可以按照亨利在Twitter @ thierrykoblentz

共享和扩展: 书签和书签 | Digg它! | reddit!

3评论»

发表评论的RSS饲料这一点。 引用地址

  1. 亨利,

    这种说法是不正确部分:

    花车没有方向性的概念

    请参阅此测试系列花车和双向这项测试显示浮动菜单中的'劳动教养'方向。 目前,歌剧和WebKit处理溢出'劳动教养'错误的方向布局。

    我要说的是你的方法(破解CSS)的编码,使喜欢IE7的,快乐的。 这不利于人们谁读,写脚本(即希伯来文或阿拉伯文),有'劳动教养'的方向以百万计100秒。 在IE7 -,Web开发人员不得不让IE7的破解大大,表现在'劳动教养'方向。 一个常见的事,看看方向'的'劳动教养与此类网页的CSS是使用text-align: righttext-align: right实现的文本正确的位置。 我会指出,IE是不是唯一的浏览器在处理'劳动教养'方向不佳。

    现在,这也许给你一个惊喜,但IE8的支持RTL的方向正确。 唯一的浏览器,这样做是正确的,是前IE8的壁虎。 我建议你​​同时浮动UL和李权利,而不是黑客或IE9的IE8的文章,因为这非常双向增加了关于整个误传。

    我对写作模式和方向上的一些规范的影响。 这是关于逻辑性质浮动和RTL溢出溢出和比迪

    评论由阿兰格雷斯利 - 2011年4月26日

  2. @艾伦

    你是我的困惑。 你提到在你的页面“浮动:权利或浮动:RTL的开始”,但据我所知,没有这样的东西只列出“启动”,在规范[1]其中leftrightnoneinherit

    一个常见的事,看看方向'的'劳动教养与此类网页的CSS是使用text-align: righttext-align: right实现的文本正确的位置。

    看来这就是你在你的测试用例使用。 即“看得见的溢出和包含块劳动教养”即使我认为text-align:right在那里是多余的, text-align:start会更合适呢。

    另外,请注意,在本文中我“证明”使用text-align: start|endright|left值只回用作下降。

    其实,你可能已经错过了这个文章,是要避免在不同风格的东西根据上下文整点。 您的演示页面,显示在RTL和LTR上下文交换下拉菜单float值和左/右特性,这是什么新鲜事:-(

    感谢您的反馈!

    [1] http://www.w3.org/TR/CSS21/visuren.html#浮位置

    评论由亨利Koblentz - 2011年4月26日

  3. 哦乐趣。 测试。

    浮动和双向

    评论由阿兰格雷斯利 - 2011年4月26日

发表评论

注意:评论是计时器主持为首次。 垃圾邮件删除。

的XHTML:的<a href="" title="">的<abbr title="">的<acronym title="">的的<b> <blockquote cite=""> <cite>的<code> <del datetime=""> <em>的<i> <q cite=""> <strike>的<strong>

主办单位雅虎

版权所有© 2006至11年雅虎公司保留所有权利。 隐私权政策 - 服务条款

本站由WordPress的关于雅虎 虚拟主机