One of features of HTML_CSS that was still missing to version less or equal
than 1.0.1 is ability to detect if a selector (or group of selectors), and/or
a property (or group of properties) was already defined.
This is now possible with method :
HTML_CSS::grepStyle()
Let creates these definitions into progress2.css file :
#PB1.cellPB1I, #PB1.cellPB1A {
width: 15px;
height: 20px;
font-family: Courier, Verdana;
font-size: 8px;
float: left;
}
#PB1.progressBorderPB1 {
width: 172px;
height: 24px;
border-width: 1px;
border-style: solid;
border-color: #404040 #dfdfdf #dfdfdf #404040;
background-color: #CCCCCC;
}
.progressPercentLabelpct1PB1 {
width: 50px;
text-align: right;
background-color: transparent;
font-size: 11px;
font-family: Verdana, Tahoma, Arial;
font-weight: normal;
color: #000000;
}
.progressTextLabeltxt1PB1 {
text-align: left;
background-color: transparent;
font-size: 11px;
font-family: Verdana, Tahoma, Arial;
font-weight: normal;
color: #000000;
}
.cellPB1I {
background-color: #CCCCCC;
}
.cellPB1A {
background-color: #0033FF;
}
body {
background-color: #E0E0E0;
color: #000000;
font-family: Verdana, Arial;
}
Very easy with such script to find where is declared #PB1
class selectors (names like).
<?php
require_once 'HTML/CSS.php';
$css = new HTML_CSS();
$css->parseFile('progress2.css');
// find all selectors beginning with #PB1
$styles = $css->grepStyle('/^#PB1/');
echo '<pre>'; var_dump($styles); echo '</pre>';
?>
We still used the CSS definitions of previous example,
identified by progress2.css file :
Very easy with such script to find where is declared color
property.
<?php
require_once 'HTML/CSS.php';
$css = new HTML_CSS();
$css->parseFile('progress2.css');
// find all selectors that set the color property
$styles = $css->grepStyle('/./', '/^color$/');
echo '<pre>'; var_dump($styles); echo '</pre>';
?>