That's a pretty tall order. Consider this simple example:
<style>
p .foo {
color: yellow;
}
span > *[href] {
color: red;
}
img + .foo {
color: green;
}
span #bar {
color: blue;
}
.baz #bar {
color: black;
}
</style>
<p class="baz">Lorem ipsum <span>dolor sit
<img src="x.png"><a id="bar" class="foo" href="#top">amet</a>,</span>
consectetur adipiscing elit.
</p>
What color is the link? Each of the 5 styles applies directly to the link element. Even when you only consider CSS2.1, you still have 3 styles to process.
As Gumbo says, without a full CSS parser and interpreter, this cannot be solved. I haven't seen one written in PHP yet, although it should be theoretically possible to write one.
(There are classes for CSS parsing, yes - see the answers to this question, but those would only tell you "for this file, you have these CSS declarations". The interpreter is the hardest part, and I'm not aware of a PHP one)
Your best bet would be rendering the page in some webpage rendering engine (e.g. Gecko or Webkit) and querying the CSS properties. That, unfortunately, is far beyond the scope of a simple PHP class.