From: Kevin <ke...@ke...> - 2003-04-25 23:17:19
|
"Dan Willemsen" <da...@wi...> wrote: > On Fri, 2003-04-25 at 17:05, Raymond Irving wrote: > > Hello Everyone, > > > > I'm currently trying to get the setBorder() feature to > > work in DOM browsers the way it works in IE. According > > to the CSS1 specs the box width includes padding, > > margin border and the element's width. > > Wrong... the elements width is only the width declared, the padding and > border are not added in. In the IE 5(and 6 in quirks mode) box model, > they are added in, which makes it a real pain for css developers, I > know, i design css sites now for the most part. Javascript is just > extra. Raymond refered to box width to include margin, border, padding and elements width. So both right. I know of the broken IE5 box model being a real pain. Solution. 1) I like the way borders are done in dynapi for ns4. Layers for top, bottom, left and right. So if we implement this for all browsers and not mess with the style it would be consistent, though dynlayer width will include border. > > It would seems > > that DynLayers were design to only work with the > > elements width. One quick solution would be to set the > > actual element width to be less than twice the size of > > the border. 2) If we mess with border style for dom browsers. For the dynlayer size to consistent with ns4 border implementation it''s the dynlayer width that should be set to the actual element width plus twice the size of the border. I have a setBorder method that fixes the bug and should work ok: p.setBorder=function(w,c,s) { var width=w||0; var bstyle=(typeof(s)=='string')?s:'solid'; var bcolor=(typeof(c)=='string')?c:'black'; this._border=width+'px '+bstyle+' '+bcolor; this._cssBorder='border:'+this._border+'; '; var s=this.css; if(s) { s.borderWidth=width+'px'; s.borderStyle=bstyle; s.borderColor=bcolor; } }; Just need to work out what the dynlayer w & h should be as the w & h of a dynlayer should be the same as when using a border (internal border layers) in ns4. - Kevin > > For example in dom browsers we would something like: > > > > p.setSize = function(w,h) { > > ..... > > if (cw) this.css.width = > > (this.w-(this._border*2))||0; > > if (ch) this.css.height = > > (this.h-(this._border*2))||0; > > .... > > } > > > > > > What do you think? Any other suggestions? Can we do > > this? > > > > > > -- > > Raymond Irving > > > > __________________________________________________ > > Do you Yahoo!? > > The New Yahoo! Search - Faster. Easier. Bingo > > http://search.yahoo.com > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > Dynapi-Dev mailing list > > Dyn...@li... > > http://www.mail-archive.com/dyn...@li.../ > -- > Dan Willemsen <da...@wi...> > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Dynapi-Dev mailing list > Dyn...@li... > http://www.mail-archive.com/dyn...@li.../ |