Both of these things are used to hide some parts of elements and show other parts. But there are, of course, differences between the two. Differences in what they can do, differences in syntaxes, different technologies involved, the new and the deprecated, and browser support differences.
And sadly there is quite a bit of outdated information out there. Let's see if we can sort it out.