CSS is for wimps



  •  Yesterday I came across a site (http://roha-getraenke.de/inhalt.htm) that, in my opinion, definitely qualifies for being a WTF.
    This thing opens fine in my Mozilla browser and I never noticed anything odd.
    At one point I only had IE to my disposal and it totally freaked out and blocked the site from loading an unsecure ActiveX control and never showed the nav menu.

    Curious as to why this might happen (since the site sports a pretty straight forward html-only look) I took a quick look at the source and stumbled right upon these lines

           <p><applet code="fphover.class" codebase="./" align="bottom" height="24" width="120"><param name="textcolor" value="#FFFFFF"><param name="color" value="#0099FF"><param name="hovercolor" value="#00FFFF"><param name="effect" value="reverseGlow"><param name="text" value="Unsere Märkte"><param name="url" value="maerkte.htm"></applet> </p>

    No kidding... what could have been accomplished with a tiny bit of CSS was crammed into a fullblown java-applet.


    Upon further inspection the header shows a clear indication of where the failure lies

    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta name="GENERATOR" content="Microsoft FrontPage 6.0">


    Jeeeez .... there _are_ dumb (or at least totally clueless) people out there ... and they have a tool and are not afraid to use it.




  • Ah yeah, the dreaded fphover applet. It's one of those sucky things from a really old version of Microsoft Frontpage. Frontpage used the applet for "fancy" navigation menus.



  •  Wow... this is done by design?

    Even worse than failure than I thought. Yikes. No wonder newer versions of IE now are trying to hide it  >:)

     



  • @Julchen said:

     Wow... this is done by design?

    Even worse than failure than I thought. Yikes. No wonder newer versions of IE now are trying to hide it  >:)

     

    Frontpage 6.0 came out in around 1998. It was designed for a completely different world than the one we're in. That's not to say that Frontpage is a good product, but... seriously. 1998. Think about what the browser landscape looked like in 1998.

    IE probably bitched because I wager Frontpage tries to use an ActiveX applet for IE, and a Java applet for other browsers. Microsoft's trying to kill off ActiveX as much as they can, so they put pretty big barriers in front of running it. Java still runs without much bitching, unless IE is in its super-secure-mode-thing. (You know, how it ships on Server 2008.) Chrome on my OS X lappy ran the rollovers no problem.

    Now to the topic of this post:

    I've been doing web development with CSS for well over 5 years now, and I still can't wrap my head around it. Seriously, I do most of my CSS editing through trial and error to this day-- "ok what about float:left? float:right on the other element maybe? Or maybe I need one of those clear:both on the parent?" I just plug it in until it looks right. I don't know what it is, but there's just some things I simply do not get no matter how much I'm exposed to them, and CSS layouts is one of those things. (Calculus is another.)

    It doesn't help that CSS sucks shit, either. "You're still using a table layout in 2008?" "Yeah, I have these things called 'columns of text'. They were invented in the 17th century. CSS still doesn't fucking do them."

    "You're using a table layout in 2008?" "Yeah, I could either create a long, retarded work-around to vertically center an element, add in a pointless dependency on a JavaScript, or write 2 lines of fucking TABLE tag. Because, hey guess what? CSS can't fucking do it!"

    Someday I'm going to write a book titled "Version 10 Can't Have Fewer Features than Version 9, Idiots". Mostly aimed at Apple with OS X, but the CSS thing would be good to have in there, too. (Sadly, even MS has picked up this disease now. Live Messenger 2011 threw out many features I liked in 2009.)



  • @blakeyrat said:

    It doesn't help that CSS sucks shit, either. "You're still using a table layout in 2008?" "Yeah, I have these things called 'columns of text'. They were invented in the 17th century. CSS still doesn't fucking do them."

    "You're using a table layout in 2008?" "Yeah, I could either create a long, retarded work-around to vertically center an element, add in a pointless dependency on a JavaScript, or write 2 lines of fucking TABLE tag. Because, hey guess what? CSS can't fucking do it!"

     

    In your defense, that probably won't be practically useable before 2025, if ever. But at least, there is a spec...



  • @PSWorx said:

    that probably won't be practically useable before 2025, if ever. But at least, there is a spec...
     

     

    At which point, FF and Chrome will have implemented it themselves using some weird nonsense name, MS will have added it to Internet Explorer according to the spec, and then W3c will "randomly" decide to change the spec so that IE's implementation is non-standard, then everybody will laugh at IE for being non-standard.



  • @PSWorx said:

    In your defense, that probably won't be practically useable before 2025, if ever. But at least, there is a spec...

    That should have been in fucking version fucking 1.0. Why the shit were there ROLLOVER effects before it could do a fucking columnar layout!? What the hell were they building it FOR? THERE IS NO EXCUSE.

    Sorry I get angry when people defend the retardedness of the W3C.

    Edit: and that's only the most blatant offense:

    Why the hell is there no way of putting a color value or measure in a variable so you can re-use it?

    Why the holy shit does CSS use a brand-new syntax which is utterly incompatible with HTML, XML *and* JavaScript (for things like comments)?

    Ok, so you can have design-time measures (like pixels), and run-time measures (like ems) to space-out elements. Great. But why the fuck can't you add the fucking things together? Why does it take two DIVs to express the extremely simple idea "I want the left border to be 5 pixels + 5 ems"? (And then the CSS hardcore people get angry when you do the entire layout, including font sizes, in pixels. GEE I WONDER WHY PEOPLE DO THAT? Idiots.)

    Seriously, what was CSS even built to do? It's missing so much head-palmingly basic functionality, that I really have no idea.



  • @BC_Programmer said:

    At which point, FF and Chrome will have implemented it themselves using some weird nonsense name, MS will have added it to Internet Explorer according to the spec, and then W3c will "randomly" decide to change the spec so that IE's implementation is non-standard, then everybody will laugh at IE for being non-standard.

    Haha, you rock. +1 Internets.



  • @blakeyrat said:

    Sorry I get angry when people defend the retardedness of the W3C.

    Edit: and that's only the most blatant offense.

     

    Don't get me wrong, I didn't want to lessen the retardedness of the W3C in any way. Adding to your list, note that we still don't get XPath in selectors. But then again, does XPath have special commands to select every third element, counted from the end? Oh wait, it doesn't need those...


  • Garbage Person

    @PSWorx said:

    Adding to your list, note that we still don't get XPath in selectors. But then again, does XPath have special commands to select every third element, counted from the end? Oh wait, it doesn't need those...
    Man, I thought xpath was the greatest thing since sliced bread when I first got exposed to it, and now you tell me I can't even select every third element counting out from the median, excluding the median? THIS SHIT SUCKS!



  • @PSWorx said:

    @blakeyrat said:

    Sorry I get angry when people defend the retardedness of the W3C.

    Edit: and that's only the most blatant offense.

     

    Don't get me wrong, I didn't want to lessen the retardedness of the W3C in any way. Adding to your list, note that we still don't get XPath in selectors. But then again, does XPath have special commands to select every third element, counted from the end? Oh wait, it doesn't need those...

     

    XPath seems similar to C++ in my view.  A limited subset of all of the stuff it can do is sane and usable and can (with discipline) be used to make useful things, but a lot of its more obscure features are total wtfs.



  • @blakeyrat said:

    I've been doing web development with CSS for well over 5 years now, and I still can't wrap my head around it.
     

    I've been doing it for 7, and people think I'm a guru because I know most of what's fucked and what works in most browsers. Hit me up when you need a pointer. :P

    I'm behind on knowing CSS3, though, because of shitty support and because I don't find it romantic anymore. I don't get how people can be "passionate" about the web or how can get "excited" about its features and technology.

    Except jQuery. That shit is a godsend.



  •  And here I am stuck in an island of idiots telling me that I should replace my simple table layout with a bunch of DIV tags. I mean, I use CSS to define the visual appearance of the table cells,  but I never could figure out how to do a columnar layout. And now I learn there is no such thing. So why the hell were they telling me "if you use CSS this layout would be easier" Obviously not, since if I use CSS "this" would be impossible. Idiots.

    On the other hand- I think when it was originally created it was supposed to supplement the existing tags- so table tags wouldn't become some evil abomination that they seem to have become. But then a few nerds started masturbating to the CSS manuals so now we've got to deal with the rabid mutant growths of people that grew from those stains and are now trying to get us to use CSS for every damned thing.

     Also side from the obvious fact (that has been noted) that the syntax is different from damn well everything else as far as web development is concerned- it has "classes" (well, something it calls classes that are totally different from classes in any other fucking language I've ever seen) and there is a form of nesting, but the actual property names may as well be random strings combined with hyphens. "shit, was it text-inner-padding? text-padding-inner? padding-text-inner? padding-text-outter-padding-inner-border-width-padding? Was it case sensitive? damned if I remember. fuck. I give up. I'm just going to use a table with cellpadding". And of course ask a colleague what it was and they just say "GO TO W3SCHOOLS U FUXOR" so then you have to rummage through the site that looks like it was created by a bunch of Java programmers that converted a Visual Basic 6 app so that it was on the web and had fancy rollovers.

    CSS has it's place, but it seems stupid to replace something that works perfectly fine and is short and relatively simple with a bunch of javascript hacks and messy CSS positioning "just because".I mean, it'll be great when we can use IE's Column attributes, and then later use Mozilla and Chromes standardized Vertical-Columnized-Space attributes, but until then it's just bloating things up for no reason.

     

     


     

     



  • @Weng said:

    @PSWorx said:

    Adding to your list, note that we still don't get XPath in selectors. But then again, does XPath have special commands to select every third element, counted from the end? Oh wait, it doesn't need those...
    Man, I thought xpath was the greatest thing since sliced bread when I first got exposed to it, and now you tell me I can't even select every third element counting out from the median, excluding the median? THIS SHIT SUCKS!

    Don't worry, obliviously that's very common use case and it's easy to do

    [code] //*[count(following-sibling::*) < (floor(count(parent::*/child::*) div 2)-1) and count(preceding-sibling::*) mod 3 = 0]" [/code]

    ...or something else that resembles randomly hitting some keys.



  • @dhromed said:

    Except jQuery. That shit is a godsend.

    CSS? Hell, JQuery is for wimps. Wimp.

    @BC_Programmer said:

    And here I am stuck in an island of idiots telling me that I should replace my simple table layout with a bunch of DIV tags. I mean, I use CSS to define the visual appearance of the table cells, but I never could figure out how to do a columnar layout. And now I learn there is no such thing. So why the hell were they telling me "if you use CSS this layout would be easier" Obviously not, since if I use CSS "this" would be impossible. Idiots.

    There's a whole culture of web developer douchebags who are all like this. They'll also get annoyed if your site doesn't "validate", as if that means anything. The best thing to do is what you've been doing, ignore them.

    @BC_Programmer said:

    On the other hand- I think when it was originally created it was supposed to supplement the existing tags- so table tags wouldn't become some evil abomination that they seem to have become. But then a few nerds started masturbating to the CSS manuals so now we've got to deal with the rabid mutant growths of people that grew from those stains and are now trying to get us to use CSS for every damned thing.

    That's the thing. Was it made for serious news-y sites? Well, obviously not because it didn't support columns. Ok, so was it made for fun, cute, sites? Obviously not, since it doesn't support vertical centering. What the heck was it made for?

    @BC_Programmer said:

    it has "classes" (well, something it calls classes that are totally different from classes in any other fucking language I've ever seen)

    They should have called them "tags". Which would make the terminology make more sense.

    @BC_Programmer said:

    and there is a form of nesting, but the actual property names may as well be random strings combined with hyphens. "shit, was it text-inner-padding? text-padding-inner? padding-text-inner? padding-text-outter-padding-inner-border-width-padding? Was it case sensitive? damned if I remember. fuck. I give up.

    Oh, you didn't get to the worst part! The names are completely incompatible with DOM and JavaScript! Those dashes don't work in variable names, so the thing named "padding-left" is called "paddingLeft" in DOM. Yay! Everything in CSS has a completely different name in DOM! But at least it's a predictable pattern right? Nope!

    The CSS people picked "float" as a layout element when "float" is a fucking TYPE in JavaScript, the language used on 99.9% of all websites!? So you get "cssFloat" (or "styleFloat" because God-forbid two different browsers use the same name for something) when accessing the style object. Ditto with "class"-- there's a reason the DOM has to have that expressed as "className". (That said, "tag" would have been problematic also.)

    So the rule is to replace the dashes with camel-case, except when you don't do that. The whole thing was designed by retards.



  • @Weng said:

    @Buzer said:
    Man, I thought xpath was the greatest thing since sliced bread when I first got exposed to it, and now you tell me I can't even select every third element counting out from the median, excluding the median? THIS SHIT SUCKS!

    Don't worry, obliviously that's very common use case and it's easy to do

    <font size="2" face="Lucida Console"> //*[count(following-sibling::*) < (floor(count(parent::*/child::*) div 2)-1) and count(preceding-sibling::*) mod 3 = 0]" </font>

    ...or something else that resembles randomly hitting some keys.

     

    So your point again was that XPath has no semantic sugar for selecting the third element counting out from the median, except the median? That's... an important complaint, I guess.


  • Garbage Person

    @Buzer said:

    Don't worry, obliviously that's very common use case and it's easy to do

    <font face="Lucida Console" size="2"> //*[count(following-sibling::*) < (floor(count(parent::*/child::*) div 2)-1) and count(preceding-sibling::*) mod 3 = 0]" </font>

    ...or something else that resembles randomly hitting some keys.

     

    ....


  • Considered Harmful

    @blakeyrat said:

    The names are completely incompatible with DOM and JavaScript! Those dashes don't work in variable names, so the thing named "padding-left" is called "paddingLeft" in DOM.

    Really, element.style[ 'padding-left' ] would be a valid way to access a property with that name, but I suppose a lot of novice users don't know that foo.bar and foo[ 'bar' ] mean the same thing in JavaScript.



  • @joe.edwards said:

    @blakeyrat said:
    The names are completely incompatible with DOM and JavaScript! Those dashes don't work in variable names, so the thing named "padding-left" is called "paddingLeft" in DOM.

    Really, element.style[ 'padding-left' ] would be a valid way to access a property with that name, but I suppose a lot of novice users don't know that foo.bar and foo[ 'bar' ] mean the same thing in JavaScript.

    Are you saying that does work, or that should work?

    (If the latter, I agree-- but at the same time, it ties DOM very strongly into JavaScript, which generally should be avoided. DOM is supposed to be language-neutral.)

    Edit: of course the real problem is that CSS semantics are completely different from almost all other languages. In a sane world, these two things wouldn't be equivalent:

    border: 3px solid black;

    border-width: 3px;
    border-style: solid;
    border-color: black;

    I guess what CSS is kind of doing is they have a class "border" with members "width", "style", and "color", and a custom constructor that can fill in all the members, and also accessors to let you set the members directly. But... the semantics are still fucked, and JavaScript doesn't really have such a concept of "constructors" or "accessors"... so... yeah.



  • @blakeyrat said:

    It doesn't help that CSS sucks shit, either. "You're still using a table layout in 2008?" "Yeah, I have these things called 'columns of text'. They were invented in the 17th century. CSS still doesn't fucking do them."

    Yet every web page out there using standards compliant CSS has columns without using tables. No offense, but this seems to be the attitude developers have who are "forced" to work on CSS/HTML in their web applications. Designers figured it out a long time ago and moved on.



  • @blakeyrat said:

    I guess what CSS is kind of doing is they have a class "border" with members "width", "style", and "color", and a custom constructor that can fill in all the members, and also accessors to let you set the members directly. But... the semantics are still fucked, and JavaScript doesn't really have such a concept of "constructors" or "accessors"... so... yeah.

    Unless you start using JQuery which uses the CSS selector system to great effect to traverse and manipulate the DOM.



  • @Soviut said:

    Yet every web page out there using standards compliant CSS has columns without using tables.
     

    He means textual columns in a single element. It's in the spec, but support is sordidly lacking.



  • @blakeyrat said:

    In a sane world, these two things wouldn't be equivalent:

    border: 3px solid black;

    border-width: 3px;
    border-style: solid;
    border-color: black;

     

    That kind of shorthand is awesome and handy.

    @blakeyrat said:

    I guess what CSS is kind of doing is they have a class "border"

    class "border"? No, it's a property. Members  "width", "style", and "color"? Those are properties too.

    @blakeyrat said:

    a custom constructor

    That term doesn't even apply in CSS.

    @blakeyrat said:

    JavaScript doesn't really have such a concept of "constructors" or "accessors".

    Why are you dragging JS into this? Style in JS was tacked on and it's rather poorly implemented, but we're talking about CSS here, not JS.

     

    You've never done any CSS at all, have you?

     



  • @blakeyrat said:

    But then a few nerds started masturbating to the CSS manuals so now we've got to deal with the rabid mutant growths of people that grew from those stains and are now trying to get us to use CSS for every damned thing.

    By all means, have fun making your site with tables and have it easily port to mobile devices that aren't the iPhone. Then let's see how well your pages survive when you apply accessibility tools to the page such as screen readers, large font stylesheets, etc. Usually the "I love tables because I can't be bothered to learn a few CSS rules" crowd says "who cares, it looks fine on the desktop".

    Tables are still important, but for their original purpose, which was displaying TABULAR data, not creating layouts! That would be like someone sending you their resume typed in Excel rather than Word. Sure, it "works", but have fun exporting that to a PDF, converting it to plain text, or reading it on a mobile device.

    @blakeyrat said:

    They should have called them "tags". Which would make the terminology make more sense.

    Except that HTML already had dibs on the word "tag". Which is correct since you are "tagging" various parts of a document to indicate its markup.

    The term "class" in CSS also makes sense since you are "classifying" said element with it. For example, if you have a "tab" class, you are specifying that all elements with that class are tabs.

    @blakeyrat said:

    The CSS people picked "float" as a layout element when "float" is a fucking TYPE in JavaScript

    CSS is a system of DOM selection, not a programming language. The two don't overlap in any way. Just because they happen to both work on web pages doesn't mean they have to somehow be mutually exclusive in their attribute naming! If that were the case, why not get on HTML's case for having an i tag for italics? Don't they know that lots of javascript uses i in for loops!?

    Float makes perfect sense since it's used to do what typesetters call "floating" an element within another element. The original intent was to be able to float an image inside a block of text such that the text would wrap around it. If you've ever had issues with clearing on floats, that's because it was intended to work this way from the beginning.



  • @dhromed said:

    He means textual columns in a single element. It's in the spec, but support is sordidly lacking.

    Which is sort of silly to begin with since a web page is NOT a print document. Columns of text would force people to scroll constantly to read an entire article on a page.



  • @blakeyrat said:

    The best thing to do is what you've been doing, ignore them.
     

    Yes.

    @blakeyrat said:

    @BC_Programmer said:
    it has "classes" (well, something it calls classes that are totally different from classes in any other fucking language I've ever seen)

    They should have called them "tags". Which would make the terminology make more sense.

    CSS has selectors for tags and classes. Also for tags with classes, tages with several classes, tags with an id, tags with and id and a class, and many many more.

    @blakeyrat said:

    The names are completely incompatible with DOM and JavaScript! Those dashes don't work in variable names

    +1 suck.

    @blakeyrat said:

    Everything in CSS has a completely different name in DOM! But at least it's a predictable pattern right? Nope!

     Yes it is. Are you high?

    @blakeyrat said:

    The CSS people picked "float" as a layout element when "float" is a fucking TYPE in JavaScript,

    Float is an unfortunate name, but the align attribute of images does the same and is equally unfortunate.

    I'm again not sure why you're dragging JS into this. Also, float is not a type in Javascript. It's a reserved keyword, but it's not used at the moment.

     

     

     



  • @BC_Programmer said:

    idiots telling me that I should replace my simple table layout with a bunch of DIV tags.
     

    You should replace it with proper structural elements, not "div tags". Divs are a part of that, but the divs vs tables argument is a false dichotomy.

    There are times, however, when a table for basic structure makes more sense, as it's inherently grid-based. Web applications can often benefit from scaffolding in a big table. I just implemented a clien't homepage that was banner circus, and there was no way I could have properly used CSS for that crazy random shit. So I made it a table.

    @BC_Programmer said:

    CSS has its place, but it seems stupid to replace something that works perfectly fine and is short and relatively simple

    Tables are not short. They do not work perfectly fine. They're rigid pieces of shit that often do not respond to simple height/width commands, because the browser will simply say: Nah, I don't feel like honoring your height. I'll make up my own.

    @BC_Programmer said:

    Also side from the obvious fact (that has been noted) that the syntax is different from damn well everything else as far as web development is concerned

    That is true, but what sysntax would have suggested?Javascriop object-literal notation comes to mind. I think that would work well.

    @BC_Programmer said:

    there is a form of nesting, but the actual property names may as well be random strings combined with hyphens. "shit, was it text-inner-padding? text-padding-inner? padding-text-inner? padding-text-outter-padding-inner-border-width-padding?

    What does nesting have to do with the nonexistant properties you just blurted out? Nesting applies ot the selectors, as in, "Give me all descendant LI elements in this div with class 'menu'."

    @BC_Programmer said:

    Was it case sensitive?

    Yes.

    @BC_Programmer said:

    damned if I remember. fuck. I give up.

    CSS is a very, very simple language. As a programmer, you should not have a hard time with it. There's a reference at W3schools if you need it. I'm not sure why you're expending all this energy ranting about something that I can teach to any intern in a matter of hours.

    @BC_Programmer said:

    And of course ask a colleague what it was and they just say "GO TO W3SCHOOLS U FUXOR"

    They are idiots. The spec is a thing you may want to casually read once to understand what the W3C was trying to do, and to explain some behaviour of browsers. It is not a reference. Misread your W3 as W3C. Anyway, Here. You're welcome.

    @BC_Programmer said:

    with a bunch of javascript hacks and messy CSS positioning "just because"

    Or, don't do that.

    @BC_Programmer said:

    IE's Column attributes, and then later use Mozilla and Chromes standardized Vertical-Columnized-Space attributes

    A very problem I have is all these fucking vendor-specific property prefixes. To get a proper round border, you need about seven-thousand properties, and IE doesn't support it at all.



  •  For the record:

    • some property-naming and allocation is rather abitrary in CSS. We have text-transform:uppercase|lowercase, text-decoration:[underline[ overline][ line-through], white-space:nowrap, font-style, font-weight, and a number of others that basically just require rote memorization.
    • Float in CSS is kind of a black art. Poor idea, poor spec, poor implementations.
    • I wish it supported vertical-align on any element instead of just table cells.

    That's a couple things I can come up with.

    On the whole, it's more powerful and flexible than a strict table layout.


  • :belt_onion:

    There is only one way to get rid of all this HTML, CSS and Javascript nonsense and that is to move to a RIA technology like for example Silverlight. WYSIWYG always and everywhere (only depending on the availability of the plug-in for the desired platform)



  • @bjolling said:

    There is only one way to get rid of all this HTML, CSS and Javascript nonsense and that is to move to a RIA technology like for example Silverlight. WYSIWYG always and everywhere (only depending on the availability of the plug-in for the desired platform)

    We have had Flash for many years. But now Compu'er says no!


  • :belt_onion:

    @Zemm said:

    @bjolling said:
    There is only one way to get rid of all this HTML, CSS and Javascript nonsense and that is to move to a RIA technology like for example Silverlight. WYSIWYG always and everywhere (only depending on the availability of the plug-in for the desired platform)

    We have had Flash for many years. But now Compu'er says no!

    How many Flash developers you know that are constantly bitching about how their layouts break in different browsers and how they have to chant black magic spells to make it all work in the same way?



  • @Soviut said:

    @blakeyrat said:
    It doesn't help that CSS sucks shit, either. "You're still using a table layout in 2008?" "Yeah, I have these things called 'columns of text'. They were invented in the 17th century. CSS still doesn't fucking do them."

    Yet every web page out there using standards compliant CSS has columns without using tables. No offense, but this seems to be the attitude developers have who are "forced" to work on CSS/HTML in their web applications. Designers figured it out a long time ago and moved on.

    Yeah, but:

    1) The columns don't reflow, which means they have the appearance of columns, without the *point* of columns. (Table-based layout columns don't reflow, either, so CSS offers no improvement in this area. Just more typing.)

    2) All of those column layouts are *hacks*, using the "float" selector in ways its not intended to be used.

    Additionally, for the other non-column features I mentioned, you can bet your ass designers would be all over them if they knew the problem could be easily solved... those "expanded CSS" JavaScript hacks floating around (which add things like variables and math to CSS) are hugely popular, and any designer who learns about them generally starts using them right away. From my experience at least.

    But the real problem is the usual one with the W3C, they defined a shitty technology, never bothered to test it with real-world sites or real-world developers, and now we're all stuck with it. Fixes will come in a decade if we're lucky, but more likely they'll never come at all, and we'll just be wallowing in shit our entire career.

    The entire point of things like JQuery is to de-shit-ify DOM. There are other JavaScript libraries designed to do-shit-ify CSS. Good DOM? Good CSS? Wouldn't have these... there would be no need for them.



  • @dhromed said:

    @blakeyrat said:

    I guess what CSS is kind of doing is they have a class "border"

    class "border"? No, it's a property. Members  "width", "style", and "color"? Those are properties too.

    What?

    Look, I'm just trying to use a metaphor to make sense of the damned thing. Properties inside of properties doesn't make sense in my head. If you consider "border" a class (like a class in C++, not that weird thing CSS calls a class but isn't), then I can make sense of it. So leave me alone. :)

    @dhromed said:

    @blakeyrat said:

    a custom constructor

    That term doesn't even apply in CSS.

    Metaphor. Metaphor. Relax. Not everything people type is literal, and it's CSS that has the weird-ass syntax, not me.

    @dhromed said:

    @blakeyrat said:

    JavaScript doesn't really have such a concept of "constructors" or "accessors".

    Why are you dragging JS into this? Style in JS was tacked on and it's rather poorly implemented, but we're talking about CSS here, not JS.

    What are you talking about? JS doesn't have any style support. DOM does. And JS has access to DOM. I might not be super-master-uber-CSS-person, but at least I know the fucking difference between JavaScript and DOM.

    @dhromed said:

    You've never done any CSS at all, have you?

    Yes, I've done a ton. I've just never been about to wrap my head around it. Remember? I said as much earlier.

    In that post you just skewered, I was making another attempt of wrapping my head around it. But I guess Mr. "hit me up when you need a pointer" got too pissy at my terminology to tolerate that, so I apologize.



  • dhromed: I haven't had to memorize any more CSS since I started using NetBeans as my programming editor. It auto-completes CSS styles.



  • @Soviut said:

    By all means, have fun making your site with tables and have it easily port to mobile devices that aren't the iPhone. Then let's see how well your pages survive when you apply accessibility tools to the page such as screen readers, large font stylesheets, etc.

    What? Mobile devices have to display tables the same as every other type of web browsing device. I have an Android phone, and table-based layouts look fucking fine on it... I'm not sure what your point is here.

    Same applies to accessibility devices. The introduction of CSS didn't miraculously make tables disappear from the HTML standard... if it displays HTML, it *has* to display tables. If you have a large font stylesheet, that would apply to tables as well.

    @Soviut said:

    That would be like someone sending you their resume typed in Excel rather than Word. Sure, it "works", but have fun exporting that to a PDF, converting it to plain text, or reading it on a mobile device.

    You can convert it to a PDF using Save As..., you can convert it to plain text using copy&paste, you can read it (as Excel) on any mobile device other than the iPhone (and quite possibly on the iPhone as well).

    @Soviut said:

    Except that HTML already had dibs on the word "tag".

    Yes, I said that in my next fucking sentence.

    @Soviut said:

    Which is correct since you are "tagging" various parts of a document to indicate its markup.

    It's arbitrary. The only reason you say it's "correct" is because it's established. You could just as easily call it a "flarg" ("is that text in a paragraph flarg, or a div flarg?") and then the word "flarg" would be correct.

    The problem with CSS's use of the word "class" is that the word "class" is already overloaded to the point of ridiculousness, *and* CSS's use allows a single object to have multiple classes attached to it, which pretty much *no* other user of the word "class" does.

    The word "tag" on the other hand, when you see "tag" you instantly think, "oh this object can have half a dozen tags on it." So while "tag" isn't ideal *not* (because of its use in HTML), it's still more descriptive than "class" is.

    @Soviut said:

    CSS is a system of DOM selection, not a programming language. The two don't overlap in any way.

    They should overlap in some ways. For example, commenting syntax. Not overlapping in any way is pretty much precisely one of my complaints, Mr. Didn't Read My Post Carefully.

    @Soviut said:

    Just because they happen to both work on web pages doesn't mean they have to somehow be mutually exclusive in their attribute naming!

    Naming is for humans. Humans don't like being confused.

    @Soviut said:

    If that were the case, why not get on HTML's case for having an i tag for italics? Don't they know that lots of javascript uses i in for loops!?

    JavaScript doesn't specify the variable name in loops; it's user-defined. If JavaScript defined "i" as the standard variable name, I would probably complain about it. But... thanks for trying to paint me as a hypocrite using a completely irrelevant example, always a good debating tactic.

    @Soviut said:

    If you've ever had issues with clearing on floats, that's because it was intended to work this way from the beginning.

    Of course it's intended to, but its main use is a stupid hack to make fake-columns. That's a point I brought up: columns in CSS are as much a hack as columns in tables. You're confirming my complains in a way that makes it look like you're opposing them, which is weird.



  • @dhromed said:

    @blakeyrat said:

    Everything in CSS has a completely different name in DOM! But at least it's a predictable pattern right? Nope!

     Yes it is. Are you high?

    No.

    Look, the rule is: convert dashed names to camel case names except for the following elements: float, which becomes either cssFloat or styleFloat depending on the browser.

    You're telling me that's a predictable pattern? You're the one who is high. (I know you are but what am I?)

    @dhromed said:

    I'm again not sure why you're dragging JS into this. Also, float is not a type in Javascript. It's a reserved keyword, but it's not used at the moment.

    I'm not fucking dragging JS into it. I'm talking about DOM accessors. The fact that DOM had to rename their accessors to prevent a naming conflict with JS is also another huge WTF.

    The fact that you're being a pedantic turd over whether "float" is a type or not, when the fucking *point* is that it's a reserved keyword is a huge WTF, especially when you know by now that here's nothing I hate more than pedantic turds.



  • @dhromed said:

    @BC_Programmer said:

    damned if I remember. fuck. I give up.

    CSS is a very, very simple language. As a programmer, you should not have a hard time with it. There's a reference at W3schools if you need it. I'm not sure why you're expending all this energy ranting about something that I can teach to any intern in a matter of hours.

    CSS is not a simple language; I've been trying to learn it for 5 years and failing. Even having memorized most of the selectors, and using a good IDE, I still can't write a piece of CSS and see what I want to see in less than a dozen tries.

    Will the intern *really* learn it, or will they learn enough to know how to guess-and-check until they get the right layout?

    @dhromed said:

    Misread your W3 as W3C. Anyway, Here. You're welcome.

    His point is that W3Schools is a shitty site, and yet somehow only of the few/only sites that provided any reference at all for this type of thing. Is W3Schools really the best there is?



  • @Zemm said:

    @bjolling said:
    There is only one way to get rid of all this HTML, CSS and Javascript nonsense and that is to move to a RIA technology like for example Silverlight. WYSIWYG always and everywhere (only depending on the availability of the plug-in for the desired platform)

    We have had Flash for many years. But now Compu'er says no!

    Flash AS3 and Silverlight have already fixed all of Steve Job's complaints, the problem is:

    1) Flash developers are still shitty. They still write a "while(true)" where they should be using a callback. There's nothing Adobe can do, technologically, to fix that.

    2) Most Flash creatives still around are AS2, which sucked shit for many, many years, and they aren't going away any time soon.

    If Silverlight had more penetration (God bless you, Netflix!) I'd be all over it forever. I love, love, love Silverlight... especially in a thread talking about the retardness of DOM and CSS, I can't think of a web technology that got it more Fucking. Right. On. The. Ball. than Silverlight.

    (AS3 is pretty on-the-ball too, but only because they ripped-off Silverlight. And still didn't do it as well.)

    (Sorry about the mega-post here, email subscriptions aren't working, so I kind of randomly came across these posts one at a time.)



  • @blakeyrat said:

    It's arbitrary. The only reason you say it's "correct" is because it's established. You could just as easily call it a "flarg" ("is that text in a paragraph flarg, or a div flarg?") and then the word "flarg" would be correct.

    It's not arbitrary. Think, for example, about tagging animals in the wild to keep track of them. You attach something to them to indicate some sort of status. Could there be a better terminology? Probably; if I were to design a markup language from scratch and inventing the terminology that goes along with it, I probably wouldn't jump to "tag". But it's not totally arbitrary, and doesn't work just as well as "flarg".



  • @toth said:

    It's not arbitrary. Think, for example, about tagging animals in the wild to keep track of them. You attach something to them to indicate some sort of status. Could there be a better terminology? Probably; if I were to design a markup language from scratch and inventing the terminology that goes along with it, I probably wouldn't jump to "tag". But it's not totally arbitrary, and doesn't work just as well as "flarg".

    Oh for Christ's sake. It's not completely arbitrary, obviously using the word "number" would have been foolish. You need to forgive me, I always forget this board is full of pedants who go after every little tiny trivial detail of your post.

    It's still mostly arbitrary, you still mostly agree with my point (your response here says as much), so I don't fucking know why you posted this fucking shit when you actually agree with me. But, hey! It's the DailyWTF board! So I should expect that.



  • @blakeyrat said:

    The fact that you're being a pedantic turd over whether "float" is a type or not, when the fucking *point* is that it's a reserved keyword is a huge WTF, especially when you know by now that here's nothing I hate more than pedantic turds.

    The blakeyrat pattern: you rant about something, then when people point out that some of your points were invalid, you say "that's not the point" or "you're a pedantic turd". Guess what: that deminishes the value of your rant rather than reinforcing it.

    Which is a pity, because you do often have a point.



  • @b-redeker said:

    The blakeyrat pattern: you rant about something, then when people point out that some of your points were invalid, you say "that's not the point" or "you're a pedantic turd". Guess what: that deminishes the value of your rant rather than reinforcing it.

    Probably, but I want people to focus on the point of what I'm saying, and not on the stupid typos and other errors that come out of my brain.

    Ok; so "float" isn't a type in JavaScript, it's a reserved keyword. Does that change the *point* that the W3C was stupid in picking a CSS selector that conflicted with it? No. So why bother "correcting" my little brain fart if it doesn't add to the discussion in any way?

    Actually, now that I think about it, I think it swings the other way... instead of me diminishing the value of my rant, it's *other people* trying to diminish the value of my rant by basically saying: "your opinion is invalid because you made a typo! Nyah nyah!"

    Edit: it doesn't help that I don't have the nitpicking type of brain. So I can't pre-read my posts and pick out the places nitpickers are likely to attack, because I simply don't see them myself. (Unlike, say, Raymond Chen who used to run the "nitpicker's corner" where he pre-nitpicked his own posts to shut up the nitpicking comments.)

    @b-redeker said:

    Which is a pity, because you do often have a point.

    If I have a point, please pay attention to the point. If you want to debate me, please debate me on the points I bring up, not on the typos and other brain farts that end up on the post. That's all I ask.



  • @blakeyrat said:

    @toth said:
    It's not arbitrary. Think, for example, about tagging animals in the wild to keep track of them. You attach something to them to indicate some sort of status. Could there be a better terminology? Probably; if I were to design a markup language from scratch and inventing the terminology that goes along with it, I probably wouldn't jump to "tag". But it's not totally arbitrary, and doesn't work just as well as "flarg".

    Oh for Christ's sake. It's not completely arbitrary, obviously using the word "number" would have been foolish. You need to forgive me, I always forget this board is full of pedants who go after every little tiny trivial detail of your post.

    It's still mostly arbitrary, you still mostly agree with my point (your response here says as much), so I don't fucking know why you posted this fucking shit when you actually agree with me. But, hey! It's the DailyWTF board! So I should expect that.

    Unless "flarg" is actually a word that I don't know, that wasn't your point at all.



  • @blakeyrat said:

    It's arbitrary

    @toth said:

    It's not totally arbitrary

    We're both saying there's some degree of arbitrary-ness. The only disagreement is the amount of arbitrary-ness there is. Which means you agree with my general point ("a better term could have been chosen".)

    Nitpicking *how many* alternatives to the chosen term there are doesn't strike me as a productive line of conversation.



  • @blakeyrat said:

    They'll also get annoyed if your site doesn't "validate", as if that means anything.
    I don't care if your html doesn't validate, as long as you're not plastering the badges all over your site that say it does. Sticking the badge on your site doesn't cause it to be magically valid, it makes you look like a liar.



  • @blakeyrat said:

    Actually, now that I think about it, I think it swings the other way... instead of me diminishing the value of my rant, it's *other people* trying to diminish the value of my rant by basically saying: "your opinion is invalid because you made a typo! Nyah nyah!"

    I don't read it that way. If I read dhromed's post, he agreed with you on three points, gave more info on two other points (where he clearly knows shit) and in one case disagreed with you. That's quite different.

    For the record, I don't think "Are you high" added anything to the discussion either.

    Back to our scheduled program - CSS suXXorz, so do tables and web standards are a mess. Note to self: investigate this jQuery thingamajig which people seem to agree is pretty good.



  • In short, the entire HTTP/HTML/CSS/JS technology stack is four kinds of shit piled on top of each other.

    I can't wait for Google to come up with a sane, integrated alternative and add support for it to Chrome.



  • @blakeyrat said:

    But I guess Mr. "hit me up when you need a pointer" got too pissy at my terminology to tolerate that, so I apologize.
     

    I AM SO PISSED OFF RIGHT NOW. -> INSTABAN

    I had no idea you were being metaphorical or whatever. 

    In CSS, you have selectors, which are a kind of nephew to XPath, as they select a subset of elements. Those elements are then assigned the property values that you specify. That's all. A CSS class means semantically the same as inprogramming languages, in that it's a "thing of a certain kind". The implementation is more like, as you say, tagging, and Objects, respectively, so that's where the meaning of the word clashes.

    I hope I'm not being too patronizing or vague, but you say you can't wrap your head around it and don't ask a direct question so I can't give a direct answer.



  • @blakeyrat said:

    @blakeyrat said:
    It's arbitrary

    @toth said:

    It's not totally arbitrary

    We're both saying there's some degree of arbitrary-ness. The only disagreement is the amount of arbitrary-ness there is. Which means you agree with my general point ("a better term could have been chosen".)

    Nitpicking *how many* alternatives to the chosen term there are doesn't strike me as a productive line of conversation.

    If you want to be extremely literal about it, any term is going to be arbitrary (except perhaps "text-which-you-place-around-shit-to-tell-you-stuff-about-the-shit-therein", which seems a bit unwieldy). My point is that "tag" is an entirely sensible term to use, even if it's not one that I (or you, apparently) would immediately use if it were up to us. Whereas "flurg" is not.



  • @blakeyrat said:

    CSS is not a simple language; I've been trying to learn it for 5 years and failing.
     

    I don't understand why that is. It really is a rather rudimentary descriptive syntax. It doesn't even support variables and dynamic stuff. Regex is more complex.

    Maye you can explain your woes in more detail, then I might assist you into a braver, newer world where pink unicorns are slightly more likely to exist.

    @blakeyrat said:

    Is W3Schools really the best there is?

    It don't take much.

    @blakeyrat said:

    Will the intern *really* learn it, or will they learn enough to know how to guess-and-check until they get the right layout?

    Depends on the intern.

     


Log in to reply