OSDN Git Service

Version 0.6.31, async parser, add X.Dom.Builder.js.
[pettanr/clientJs.git] / 0.6.x / js / dom / 15_XDomStyle.js
index f7155de..31ddc30 100644 (file)
@@ -142,7 +142,7 @@ _GRNERAL
                                css[ ++n ] = [ VENDER_PREFIX[ name ] || name, obj[ p ] ].join( ':' );
                        };
                };
-               sp && ( css[ ++n ] = SPECIAL_FIX( obj ) );
+               sp && ( css[ ++n ] = 'filter:' + SPECIAL_FIX( obj ) );
                return css.join( ';' );
        },
        
@@ -963,7 +963,12 @@ X.Dom.Node.prototype.css = function( nameOrObj /* orUnitID, valuOrUnitOrName */
                        if( ieFix[ p ] ){
                                this._dirty |= X.Dom.Dirty.IE_FILTER;
                        };
-                       css[ camelize( p ) ] = nameOrObj[ p ];
+                       v = nameOrObj[ p ];
+                       v || v === 0 ? css[ camelize( p ) ] = v : delete css[ camelize( p ) ];
+                       if( p === 'display' ){
+                               v === 'none' ? ( this._state |= X.Dom.State.IE5_DISPLAY_NONE_FIX ) : ( this._state &= ~X.Dom.State.IE5_DISPLAY_NONE_FIX );
+                               v === 'none' ? ( this._state |= X.Dom.State.DISPLAY_NONE ) : ( this._state &= ~X.Dom.State.DISPLAY_NONE );
+                       };
                };
                this._dirty |= X.Dom.Dirty.CSS;
                this.parent && this._reserveUpdate();
@@ -979,7 +984,7 @@ X.Dom.Node.prototype.css = function( nameOrObj /* orUnitID, valuOrUnitOrName */
                        if( css[ name ] === v ) return this;
                        if( X.Dom.Style.IE_FILTER_FIX[ name ] ){
                                this._dirty |= X.Dom.Dirty.IE_FILTER;
-                       };                      
+                       };
                        if( !v && v !== 0 ){
                                delete css[ name ];
                        } else {
@@ -987,7 +992,11 @@ X.Dom.Node.prototype.css = function( nameOrObj /* orUnitID, valuOrUnitOrName */
                        };
                        delete this._cssText;
                        this._dirty |= X.Dom.Dirty.CSS;
-                       // parent でなく this._root!
+                       if( name === 'display' ){
+                               v === 'none' ? ( this._state |= X.Dom.State.IE5_DISPLAY_NONE_FIX ) : ( this._state &= ~X.Dom.State.IE5_DISPLAY_NONE_FIX );
+                               v === 'none' ? ( this._state |= X.Dom.State.DISPLAY_NONE ) : ( this._state &= ~X.Dom.State.DISPLAY_NONE );
+                       };
+                       // parent でなく this._root! でなくて this._state & in tree
                        this.parent && this._reserveUpdate();
                        return this;
                };
@@ -1019,6 +1028,10 @@ X.Dom.Node.prototype.cssText = function( v ){
                };
                return this.css( obj );
        };
+       // getter
+       if( this._dirty & X.Dom.Dirty.CSS && !( this._cssText = X.Dom.Style.objToCssText( this._css ) ) ){
+               delete this._cssText;
+       };
        return this._cssText;
 };
 
@@ -1036,6 +1049,7 @@ X.Dom.Node.prototype._getCharSize =
                }) :
        X.UA.IE && 5.5 <= X.UA.IE ?
                (function(){
+                       if( this === Node.root && X.Dom.Event._lastFontSize ) return X.Dom.Event._lastFontSize;
                        var font = this._rawNode.currentStyle.fontSize,
                                vu   = X.Dom.Style._Util._splitValueAndUnit( font ),
                                v    = vu[ 0 ],
@@ -1079,7 +1093,7 @@ X.Dom.Node.prototype._getCharSize =
                }) :
        X.UA.IE ?
                (function(){
-                       var elm = this._rawNode, v;
+                       var elm = this._rawNode || this._ie4getRawNode(), v;
                        elm.insertAdjacentHTML( 'BeforeEnd', '<span style="visivility:hidden;line-height:1;">X</span>' );
                        elm = elm.children[ elm.children.length - 1 ];
                        v   = elm.offsetHeight;
@@ -1091,7 +1105,7 @@ X.Dom.Node.prototype._getCharSize =
 
 
 X.Dom.listenOnce( X.Dom.Event.DOM_PRE_INIT, function(){
-       var testStyle = X.Dom._root;
+       var testStyle = X.Dom._root.style;
        
        X.Dom.Style.VENDER_PREFIX = (function(){
                var ret       = {},