- From: Andrew Fedoniouk <news@terrainformatica.com>
- Date: Tue, 14 Jun 2005 15:57:00 -0700
- To: "Laurens Holst" <lholst@students.cs.uu.nl>
- Cc: <www-style@w3.org>
----- Original Message ----- From: "Laurens Holst" <lholst@students.cs.uu.nl> To: "Andrew Fedoniouk" <news@terrainformatica.com> Cc: <www-style@w3.org> Sent: Tuesday, June 14, 2005 2:54 PM Subject: Re: Proposal: content-vertical-alignment >> Auto value for margins also means exactly: 100%% >> >> |<-100%%-><-- width:100px--><-100%%->| > > > No they don’t, that amounts to 200%, which means the element will be twice > the width of its parent container. No. Behavior is exactly as current behavior in tables. Try to put two columns having width set to 100% each. Total sum of %% or 100 whicever is greater is used as a cap in computation. Please read my formal definition of %% units in previous post. (or http://www.terrainformatica.com/htmlayout/fspu.whtm) > > In case you think I’m wrong here, then your earlier example where two > elements with a width which don’t sum up to 100 leaving free space (e.g. > 20%% + 50%% leaves 30%% undistributed) doesn’t make sense. This give us flexibility. %%s can serve as both - percents and weights. > > > Andrew Fedoniouk wrote: > >> Yes, inline elements do not have width/height by definition. >> But inline-block and inline-table do have dimensions. > > Which happen to be supported by none of the major browsers (so I’d say get > those implemented first, hehe). You knowledge is outdated. IE supports inline-blocks since 6.0. (only for naturally inlined elements like SPAN but nevertheless). > > Anyways, but that’s kinda nasty - if the content gets resized to a size > smaller than the smallest specified width (or the rest of the content, > e.g. text, gets too big to fit on one line), then no horizontal scrollbar > appears, but instead the elements will flow into the next line and the > layout totally messes up. There is a white-space:nowrap for such cases as you may know. > > I see a possibility in using %% like % + calc() in an absolutely > positioned context (or a percentaged * in an old-fashioned frameset), but > as you said, %% doesn’t apply there (and as I said it would be unneeded > anyway, per the existence of calc()). Using inline blocks instead to > achieve a similar effect using %% units then *is just wrong*. You want to > lay out an element in a certain way, it’s not inline at all. > > For the actual styling of inline block content (e.g. an image), I don’t > really see the need or use to introduce a special unit to be able to... > stretch it to the end of the container, or for 50% of the space until the > end of a container? What would that be useful for? And what if there is > text after the %%-sized inline blocks? Text flows accross lines, so the > minimum width is 0 (just placing it on the next line), the maximum width > is something very close to ‘100%%’ as well (depending on word size and > breaking). I missed you here. Seems like you are using some particular design pattern which is unknown to me. > >> Second, I did test implementation of 'flow:horizontal' attribute >> which allows >> to reproduce VBOX and HBOX XUL elements in CSS. >> E.g. flow:horizontal being applied to the div causes all >> its children in normal flow to layout from left to right (versus >> current top to bottom). >> This and %% units allows to implement sidebars alike layouts >> more naturally: >> |<-left SB -><-- contet div width:100%%--><-right SB ->| >> and without any tables, sic! > > But flow: horizontal is not part of CSS. I think your first priority would > be to get that in CSS then, before introducing %% units. You don't need them. inline-block is here. it is enough. > > Besides, in the XUL box model Mozilla implements there is already > something from my perspective does exactly the same, but then > better: -moz-box-flex. Probably. I never heard proposals about it in the list and nowhere. > > I’d like to note by the way that with the existing model %% of course > already applies to block heights (e.g. > body{height:100%}#a{height:30%%}#b{height70%%}), but if it’s just that it’s > pretty limited, I can’t really see a common situation where I would need > that and where absolute positioning (possibly combined with calc()) wouldn’t > already do exactly what I want. And what do you want exactly? > >>> >>> If this does apply to absolutely positioned blocks (which is really the >>> only use case I can see), then isn’t a calc() function (e.g. width: >>> calc(100% - sum-of-all-known-widths)) a better solution which in >>> addition >>> applies more generically to length units used elsewhere? >> >> calc is not better solution at all: imagine that user have its >> own CSS applied to the page increasing font sizes, etc. >> This will ruin all your calcs making the whole system too fragile. > > I agree that calc is more fragile (OTOH, in the case you mentioned, I > think it is not, you can use em font sizes and such). However, calc() is > something which applies much more generally and solves many issues, and in > most cases it will do what people need. I also think that something more > fragile than most existing CSS on the web, with faux columns and floats > used for everything that’s loose, is just impossible, so it can’t be that > bad :). Also, constants would alleviate much of the remaining issues, I > think. What issue solves calc? > >> In general absolutely positioning is breaking >> flexibility of HTML layout - it does not allow to implement >> "this element attached to that" without scripting. >> As a rule documents using abs units are rendered >> extremely bad on different screen resoultions, etc. >> I think this is obvious and we all know that too well. > > I think calc() can do pretty much that - the only downside is that sizes > have to be specified twice, once in the original width and once in the > calc(), which introduces a maintainability problem (hence my suggestion > for constants earlier). It is certainly the most flexible way to do it. > Other solutions would could indeed be more of a distributive nature, where > the browser takes care of that math, and I understood there were thoughts > to create some kind of ‘grid’ layout system to do things like that. > However, I do not think %%, at least not in the way you currently proposed > it, is a good solution. Why? OT: There is a good principle : criticizing - propose. Only this way it is possible to reach a solution. > >> Again, if we would have %% units then we >> don't need calc at all, tables - most of current >> layout cases will gone and absolute positioning will be used >> only in cases where it is really needed. > > I still see many issues, no. 1 being that it only really applies to > inline-block (and inline-table, but you just said we wouldn’t need them > :)), for which the behaviour of %% is under-specified and doesn’t seem to > degrade well when resizing due to the intrinsic nature of inline-block > being part of an inline flow. Sorry but your look is too narrow for some reasons. Try to think more on it. Feel the Force: E.g. <div>top</div> <div style="margin-top:100%%">bottom</div> will position 'top' at top of the conatiner and 'bottom' at bottom. Do you care about reproducing such layout with calc or anything around? > > > ~Grauw > > -- > Ushiko-san! Kimi wa doushite, Ushiko-san!! > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > Laurens Holst, student, university of Utrecht, the Netherlands. > Website: www.grauw.nl. Backbase employee; www.backbase.com. :) Andrew Fedoniouk. Old, experienced kamikaze having MS in Physics and Applied Mathematics and Diploma in Arts. :) >
Received on Tuesday, 14 June 2005 22:57:07 UTC