Should the W3C and WHATWG Die?

Those tags were deprecated back in 1997 - HTML 5 kept support for them though even though it was supposed to be removed simply because too many web pages still use them - despite being given 18 years to replace them.

There have been several different variants on CSS. Netscape developed their own they called JSS that was based on JavaScript style syntax. The original web browser had its own CSS but it was defined by the browser owner and not by the web page.

Ok thanks for the clarification; wasn’t sure I was thinking that they had to have been around since before CSS since they wouldn’t have been introduced otherwise.

Appreciate it :blush:

The last popular browser to not support CSS was Netscape 4 which basically dies out around 2005 or so - so it took about 8 years after the tags were deprecated before people could finally get rid of them completely.

1 Like

I have no problem with tables in CSS either. To be honest, I think that technique should be more accepted. The reason it isn’t is because of the fear of “semantic” loss (which I agree is a non issue) and the fact that IE6/7 didn’t support table layout in CSS (which is also a non issue now).

So you’re right, it’s just that many people avoid that technique for the reasons mentioned, and they probably shouldn’t.

1 Like

Nothing wrong at all and there are no issues (apart from the extra div). Vertical alignment has always been simple but widely misunderstood. Display:table is the most useful property around and I use it in hundreds of sites instead of floats now that I don’t support (fully ie7 and under).

The fact that it is not a block element is neither here nor there as you simply set width:100% if you want it full width but it is actually just as useful with no width because it will auto center horizontally without a known width with a simple margin:auto. It still behaves a block element but just shrink to fit.

I believe the author of the article has some valid points though but just picked the wrong property to complain about.:slight_smile: There are many other properties that work against the layout (margin-collapse for example which 99% of the time does what you don’t want).

I also agree that while flexbox is great it is just too complicated for most people and could have been a lot simpler.

1 Like

I have to say that I agree with @mawburn… and some with the comments made by @louislazaris.

@louislazaris I can’t agree with your last comment though. The semantic web was created with certain purposes including automatization and accessibility. So if I have to create a full layout with tables with CSS properties… then why shouldn’t I use a full HTML table instead? Because I still need to think about screen readers, bots, etc.

I don’t see a problem with using a CSS version but… wouldn’t it be better if instead of creating a table, I could apply that vertical alignment to any element and work as it should instead of being forced to create a CSS table?

Things in the CSS world are getting more difficult instead of easier… furthermore when you think about SASS, LESS, Jeet and the whole new bunch of stuff coming out.

I like SASS and LESS… but I’m starting to feel like I feel with javascript libraries , blogging platforms, boilerplates, etc. There are so many of them that it is impossible to choose the right one so you stick to what has become more popular. With these CSS preprocessors and the like, it is starting to feel the same. Overcrowded.

So yes, I wish they did things simpler, no more complicated.

1 Like

Yes of course; there are a few things in CSS I’d change if I could, but nothing is perfect; every language has faults and it’s ridiculous for us to get out the pitchforks due to mistakes we believe should be rectified. It’s completely overblown.

The problem with your argument though, is you’re using an example that goes outside the specifications as to why there is nothing wrong with the specification.

Using a display:table-cell outside of it’s proper parents should, by specification, be the same as using display:superman or display:batman, in that it’s not recognized. But it works, as do a lot of other things, because the browser developers are more in tune with developers than those who are making the specs.

I agree, it’s really starting to feel like this right now.

I just ignore all the others because it’s pointless. I already don’t even see much of a difference in LESS and SASS. But everyone wants to switch to SASS all of a sudden. If you look up why people switch, basically you get no real substance other than “IS NEW! IS BETTA!” I’ve actually found SASS more cumbersome with some environments because of the Ruby requirement, where LESS has Node.js and Java implementations which pretty much guarantees it will work in any build environment.

Some of these newer ones actually do have some things that would merit a switch, but also come with slightly higher learning curves and LESS/SASS already work really well.

2 Likes

I think @RyanReese that the point that @mawburn is making (watch me put words in someone’s mouth :smiley: - just slap me if I’m wrong) is not that you’re “doing it wrong” - you don’t need to defend your choice of styling there. His point is that the standards should be such that you don’t have to step outside of them [to do the thing in question]. If the standards are going to exist, they should be in tune with what developers actually need to develop for browsers.

The problem with your argument though, is you’re using an example that goes outside the specifications as to why there is nothing wrong with the specification.

Using a display:table-cell outside of it’s proper parents should, by specification, be the same as using display:superman or display:batman, in that it’s not recognized. But it works, as do a lot of other things, because the browser developers are more in tune with developers than those who are making the specs.

Again - not arguing that these are things you can’t or shouldn’t currently do. Arguing that the specifications should be in place to not force us to have to invent our own solutions (even if we’ve been using them for years).

And I love that cartoon, seen it before…

Edit:

It’s not feasible for the specification to go over every little detail. Browsers worked it out. Browsers are now uniform on it. Thus nothing in the future is broken.

Why is it not feasible for the specification to go over it? I feel like that’s the point of specifications. Once it’s left up to the browser, we become in danger of multiple browsers making multiple separate “decisions” on a subject /cough IE /cough. That’s the very point of a specification - to enforce uniformity.

1 Like

It’s not feasible for the specification to think of every little detail. That was my point. The specification would be 10x as big as it is now if we forced the specification to make a point about every situation it can encounter.

It’s not feasible for the specification to think of every little detail. That was my point. The specification would be 10x as big as it is now if we forced the specification to make a point about every situation it can encounter.

Perhaps, but that’s why the open discussions are important, I suppose - to let the body(s) making specifications know what’s important to developers. You’re probably right that we can’t expect everything to be included. But after years of use, I think we can, among us, come up with many opinions on what things aren’t in the specification that perhaps could or should be. Or things that are that shouldn’t be, or… whatever. Point is, there are some things that are widely used enough that you can make a point for the specification needing to realize a solution and incorporate it.

And I for one would rather it be bigger and therefore more uniform than smaller and more open to interpretation. Maybe it doesn’t need to include everything, if that’d make it 10x as big (an arbitrary amount I’m sure) but maybe it could be twice as big and cover another X% of use cases or something. I wish that browsers could be UI and feature differences for users, but that rendering engines would treat styling, etc uniformly.

And then I woke up…

2 Likes

Sorry, but the specifications clearly state (and I have known this since day one) that vertical-align only applies to inline elements and table-cells. How in the world is that outside of the specifications?

It does exactly what it says on the tin :slight_smile:

Maybe it would have been better if there was a similar property that applied to normal block elements but then unless you change the nature of the block element you don’t have a basis for the vertical centering whereas as the table/table-cell construct already has this built in. For block elements you don’t have a relationship between one block and the next as such unlike table-cells.

1 Like

The way that developers are making things vertically align (when not using an actual table) is outside of specifications. No one’s arguing that the specification doesn’t speak to vertical-align. You’re right, it does. We’re saying that people have to jury rig solutions to (whatever problem, not just this one) when there could be an actual provision for it somewhere if it’s a common issue, instead of it merely being ignored.

Which is the reason for discussion before new specifications.

I think that extremism as far as the OP goes is a bit much, and stubborn “it’s ok we can code like we always have” is a bit much as well. People just need to contribute opinions, and work with the specifications group(s) as best as they can to come up with better ones in the future, that work better for the current state of web development. Refusing to change is silly, as is demanding absurdly sweeping changes that would break the Internet in general :smiley: . Just my opinion.

Edit:

Maybe it would have been better if there was a similar property that applied to normal block elements but then unless you change the nature of the block element you don’t have a basis for the vertical centering whereas as the table/table-cell construct already has this built in. For block elements you don’t have a relationship between one block and the next as such unlike table-cells.

Right. That’s the issue, is the need to look into if things (not just this example that everyone is stuck on) could be better - and how - and what would have to be altered to make that happen. Maybe it’s entirely impossible without extensive redesign of our thought process around block elements and etc. Maybe it’s not and we just haven’t come up with a good idea yet - I hope none of us is magnanimous enough to believe we’re omniscient when it comes to development, layouts, etc. Things expand and grow for a reason - we come up with new ideas!

1 Like

It does. But are you giving every table-cell it’s proper table-row parent element and every table row it’s proper table as is also defined by the specifications? If not, you’re not using the spec the way it was written. Therefore, there is a problem with that spec. Thankfully the browser developers have decided this was dumb, but there is nothing saying that they need to do this. If they followed the spec, a lone <div style="display:table-cell"></div> would be the same thing as <div style="display:batman"></div>.

Don’t mistake the choices of the browser/engine developers for those of the w3c.

Again you are wrong on this point and the specs clearly state that when used in isolation (e.g. display:table-cell) the UA must construct an anonymous table-row and anonymous table element.

W3C specs

The point of the css table specification is that you don’t need those extra elements unlike the html table version which must have the proper structure. You are not doing it wrong in any way (unless you create a design that doesn’t work) :smile:

A lot of misconceptions in CSS come from peoples misunderstandings on how things work. Don’t get me wrong though it is far from perfect and discussions like these show how awkward people still find these things.

I think things could have been a lot simpler but at times they also need to be complex enough to cover most situations. I still find it strange that even advanced CSSers still don’t understand new block formatting contexts and which elements create them and why they automatically contains floats. Maybe its the details like these that should have been simplified.

4 Likes

So I am. :smiley: Thanks. I figured I might be, but couldn’t find where.

1 Like

But that’s what we have you here… to correct us and make us understand :slight_smile:

4 Likes

@PaulOB I’m curious why (quoting the entire paragraph)

The CSS model does not require that the document language include elements that correspond to each of these components. For document languages (such as XML applications) that do not have pre-defined table elements, authors must map document language elements to table elements; this is done with the ‘display’ property. The following ‘display’ values assign table formatting rules to an arbitrary element:

Is an argument being used to promote using these elements “in specification” within HTML, which is a language that has pre defined table elements?

To be clear, I agree with you that it’s not “wrong” - I just don’t see how that use case matches specification.


Edit:
A better argument that seems to prove you right without being wrong, if I’m reading this right, is

User agents may ignore these ‘display’ property values for HTML table elements, since HTML tables may be rendered using other algorithms intended for backwards compatible rendering. However, this is not meant to discourage the use of ‘display: table’ on other, non-table elements in HTML.

(emphasis mine)

:blush:

The css table model is a mechanism to imitate (some of) the visual layout that html tables have. It also serves to apply rules to table elements as basically all elements are inline by default until the UA applies rules to the contrary (which is why some of the new html5 elements needed display:block to make them work properly as they should (until the UA added the styling to its defaults.)).

I believe the specs are saying here that if you have html table element and you apply a property of display:table-cell (instead of display:table) then UAs could ignore that for backward compatibility. I commonly set display:block to td elements so that I can linearise the display for small screens and seems to work well on modern browsers.

Yes the section I meant to quote originally is this which shows no ambiguity at all.

lol - I just got lucky :wink:

1 Like

Yes the section I meant to quote originally is this which shows no ambiguity at all.

Your section still is debatable because it says “Document languages other than HTML”

But I still think you’re possibly/probably right, because they note that their wording isn’t intended to discourage use on non table objects?

So it’s all semantics at this point. (See what I did there :smiley: :smiley: )

And yeah, that @mawburn, he caves too easy! :smiley:

But yeah. So, swinging back to the major issue here… are you against adding to the specification in this or any other case for ease of use, basically, or are you just arguing this single case?

2 Likes