|
musefan wrote: As the saying goes: if you have a good idea, it either already exists or it really isn't that good an idea.
Luckily everyone doesn't think like that, otherwise all development would stagnate.
|
|
|
|
|
A proper upvote for that!
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Jörgen Andersson wrote: Luckily everyone doesn't think like that
Indeed, most people don't even think at all...
But I don't particularly agree that we only advance from unique ideas. I am sure a lot of people come up with the same ideas all the time, it's just who gets to market first, so to speak.
|
|
|
|
|
musefan wrote: who gets to market first
Word.
Edison comes to mind.
|
|
|
|
|
What you describe already happens in the layout engine of modern browsers. The rules that I outlined earlier already happen, but is invisible to us. There are hundreds of such rules that must be evaluated to produce the final layout, and some are in direct conflict with each other, so the engine is designed to make a compromise. These compromise heuristics is what avoids endless recursion.
So imagine that tomorrow the Google Chrome team launches a new module called JSCSS, were they have moved out all those heuristics from inside the layout engine and written them in JS. From now on you point to a JSCSS file at the beginning of a HTML page, which defines all the CSS rules you intend to use. CSS still works exactly like before. But the HUGE difference is, now you can see how a flexbox actually figures out layout, AND you can extend CSS with your own definitions for things you think is better than the standard. AND you can omit CSS altogether, and write your layout directly in JSCSS of you want.
This would be a huge relief for everyone, because browser makers only have to make sure the core layout engine works correctly, and every CSS definition is in external JS, exactly the same for every browser. And any developer can extend CSS with his own definitions.
Bjorn
|
|
|
|
|
That feature doesn't exist, because IMO it's something that we shouldn't do to begin with. Websites are displayed on various screen sizes, contrary to Windows App which almost definitely shown on a monitor.
If you fixed the size of element b as 1/10 of total web page's height, it will be nightmare/unreadable on some screen sizes.
If it's screen size, there already "vh" and "vw" as unit size.
|
|
|
|
|
Whilst I don't disagree with you re:CSS, in that example you've given it could be easily achieved using JS / jQuery.
It's simply a case of picking the right language for the job.
Of course as others have picked up on, doing that might cause all sorts of strange behavior once you start looking at the various sizes of screens your page may show up on, from 1 inch watches to 100 inch projectors. You just can not be sure of the scale your user will be using.
|
|
|
|
|
Agreed, it's a PITA and those that have mastered it are deep into the dark arts.
|
|
|
|
|
bjoernen wrote: by writing simple math formulas into the CSS Like this[^], you mean? The calc() functions in CSS are useful, potentially (though I've not used them myself) but they don't directly include the ability to refer to other elements. However you can refer to CSS custom variables which may give you the flexibility you want. But hey, all this is just adding more bloat, and making it harder to learn (and test for cross-browser compliance). The trouble is, the features you want are not the same as the features someone else wants - and pleasing everyone is what leads to bloat in the first place.
|
|
|
|
|
It's a language by committee. And a committee made up of teams that are actively competing with each other. Read this discussion on CSS4[^]. They actually, deliberately, don't want to increment the CSS version anymore. That's like macOS stopping at version 10 (...but instead is 10.1, 10.2 etc), and Windows 10 stopping at 10. Or 10 20H1, 20H2...)
I think the hardest part of CSS is the "C" - the cascading, which relies on Specificity. It's super logical and very well defined. And an utter nightmare as soon as you step off the beaten track. Switch elements around, decide you need some special formatting, try and generalise it, and boom!
Still - it does at least attempt to encourage a separation of layout and style. Except the CSS defines the layout
cheers
Chris Maunder
|
|
|
|
|
Chris Maunder wrote: that's like macOS stopping at version 10 (...but instead is 10.1, 10.2 etc), and Windows 10 stopping at 10. Or 10 20H1, 20H2...)
. . . . perchance to dream . . . .
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Yea I wish CSS was only about style, and layout was handled in a different way. I think it is possible to keep the core layout engine of the current browsers, and create a kind of scripting language they can run, so the developer can interact with the layout procedure. These ideas have been proposed before, so I can't understand why we still have CSS today. I was cursing HTML layout 15 years ago, and couldn't imagine we would still be doing things the same way today.
Some developments in this space have been amazing, but HTML/CSS/JS has really been a disappointment. There is still not a practical way to write C# and run it in the browser, just promises of WASM and compilers that never hit mainstream.
Bjorn
|
|
|
|
|
bjoernen wrote: compilers that never hit mainstream
You've not looked at Blazor[^]?
cheers
Chris Maunder
|
|
|
|
|
The fascination of presentation over content.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
"The medium is the message"
"Time flies like an arrow. Fruit flies like a banana."
|
|
|
|
|
I'm a simple man. I see CSS hate, I upvote.
|
|
|
|
|
|
I actually gave that on a mug to a designer, it's his favorite mug
|
|
|
|
|
CSS is not a language, it is markup.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
They have started to add programmatic elements to it and it won't be long before there will be a full blown css scripting language based on COBOL - because for reasons that are unclear to me the entire community is committed to making things as complex/multi-layered/obtuse as possible.
Whatever you do on a webpage you must never just put an input element on the form - it must have a template that references other templates and style sheets that must be run through SASS and dozens of other utilities/mods/nightmares - all to collect a first and last name from a customer.
I swear to Judas that some developers go into a project seeking to add as much complexity as possible.
|
|
|
|
|
|
separation of content and style, that's what they say when they teach little kids about css
the next logical step it was
i never new what hit me, that was around 98. i discovered it was css when every page broke on every browser. it was said that browsers were guilty of not heaving decent support for it. for me it was the other way around, so i never looked at css
whenever i see it embedded in html i just skip that part
|
|
|
|
|
That's why we have LESS and SASS, both able to do what you and I want.
Personally, I still prefer using tables for layout, because it doesn't move elements around in odd places, as floating divs often do, but I am trying to get used to it, because it can make it easier to have one page for all sizes of screens.
|
|
|
|
|
Like you, I have worked in our profession for a very long time, retiring in 2014 after 42+ years in this career. Its not that I had gotten fed up working with the technologies. I simply couldn't stand the arrogant incompetents any longer. So I believe I know where you may be coming from.
However, I think you may be confusing the way CSS should be used and the way it has been abused.
CSS is very good for simply making generic styles for a variety of HTML interfaces given its object-like nature for such definitions.
However, like all software tools, its creators and users\developers seem to have to always extend their tools to death implementing ambiguity after ambiguity until people eventually react to all the bloat as you have with CSS.
The problem with all software today is that both vendors and developers simply can't desist from creating and\or using every possibility any single language and\or framework is capable of or provides.
Look at the recent "innovations" with the Microsoft frameworks. Do we really have to give up the standard framework implementations to create a quality application? Not really. Its just that Microsoft can't seem to leave well enough alone with what it already has.
And if it wanted to refine the existing tools, fine, but why go and create an entirely new framework infrastructure leaving everyone to have to consider yet again another conversion?
Its not as if many developers are really going to see any substantial improvement in efficiency and performance with the new frameworks while being forced to abandon the older ones. And if they do, they have already given up something to gain either. In the end, it is always a zero-sum game.
The problems you legitimately see with CSS are merely an outgrowth of an industry that has already passed its development zenith and now has no idea what to do with itself...
Steve Naidamast
Sr. Software Engineer
Black Falcon Software, Inc.
blackfalconsoftware@outlook.com
|
|
|
|
|
I'm not up to your 42+ years yet, only at 22+. there are days where I feel the industry is changing too fast for no apparent gain, but a lot more bloat. Not much chance of mastering a language anymore before it's replaced, or 'updated'.
although I agree partially with the original poster, I feel the responsibility for the odd behaviors of CSS lie in the browser engines not standardizing how it's implemented. like I can build something that looks great on Chrome, Firefox, and Android, but totally breaks on iOS products. (I'm not counting IE anymore it's gone, and new Edge is chrome underneath).
|
|
|
|