prestashop / rtlcss-php
该软件包已废弃,不再维护。未建议替代软件包。
将CSS转换为从右到左
v2.0.0
2017-12-28 14:27 UTC
Requires
- php: >=5.4
- prestashop/php-css-parser: ^8.2
Requires (Dev)
This package is auto-updated.
Last update: 2020-08-26 18:46:50 UTC
README
RtlCss是一个库,用于将左到右(LTR)的层叠样式表(CSS)转换为右到左(RTL)。
使用方法
使用composer安装
将库添加到您的composer.json文件中
{ "require": { "prestashop/rtlcss-php": "*" } }
翻转
$parser = new Sabberworm\CSS\Parser($css); $tree = $parser->parse() $rtlcss = new PrestaShop\RtlCss\RtlCss($tree); $rtlcss->flip(); echo $tree->render();
对于解析选项和渲染,请参考PrestaShop/PHP-CSS-Parser。
输出示例
.div { direction: ltr; left: 10px; border: 10px 5px 0px 2px; float: left; }
变为
.div { direction: rtl; right: 10px; border: 10px 2px 0px 5px; float: right; }
选项
您可以在CSS前加上以/*rtl:*/
开始的注释进行特殊处理。
不翻转值
在/*rtl:ignore*/
前加前缀,或者用/*rtl:begin:ignore*/
和/*rtl:end:ignore*/
括起来。
.div { /*rtl:ignore*/ float: left; left: 10px; } .div { direction: ltr; /*rtl:begin:ignore*/ float: left; left: 10px; /*rtl:end:ignore*/ }
变为
.div { float: left; right: 10px; } .div { direction: rtl; float: left; left: 10px; }
删除CSS
在/*rtl:remove*/
前加前缀,或者用/*rtl:begin:remove*/
和/*rtl:end:remove*/
括起来。
.div { /*rtl:remove*/ float: left; left: 10px; } .div { direction: ltr; /*rtl:begin:remove*/ float: left; left: 10px; /*rtl:end:remove*/ }
变为
.div { right: 10px; } .div { direction: rtl; }
附加CSS
在以/*rtl:raw:
开始的文本中写入CSS。
.div { /*rtl:raw: text-align: left; */ float: left; }
变为
.div { text-align: left; float: right; }
限制
目前,注释必须始终位于语句之前,如果没有跟任何内容,它们将不起作用。
有效
.div { /*rtl:raw: text-align: left; */ float: left; }
无效
.div { float: left; /*rtl:raw: text-align: left; */ }
CSS支持
许多常见的CSS规则都受支持,但是一些复杂的规则不受支持。要了解受支持的内容和不支持的内容,请参考测试用例。不支持的情况被标记为跳过。
关于这个工具
这个工具非常受MohammadYounes/rtlcss的启发,尽管在这个阶段它还没有包括所有功能。请把这个库看作是后者的部分移植。
致谢
- moodlehq/rtlcss-php 原始工作
- MohammadYounes/rtlcss 是我们遵循的例子。
- cssjanus/php-cssjanus 提供了额外的测试用例。
- Sabberworm/PHP-CSS-Parser 在PHP中解析CSS。
许可证
根据MIT许可证许可。