Is it good practice?
It's not good practice to manually exclude semicolons. This is purely because it's easy to overlook when adding more styles, especially if you're working in a team:
Imagine you start with:
.foo {
background-color: #F00;
color: #000 <-- missing semi-colon
}
And then someone adds some styles:
.foo {
background-color: #F00;
color: #000 <-- missing semi-colon
width: 30px;
z-index: 100;
}
Suddenly the other developer is wasting time figuring out why their width
declaration isn't working (or worse yet, doesn't notice that it's not working). It's safer to leave the semi-colons in.
Will it, on a large scale, result in better load times?
Most definitely, for every block, you'd save a couple of bytes. These add up, especially for large style sheets. Instead of worrying about these performance gains yourself, it's better to use a CSS compressor, such as the YUI Compressor to automatically remove the ending semi-colons for you.
Can it result in browsers 'breaking'?
No, it's safe, as browsers implement this part of the specification correctly. The CSS2 specification defines a declaration thusly:
A declaration is either empty or consists of a property name, followed by a colon (:), followed by a property value.
More importantly:
...multiple declarations for the same selector may be organized into semicolon (;) separated groups.
This means that ;
is used to separate multiple declarations, but it is not needed to terminate them.
Is the same true for the last function in JavaScript?
JavaScript is a whole different beast with a completely different specification. This particular question has been answered in depth many times before on Stack Overflow.