2016-03-13 25 views
5

Poszukuję biblioteki PHP (skryptu), która będzie w stanie łączyć selektory CSS z tymi samymi właściwościami. Oto co mam na myśli:Połącz selektory css o tych samych właściwościach, php

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

Po przetworzeniu CSS powyżej wynik powinien być:

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

Każda pomoc jest mile widziana.

+0

jest dobry php parser https://github.com/sabberworm/PHP-CSS-Parser .Z niektórych badań można być w stanie to zrobić. –

+0

ma .something właściwości zawsze równe .myclass lub mogą być różne, jeśli mogą być różne, które należy zastąpić? –

+0

jest twoim CSS w osobnym pliku? –

Odpowiedz

7

Miła php biblioteki to zrobić https://github.com/Cerdic/CSSTidy

Przykładowy kod:

<?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(); 
?> 

Wyjście:

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

Dziękuję. Podany kod nie wystarczył, ale zredagowałem twoją odpowiedź i teraz działa zgodnie z oczekiwaniami. Gdy moja edycja zostanie zatwierdzona, przyjmuję odpowiedź i zastosuję dla ciebie punkty repliki nagród. Twoje zdrowie. –

+0

Witaj, niestety Twoje zmiany zostały odrzucone przez trzech różnych recenzentów (ta zmiana odbiega od pierwotnej intencji tego posta. Nawet zmiany, które muszą wprowadzić drastyczne zmiany, powinny dążyć do zachowania celów właściciela posta.) I zgadzam się z powody odrzucenia.Jaka jest główna zmiana, która spowodowała, że ​​kod działa? '2' zamiast' TRUE' jako parametr w 'set_cfg'? Tak, abym mógł poprawnie edytować moją odpowiedź. –

+0

Właśnie poprawiłem komentarz. Dlaczego mieliby go odrzucić? Ten był poprawny i podobny do twojego. W każdym razie, zamień ten wiersz '$ css-> set_cfg ('merge_selectors', 2);' (zamiast 'remove_last_;'). –