2014-11-07 62 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的一些規則。