2014-11-07 53 views
3

我添加rtl(从右到左)语言支持我的大css(较少)样式。我正在寻找一种方法,只需在.less文件中添加嵌套规则,就像分辨率可能的那样CSS - 是否有@media查询RTL语言

对于我可以使用的屏幕尺寸(具有@small变量,用于某些分辨率),它非常舒适。

.my-class { 
    width: 100px; 

    @media @small { 
     width : 50px; 
    } 

} 

有一些方法做类似像

@media direction(rtl) { 

    /** my rtl styles goes here **/ 

} 

这将是.LESS文件时非常有用,我可以只添加为RLT语言的一些差异嵌套样式,而无需创建分离风格的东西。

我现在唯一发现的是:dir伪CSS,但它目前仅支持Firefox。 https://developer.mozilla.org/en-US/docs/Web/CSS/:dir

我需要IE9 +支持。

+0

你问关于Sass还是LESS?你不能同时使用两者。 – cimmanon 2014-11-07 00:40:55

+0

我正在使用更少。 – pie6k 2014-11-07 00:41:13

+0

它是'[dir = rtl]'属性选择器。请参阅http://stackoverflow.com/questions/tagged/right-to-left+css – 2014-11-07 02:46:06

回答

4

编号方向性不是媒体的属性,它是文档及其内容的属性。

相反,您可以使用像:dir(rtl)这样的伪类,它可以匹配任何直接或间接通过继承设置的从右向左定向的元素。不幸的是,现在大多数用途的浏览器支持太有限了(只有Firefox和Chrome,而后者需要供应商前缀)。

您也可以使用属性选择器,如[dir=rtl],但它仅匹配那些在其上显式设置了dir属性的元素,而不仅仅是因为它们从父项继承它而具有右向左方向的元素。但是您可以将其与其他选择器结合使用。

举个简单的例子,假设你有dir属性不同的页面上仅设置body(或html)元素,不同的,和你想使用的所有网页相同的样式表,但做一些不同的事情在不同的页面上。然后你可以使用例如

[dir=rtl] h1 { ... } 

在从右到左的页面上设置h1的一些规则。