|
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.../
|