element.style はインラインスタイル,つまり HTML で言うところの style 属性を表現します[*]。style 属性がなければ空なのは当然です。
var element = document.getElementById ('contents');
// DOM Level 2: View, CSS
var cs = document.defaultView.getComputedStyle (element, null);
alert ( cs.getPropertyValue ('border-width') );
// MSIE
alert ( element.currentStyle.borderWidth );
ただし,これは内部計算値なので,「書いたまま」の値が取得できるとは限りません。
// DOM Level 2: View, CSS
// 第 1 スタイルシートの第 1 宣言ブロック
var ssb = document.styleSheets[0].cssRules[0];
// 第 1 宣言ブロックの CSS 全文
alert ( ssb.cssText );
// 第 1 宣言ブロックの最初のセレクタ+プロパティ集合(たとえば 'body { color: #000; background-color: #fff; }' )
alert ( ssb.cssRules[0].cssText );
ならば,ある程度まで書いたままの形で取得できるでしょう(切り分けは大変ですが)。
http://www2u.biglobe.ne.jp/%7Eoz-07ams/prog/dom-ref/object-index.html#CSS
http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_stylesheet.asp
----
[*] ややこしい話をしますと,DOM Level 2 CSS 実装において,Element 型は ElementCSSInlineStyle 型にキャストされます。ゆえに,Element は style プロパティ(CSSStyleDeclaration 型)を持つことになります。
element.style.getPropertyValue ('border-width');
ここで,もし実装が CSS2 拡張モジュールをサポート(hasFeature ('CSS2', '2.0'))していれば,CSS2Properties インタフェースを使用できるので,上記を
element.style.borderWidth;
のように書くことができるわけです。