prestashop/rtlcss-php

该软件包已废弃,不再维护。未建议替代软件包。

将CSS转换为从右到左

v2.0.0 2017-12-28 14:27 UTC

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的启发,尽管在这个阶段它还没有包括所有功能。请把这个库看作是后者的部分移植。

致谢

许可证

根据MIT许可证许可。