2016-03-13 16 views
5

Sto cercando una libreria PHP (script) che sia in grado di combinare selettori CSS con le stesse proprietà. Ecco cosa intendo:Combina selettori CSS con le stesse proprietà, php

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

dopo l'elaborazione del CSS sopra il risultato dovrebbe essere:

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

Ogni aiuto è apprezzato.

+0

c'è una buona php parser https://github.com/sabberworm/PHP-CSS-Parser .con qualche ricerca si potrebbe essere in grado di farlo. –

+0

ha proprietà .qualcosa sempre uguali a .myclass o possono essere diverse, se possono essere diverse da quale si dovrebbe sovrascrivere? –

+0

è il tuo CSS in un file separato? –

risposta

7

Una libreria PHP bello fare questo è il codice https://github.com/Cerdic/CSSTidy

Esempio:

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

Uscita:

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

Grazie. Il codice che hai fornito non ha funzionato, ma ho modificato la tua risposta e ora funziona come previsto. Una volta che la mia modifica verrà approvata, accetterò la risposta e applicherò i punti Rep di Bounty. Saluti. –

+0

Salve, purtroppo le tue modifiche sono state respinte da tre revisori diversi (questa modifica si discosta dall'intenzione originale del post. Persino le modifiche che devono apportare modifiche drastiche dovrebbero sforzarsi di preservare gli obiettivi del proprietario del post.), E sono d'accordo con ragioni di rifiuto.Qual è il principale cambiamento che ha reso il codice funzionante? '2' invece di' TRUE' come parametro in 'set_cfg'? In modo che io possa modificare correttamente la mia risposta. –

+0

Ho appena migliorato il commento. Perché dovrebbero rifiutarlo? Quello era corretto e simile al tuo. Ad ogni modo, sostituisci questa riga '$ css-> set_cfg ('merge_selectors', 2);' (invece di 'remove_last_;'). –

Problemi correlati