2016-03-13 4 views
5

Я ищу PHP-библиотеку (скрипт), которая сможет комбинировать селектор CSS с теми же свойствами. Вот что я имею в виду:Комбинируйте селектор css с теми же свойствами, php

.myclass{ 
    font-size: 14px; 
    color: red; 
} 
.something{ 
    font-size: 14px; 
    color: red; 
} 

После обработки CSS выше результат должен быть:

.myclass, .something{ 
    font-size: 14px; 
    color: red; 
} 

Любая помощь приветствуется.

+0

есть хороший PHP парсер https://github.com/sabberworm/PHP-CSS-Parser .с некоторые исследования, вы могли бы быть в состоянии сделать это. –

+0

does.something свойства всегда равны .myclass или они могут быть разными, если они могут быть разными, которые следует переопределить? –

+0

- это ваш CSS в отдельном файле? –

ответ

7

Хорошая библиотека PHP, чтобы сделать это https://github.com/Cerdic/CSSTidy

Пример кода:

<?php 
include('class.csstidy.php'); 

$css_code = ' 
.myclass{ 
    font-size: 14px; 
    color: red; 
} 
.something{ 
    font-size: 14px; 
    color: red; 
} 
'; 

$css = new csstidy(); 

$css->$css->set_cfg('merge_selectors', 2); 

$css->parse($css_code); 

echo $css->print->formatted(); 
?> 

Выходной:

.myclass,.something { 
    font-size:14px; color:red 
} 
+0

Спасибо. Код, который вы предоставили, не трюк, но я отредактировал ваш ответ, и теперь он работает так, как ожидалось. Как только мое редактирование будет одобрено, я приму ответ и применим к вам пункты повторения награды. Приветствия. –

+0

Привет, к сожалению, ваши изменения были отклонены тремя разными рецензентами (это изменение отклоняется от первоначального намерения публикации. Даже изменения, которые должны внести кардинальные изменения, должны стремиться сохранить цели владельца сообщения.), И я согласен с причины отказа.Каково основное изменение, которое заставило работать код? '2' вместо' TRUE' в качестве параметра в 'set_cfg'? Чтобы я мог правильно отредактировать свой ответ. –

+0

Я только что улучшил комментарий. Почему они отвергают это? Это было правильно и похоже на твое. В любом случае замените эту строку '$ css-> set_cfg ('merge_selectors', 2);' (вместо 'remove_last_;'). –