text:
Monday, February 02, 2009
CSS and the meaning of life
I would love to respond to all the comments, but the volume is pretty overwhelming. But this one really stands out as my favorite:
Yes, you are an idiot.
Why mince words? I confess, I am not a CSS expert. I all but admitted as much in my piece, which is why I based my example on code that was not written by me, but by someone who holds themselves out as being a CSS expert. Maybe I'm so idiotic that I can't even tell a real expert from a snake oil salesman. But I submit that whatever the case, I am an very good company. The mere fact that the CSS wars have gone on for as long as they have is ample evidence that there are a lot of people out there who do not find CSS a model of intuitive clarity.
I don't want to re-fight the CSS wars here. Instead I want to focus on some things that surely we can all agree on, to wit -- that the CSS wars have been going on for a long time, that a lot of people have put a lot of effort into fighting them, and that very little progress has been made towards resolving the dispute -- and ask the following question: What conclusions can we draw from these observations?
One possibility, of course, is that one side is right and the other side is wrong, and that the people on the wrong side are simply dim-witted or intransigent, or both. I try (not always successfully) to take seriously the possibility that I could be wrong whenever I write anything. Maybe Dr. Howard R. Fine is right and I really am an idiot. One of the many problems with idiocy is that it does not yield readily to introspection. I take some comfort from the fact that the vast majority of the people accusing me of idiocy don't actually dispute any of the points that I made. But maybe I'm such an idiot that I'm not even worth educating (hard to tell from where I'm sitting). So the best I can do is to leave that on the table as a possibility and move on to the next option, which is, I believe, if it not a more plausible hypothesis, at least more promising as a potentially productive line of inquiry.
I humbly submit for your consideration the possibility that different people want different things out of life. It seems self-evident, but it can sometimes be surprisingly hard to wrap your brain around the fact that someone else doesn't want the same things you do. One person wants long-term maintainability while another just wants to get it done as quickly as possible. One person wants their web site to be accessible to blind people, another doesn't. One wants SEO, another doesn't care.
Underlying my conclusion that tables were the way to go was a tacitly assumed quality metric that not everyone shares. At the time I was writing I was not even consciously aware of some aspects of my own quality metric. For example, accessibility to the blind had not even entered my mind. It's just not something I have ever had to deal with, and about which I know next to nothing.
There are other aspects of my quality metric about which I was aware, but about which I was not explicit. For example, I tacitly assumed that having content spill out beyond the boundaries of its containing DIV is Bad. I think most people would agree on this and other tacit aesthetic judgements that I made, but not all would. A blind person, for example, couldn't care less where on the screen something ended up. (I'm actually guessing about this. I really know very little about how blind people navigate the web. Maybe someone can enlighten me.)
There are likewise tacit aspects of other people's quality metrics that manifest themselves in their comments. For example, a lot of people seem to think that anything that was done in the 1990's is automatically bad. It is certainly true that tables can be, and during the 90's often were, badly abused. But IMO that is no reason to throw out the baby with the bath water. It's overreactions like that that led to throwing out Lisp with the rest of AI during the 80's, a mistake from which computer engineering is still not fully recovered.
And then there is one element of my quality metric which seems to be at the heart of the controversy: I believe that computers are meant to serve people and not the other way around. That means that if something inherently simple is difficult to do, it's wrong.
Not everyone agrees with this. A surprising number of people like things to be difficult. I have never understood this, but it is a fact. Some people revel in the intellectual studliness of mastering, say, C++ template programming or x86 assembler. I don't. I think C++ is a pain in the ass. Life is short, and I would rather spend my allotted time skiing or making love to my wife than worrying about whether or not I need to define a virtual destructor in my base class in order to avoid memory leaks. And that means that when I want, say, for something to appear centered on the screen, I want to be able to do it by typing "center" rather than "margin:auto". If I can't tell a computer to center something by saying "center", then as far as I'm concerned the computer is wrong, not me.
Like I said, not everyone buys in to this worldview. I don't get it, but it is surprisingly common. I think it might have something to do with job security. I first encountered the complicated-is-beautiful mindset when I was working for NASA. I had an idea for how to simplify spacecraft sequencing and make it less error prone. I figured everyone would love it. To the contrary, the establishment fought the idea tooth-and-nail (and still does to this day). And this attitude is everywhere. It's the reason the tax code is so fucked up. It's the reason the law is so byzantine. It's the reason that languages like C++ and Perl thrive.
I like simplicity. I think the computer should have to conform to my brain and not the other way around. That's why I like tables. They are simple, and they work -- for some value of "work".
Different people have different ideas of what it means to "work". For me, the ratio of effort expended to the quality of the visual appearance on the screen is paramount. I want to put forth as little effort as possible to get something that looks decent. (Yes, I'm a lazy bum. It's my greatest strength. Laziness is a powerful motivator for finding more effective ways of doing things, and it has served me quite well.) Everything else is secondary. I don't have any blind customers. I am not in any business where SEO really matters all that much. But your situation, of course, could be different.
That said, I do believe that some of the things said in favor of CSS and against tables are just flat-out bogus, and to point out some of those was the purpose of my essay. CSS is touted as separating layout from content. It doesn't. Maybe with the new table layouts in CSS3 that will change, but one of the external constraints that I have to live with is that what I do has to work in IE6. While the popularity of IE6 is mercifully in decline, the sad fact of the matter is that it still has a significant market share, and I am not in a position to ignore that much as I would like to.
Another common thread is that "tables are for tabular data, not layout." Why? Just because they are called tables? Here's a news flash: HTML has no semantics beyond how it is rendered! (That's not quite true. Links have semantics beyond their renderings. And maybe label tags. But nothing else in HTML does.) This is the reason that the "semantic web" is still a pipe dream. HTML was supposed to have semantics, but it doesn't. Giving real semantics to a markup language is really really hard. The history of computer science is lousy with failed attempts, from KRL to SGML.
Finally, a lot of people pointed to the Zen Garden as evidence of CSS's power. I remember seeing the Zen Garden for the first time and being blown away. But if you look closely you will see that it's not really CSS that makes the Garden beautiful, it's images! Don't get me wrong, the Garden is lovely, occasionally spectacular. But how much of the loveliness is due to CSS and how much is due to photoshop is far from clear. And this is to say nothing of the fact that the Garden completely sidesteps one of the most thorny issues for CSS, namely, dealing with dynamic content. If you know ahead of time what your content is going to be it's not hard to write CSS that will make it look nice. The challenge is writing CSS that looks good if you don't know ahead of time what your content is going to be. The Garden, beautiful as it is, has nothing to say about that.
I want to point out one more thing: I am not bashing CSS. I like CSS. Its goals are the right ones, and in many ways it is well executed. You can do some really cool things with it, often without having to work very hard. But layout -- at least the three-column layout that everyone seems to want -- isn't one of them.
85 comments:
- Unknown said...
I love tables, and if used correctly and with a little forethought it makes things just as easy to change later on as a pure CSS layout.
I use CSS for presentation (cascading style sheets), as thats what it does best.
Tables just work, without hacks, work arounds, or HOURS of testing to ensure it works in various browsers.
Only to be thrown out by unexpected content later down the line or additional coding in the background to 'sanitise' unexpected content.
I believe in KISS, which has worked well for me over the years (less development time, more productivity).
As long as tables are simpler than other solutions I will use them. - 2/03/2009 2:33 AM
- scrambledheads said...
What CSS wars? who, apart from you thinks that CSS is the not way to do things correctly and simply?
Css for Dynamic content is trvial? and even were it not there is a straightforward, simple way to serve CSS dynamically by PHP, Perl, or any other server side language. - 2/03/2009 2:51 AM
I'm a wee bit confused by your reference to the 'CSS wars' too. I wasn't aware that I've been working in a hotly-contested battle field recently.
For me, the bottom line is that tables might 'just work' but it's incredibly short-sighted to do what will 'just work' for the developer. You might not have to worry about SEO or accessibility in your web development career - for example, you might be writing an in-house intranet or utility web app rather than a public-facing website.
But SEO and accessibility are things that we who make websites for multiple clients (e.g. New Media/Web dev agencies) have to worry about. For a start, in both the USA and the UK, there is a very real danger of being taken to court if your site isn't usable and accessible to people suffering from disabilities. And my clients tend to get a bit tetchy if people can't find their public-facing website through Google or your search engine of choice.
Semantic code would be achievable through HTML if people would stop using tables for layouts. That way, Google would see table tags and be able to assume it's showing tabular data.
 would mean a paragraph, the multi-levl <h-n> tags would imply the logical structure of the web page, and so on. Google takes these things into account, and by adhering to them, you future-proof the site you are building to be re-used by some other system that can understand the semantics of HTML. The semantics of HTML can also be aided by giving meaningful names to your IDs e.g.
 instead of
.
And quite apart from anything else, I just find div-based code easier to parse, interact with and develop, than the noisy tag-soup that tables forces upon you. Yes, there is such a thing as div-itis, but one section of a div-based layout typically consists of

Compared with

I know which I prefer working with! Especially when you get into dynamic websites that require either logic code interspersed or, at best, a templating language to further confuse things. - 2/03/2009 3:05 AM
- {CODE} M0nk3y said...
1. your css example defiantly is not written by a css expert
2. these css wars you are talking about do not exist - 2/03/2009 3:17 AM
- Unknown said...
Well, it's really simple:
The world's a flat disc. Don't get to its border, you'll fall over.
This crap people believed several hundrets of years ago. Things go on. So webdevelopment.
But you're acting like someone who still believes the fat bullshit up there.
I think you're a person that writes his letters in Excel. There's no difference … - 2/03/2009 5:30 AM
- Phil Evans said...
> HTML has no semantics beyond how it is rendered!
No. You're very, very wrong about this. The whole field of SEO exists because you are wrong. The title element, depths of heading, everything is used. Just because you can't see it being used, it doesn't mean it isn't.
It's commonly said that Google is the biggest blind user in the world. If your content isn't blind-accessible, it's likely to be less Google-accessible. Accessibility is for everyone. - 2/03/2009 5:36 AM
- Andrew said...
I'm going to have to agree with philip and maybe try and elaborate a bit more on his point.
The bottom line of HTML, is that it is in fact a markup language. Never mind if CSS is even remotely intuitive, because it's not.
What's less intuitive about it still is using it frequently enough to have developed a naming convention for your classes and divs so that you can easily review your css and know what to change when the client has their say.
I digress. If your using tables to display anything other then tabular data, your breaking the internet. - 2/03/2009 5:52 AM
- Tyler said...
HTML has semantics, and I'm not sure why you think it's that hard to apply them. H1-H6 are clearly headers of varying importance. P is short for Paragraph, DIV is short for Division, EM for Emphasis.
Each tag has meaning, and it has nothing to do with how it's rendered. It's rendering is based only on the default CSS for that element, and can be drastically changed by a few simple lines. You could easily write an entire page made up of only A tags if you wanted, but the semantics would be wrong.
There are two main problems with your initial argument. First, you are expecting DIV-based layout to behave like tables, which don't have the right semantics for layout. If I have a left column that has a lot of text, I generally want it to flow down, not make my main content smaller. Second, and I think this is the same problem a lot of people are seeing, your argument boils down to "it's hard, so I'm not going to try". Now, I'm all for doing as little work as is necessary, but I also care about doing it right. Instead of actively deciding how you want your layout to work, you're handing it off to each browser's interpretation of TABLE. Yeah, it takes some work to learn why your first idea of a three column layout doesn't work, but as soon as you get that you have to define the behavior you want, and learn the tools to create that definition, it becomes very easy. It's true, there are still browser bugs, but they're much better at this point than they ever have been, and it seems they're getting better.
If you really don't want to develop your own layout, use one of the many good frameworks: 5 Popular CSS Frameworks, 9 CSS Frameworks, 5 More CSS Frameworks, Top 12 CSS Frameworks - 2/03/2009 6:00 AM
- Derek said...
For me, CSS got a lot sweeter when "YUI Grid Builder" came out. It generates proper working N-column layouts for you. Part of the "Yahoo User Interface" library. Awesome!
- Vladimir said...
Ron or Erann you are not an idiot. You are genius! Thank you for your free marketing lesson. Everyone in the blogosphere is talking about you.The title was fantastic "Why CSS should not be used for layout". Pure contradiction. Can I suggest another title: "Why Windows is better the Linux". I can guaranty min. 50.000 visitors ;)
- Naum said...
Re: the CSS Zen Garden thoughts, I'd say /bingo.
They look really great for a toy site, where you're just dressing up some static HTML, with background images for your headers and article headers…
And the site only looks good if someone doesn't scale the font up or down a size or two (as which you pointed out, text will overflow (or be truncated, if one allots for this possibility) the bounds) — web is supposed to have documents appear decently on a variety of platforms… - 2/03/2009 6:22 AM
- Carl said...
I agree with you on much of what you said and thanks for not attacking those that called you an idiot, they are the people I would like to punch in the face. Anyone who so quickly jumps to call someone an idiot for simply stating a point that many others have dealt with is just an asshole that needs a good beating. The internet is full of disrespectful pricks. Those people are the epitome of what is wrong with society.
- Unknown said...
Can't agree more with "computers are meant to serve people and not the other way around. That means that if something inherently simple is difficult to do, it's wrong."
- Unknown said...
One thing that I think everyone fails to take into account when considering CSS based layouts is that more often than not, the CSS is contained in a separate document. Now in my opinion, when developing in tables, I can look at the code and see the table structure, and render what the website is supposed to look like in my head. When I'm looking at a site made in divs, this is much harder to do. Especially if all the positioning code is contained in a separate document...the CSS.
As far as I'm concerned, a hybrid is the best way to go, using tables to block out the boxes on the site and using CSS to make minor adjustments and keep standard colors and sizes for links and such throughout the site.
I think that people put way to much emphasis on being semantically correct, and having things perfect for SEO, even if its to the detriment of the developer.
If SEO and semantics are so important, a new layer should be added to HTML or CSS or XML that is purely for bots and search engines and screen readers, that allows a developer to markup the semantica flow of the document, irrespective of the actual physical layout of the code.
So I whole heartedly agree with the author....Bravo sir. - 2/03/2009 7:23 AM
- Derek said...
I should also have said that your article really challenged my preconceptions. I have been pushing for "tables for tabular data, css for all else" for so long that I had stopped questioning it. But you are totally right. Occam's Razor is perhaps the only true law of the universe. If it's not simple, it's wrong. Optimize the interface above all else. And I, for one, believe you're right. Tables are better at doing the overall wrapper layout. Sure, fill'em up with css-ified widgets... but save yourself some trouble and tablify the foundation. I can feel a weight being lifted from my chest as I say that. [ahhhhhhhhhhh]
- J Wilson said...
Yeah, YEAH! And you know what?! I shouldn't have to use Javascript for fancy blinking text! I just want the BLINK tag back! In fact, do away with Javascript completely, it's too complicated.
The problem with your argument is follows: Tables are containers for tabular data. We, the multitude of the Web, are trying to make this place accessible to everyone, and that means we have to contain our data in proper structures. Someday, we might move on to pure XML, or something totally different. But as it stands, using what is essentially an HTML hack (a long lived one admittedly) is degrading the quality of information on the web. We are trying to make information available across the world - and if it's all in tables how are we going to sort it out?
Not to mention, you can make DIV tags behave exactly like tables and rows and columns and even table headers. Crack open a CSS book and explore the world of possibilities. Quit dragging us back into 1998. - 2/03/2009 7:33 AM
- Unknown said...
Quick question...whats the difference between divs with id's and tables or td's with id's as far as semantics go?
- gandergentry said...
...perhaps you should look at stu nicholl's work before calling somebody else an expert.
have you ever heard of "float"?
also, tables crash in a number of browsers...not a good thing. - 2/03/2009 8:23 AM
- Unknown said...
"also, tables crash in a number of browsers...not a good thing"
Tables do crash? Really? Never seen an html table crashing since 1997 on Amiga browsers.
Please give an example. - 2/03/2009 8:37 AM
- Ron said...
> What CSS wars? who, apart from you thinks that CSS is the not way to do things correctly and simply?
> I'm a wee bit confused by your reference to the 'CSS wars' too.
You're both kidding, right? If there's no CSS war, why did my little essay attract nearly 80 comments on my blog and over 500 comments on Reddit?
> > HTML has no semantics beyond how it is rendered!
> No. You're very, very wrong about this. The whole field of SEO exists because you are wrong. The title element, depths of heading, everything is used. Just because you can't see it being used, it doesn't mean it isn't.
But those semantics derive from the rendering. If this were not the case then HTML-obfuscated spam would not be possible.
I may need to write a whole 'nuther piece on this. Damn. - 2/03/2009 8:41 AM
- Imagist said...
I don't agree with the original poster's decision to use tables for layout, but his original premise, that DIVS + CSS are fundamentally broken, has a lot of merit.
HTML is PARTLY semantic, but there is still a whole lot of layout implicit in HTML. The big problem is that the W3C doesn't have the guts to do a complete redesign from the ground up, and so has kept most of the problems from SGML. This isn't likely to change, either: they seem to think that they have fixed that problems and can now move on to complicating our lives with horrendous things like DTDs and XML schema tags. - 2/03/2009 8:48 AM
There are 80 comments because you posted a provocative essay contradicting what has rapidly become orthodoxy regarding use of technology in web development. Seriously, I've never heard the term CSS War before your posts.
Re: "Semantics deriving from the rendering" - no, they don't. They derive from the standards that define what tags mean in (X)HTML. It is these standards that mean we can write code that Google (which doesn't 'render' the pages visually when indexing a site) can understand and attach semantic meaning to. This is what is being transgressed by those about to start following your advice.
@Adam "whats the difference between divs with id's and tables or td's with id's as far as semantics go?"
This is totally directed at Ron too, BTW. The difference between div's with IDs and tables with IDs is that a div, semantically simply means "This is a section of the web page." Table markup, semantically, means "OK, here we have a table. Oh, yeah, there's the row, and in that row is some data. Sweet!" There is a whole load of semantic meaning that Google and other search engines can bring to bear on table markup - and if tables are being used purely for layout, then that semantic meaning is being wrongly applied.
That is fundamentally the problem with your advice, Ron. It says a whole lot more to search engines than just "Oooh, make it look like this." And let's not forget that this isn't just a problem for SEO - it's a problem for screen readers. If you mark up page content using div's, screen readers typically just say "Page section: Navigation.... Content...." If you mark up using tables, it will say "Table. Table row. Table cell... content"
It is just the wrong way to mark up content if you care about building accessible and usable sites for all. And as I've said before, this is fast becoming a legal requirement for people who make websites... - 2/03/2009 8:50 AM
- Clone 17 said...
I'd be interested to see a study on "before" and "after" for a simple, hand built, table structured web site that was transformed into a fully css compliant website, and as a result was ranked higher in google, had more hits, etc. Can anyone show quantifiable evidence in support of CSS? All I hear is "It's the right way". Well, where I am from, the right way is the way that gets you launched.
I have done CSS sites, I have done tabled sites, and either way, my clients and my end users really haven't cared.
Using 100% CSS in the real world is more a matter of geek cred than anything else, IMO. I fully admit that 12 levels of nested tables is horse crap. I rip stuff out like that when I see it. But I'm unsure why a single table for the overall site structure is such a big deal to so many people. Yes, I understand accessibility concerns.
At the end of the day, clients want sites that look the same across all browsers and they want it now. You're not getting paid 50% more to spend 50% more time trying to get IE 6 rendering correctly with all the little hacks.
Why should web developers burn literally millions of man-hours just because the brower people and the W3C can't all huddle together and figure out how stuff should render? Think of how many hours have been burned between all the millions of people tasked with creating web sites, just because something was 8 pixels off in IE 6.
Just think about it.
It doesn't happen with tables.
Honestly, I don't even know why I'm posting this, because this isn't the type of argument that people get swayed on. You either think web development is some holy thing to only be done by the professionals, or you think that the web is an open platform that has revolutionized the world and you shouldn't need a degree in markup and design to be able to make a web page. The greatest power of the web is that it allows anyone to put an idea out there. It's not an art gallery. It's the wall of a coffee shop, covered in flyers for local bands and apartments for rent.
IMO, CSS purists are more worried about their profession than they are about people easily getting results on their web projects. I'm more interested in results.
If you're lucky enough to get a few thousand users and people are complaining about accessiblity and whatever else, you can always CSS the site up after the fact.
Bottom line? Don't delay launching your ideas and projects because you're not a CSS master. Just use tables and if it's a big deal later you can refactor to get CSS in place.
Final note: I am not trying to disrespect CSS masters. In fact, one day I'd like to join you. But today? I've got ideas to launch and bills to pay. Table based layout may be less 'correct' but it also 'gets things done quickly'. - 2/03/2009 8:52 AM
- Unknown said...
"you can make DIV tags behave exactly like tables and rows and columns and even table headers"
This is false.
Using javascript you might be able to pull this off, but not with divs, not with content that may be dynamically updated, or have a fluid width.
prove me wrong. - 2/03/2009 8:52 AM
- simeona said...
div { display: table; }
read a book.
Aside from that, you people are making uneducated biased statements on a topic you have NO experience about. Just like with any craft, doing something PROPERLY requires skill and time. Any idiot can slap together a house, but will it function the way it should? hardly.
The key issue you're missing here, and wholeheartedly the first reason that you have no ground to stand on is the fact that you're comparing "tables to css layout". It has nothing ot do with CSS - it has to do with SEMANTICALLY CORRECT markup. Which yes, admittedly, may be a little hard and time consuming to master the styling of, but once you do is significantly faster and easier to work with. Not to mention the endless usability possibilities and maintenance.
It is sad and dangerous that someone with your lack of knowledge gets this much exposure on a topic you apparently know nothing about. and have no place commenting on. - 2/03/2009 9:36 AM
- Michael Aleo said...
You know, Douglas Bowman didn't seem to hate div's and css so much when he wrote this very theme you're using for blogger in under 15 minutes.
Just a thought. - 2/03/2009 9:37 AM
- introspectif said...
I second shy's comment, and the author.
- Unknown said...
Books are great, reality is better.
build a table using ONLY css & divs in the following browsers:
IE6, IE7, FF2, FF3, WebKit, Opera.
- Show that it works the same in each.
- Show that the columns and cells align properly when teh page is resized
- must support resizing and percentage widths
- must support colpan & rowspan.
I'm waiting ;) - 2/03/2009 9:47 AM
- simeona said...
You're missing the point entirely. I have no need to build a layout that acts like a table because that is the improper way to make it display. I can easily assign widths in percentages, make them scale for browsers with bigger fonts and make the layout fluid.
I have no need for col or row spans because they do not fit into a layout structure. If I want a table for tabular data, I will use a table.
As someone who knows what they're doing I've coded hundreds of layouts without tables, some of them probably significantly more flexible than any table-based layout you can put together. It's a matter of knowing what you're doing and not taking the easy way out.
For all of you (and I'm starting to think there are more of you than I'd imagined) who have been living in a box for the last 5 years: http://www.hotdesign.com/seybold/everything.html - 2/03/2009 9:55 AM
- Unknown said...
PS: I would NEVER use Divs to display tabular data, its ridiculous. That's what tables are for.
I wouldn't use tables to build a layout unless i felt it necessary, for a mock up or because the layout does not need to be fancy, etc. Or if time was a restraint and it was faster to use a table and viewing on a mobile, etc, or accessibility did not matter.
There is a time and a place for CSS, Tables and toolkits (as was discussed in the posters last post, if you bothered to read the comments).
Just because you can drive with your feet, doesn't mean you should.
PS: If you actually take my challenge in my previous comment, you have too much time on your hands, as i said it is a ridiculous request when you can use a table to do the same thing, and where using a table makes sense (ie: building a table of data). - 2/03/2009 9:55 AM
- Unknown said...
@simona.. ahh i think we may more or less be on the same page :|
Oh, and I've also been doing this for over a decade, but we build enterprise web apps and code using toolkits like Dojo and GWT, it would be silly to use anything else or do it by hand in our case. - 2/03/2009 9:57 AM
- Unknown said...
my challenge comment was in reply to your: "div { display: table; }" bit.
Oh, and you know nothing about me, you read one bloody comment and think you know my experience, what I do and don't know about web and application design and usability?
You assume a lot, I'd watch out for that. I, personally like to do a little research before I make such a blanket statement;) But as I don't have a resume from you or a list of references, I'll give you the benefit of the doubt ;)
PS: I think actually we probably see eye to eye on most of this, we just haven't really discussed it in a constructive manner :| I'm guilty as you are here. - 2/03/2009 10:05 AM
- Harold Fowler said...
Wow dude, now that is pretty random!
www.real-privacy.us.tc - 2/03/2009 10:09 AM
- Zeldar said...
I have to agree with Simeona. Yes markup does affect SEO, table based layout will get ranked lower, be less usable and have many other issues around accessibility. The idea behind CSS is not just separating markup from design but also has to do with keeping your markup readable. Now readable isn't just for human readable but also for non standard browsers like Lynx and other ones for blind people. And as far as this "CSS War" I've never been made privy to this. I think its more the people who know how to do it right trying to educate others on what they are doing wrong and how to do it right. Its not 1995 tables should not be used for any type of layout unless its tabular data you are laying out.
- Unknown said...
The CSS side doesn't have a leg to stand on. They're basically saying that CSS is preferred over tables, but they're not equivalent things. What they're really talking about are Divs vs Tables. You can assign a class to a table the same way you can a Div. Or to put it another way, a 3-column table layout generally is using CSS.
- Anthony said...
Here's a very un-zen garden example to prove your point. - 2/03/2009 10:14 AM
- WokTiny said...
I've seen the "CSS Wars" fought in development fora, mostly between "professionals" and "newbies" or "indoctrinated" and "unindoctrinated". I fall in the Cowardly-Uses-CSS camp, but I have never seen a strong case for why tables are wrong for top level layout, just "semantics" and "accessibility" thrown around as though the world already knows the answer and just needed to be reminded.
and I'm tired of recreational CSS hacks for emulating tables. That's what we're doing, by the way, *emulating* tables.
and I still don't know why.
I like the idea of semantic documents, and look forward to the day there is a good solution for this. I just don't think we're there yet. - 2/03/2009 10:14 AM
- Unknown said...
I agree with everything the original author said except for the part where he muses that some people love complex computer issues because of job security. I think it's instead because they like feeling smart, and mastering something complex is certainly something that can make you feel smart. Inventing complexity where there is none, however, is not smart and the amount of wasted effort therein could probably fuel an economic recovery.
- Max said...
I'm glad there are more people like you denouncing CSS fanboyism. I agree CSS or some technology is the future of web design, but I don't think tables are evil. Tables are pretty intuitive and dramatically speed up development.
Everyone who says that "you are the only one who feels this way about CSS" to the author should realize that's not at all true. CSS for layouts is pretty shitty. For everything else, though, it's amazing. - 2/03/2009 10:33 AM
- simeona said...
@ben / @ron
I would argue that quite the opposite is true in terms of job security. Using tables for a layout will most definitely ensure that you have to be there to do the next redesign, as it will most certainly involve re-doing table-based markup. However, when someone who is proficient at doing table-less layouts and semantically correct documents does his job properly - a trained monkey can do any alterations to the css to make any design changes / adjustments in the long run.
So we do what we do because we love it and because we like doing this properly, and lessening long-term headaches, and not for the job security.
On more than one occasion, I've been 'let go' as the primary interface developer because there was no need to maintain a high-paying job position for the mundane daily tasks involved in updates etc. ... Which is just fine by me because I like to move onto bigger and better things anyway. - 2/03/2009 10:35 AM
- simeona said...
If anyone wishes to continue this conversation in a more real-time environment and in a constructive (non-flaming way) - drop in #css on freenode - I go by the nick jedimind; we can discuss pros/cons in there. But I warn you that most people in there are biased to non-tabular layouts
- Stef said...
I've been eating off tables all my life, except when I was a newbie being breastfed and high-chaired.
Using the right cutlery, one can slice up anything and have a square meal. CSS layout is for vegans! - 2/03/2009 11:02 AM
- JD said...
Has anyone considered PRINTING?? Try making a css-based layout print nicely without some effort and you'll find a miserable physical representation of your work. Try printing with a table based layout...Wow - it prints just like it looks on the screen. Hmmmm.
First of all, layout and typesetting are hard and require a trained eye.
So yes, it's an indictment of your coding ability. Just because you and your friends suck at coding, doesn't mean everyone does.
Second, the reasoning is,
"everyone" wants a 3-col layout, last year. It's already beginning to show signs of becoming a dated layout methodology.
None of us want to learn a new spec every time the winds of design ass-holery change, that's why most languages are open ended and require work on the part of the coder. - 2/03/2009 11:07 AM
- simeona said...
Print and web are two different mediums and should be treated as such. a 1024px wide layout with tables will hardly translate to paper properly. Using a semantically correct document and styling it appropriately for print ensures that the printed document will be useful.
On that topic - have you considered other devices? PDAs, smartphones etc?
YOu should be able to present different devices and mediums with a different layout to match the specific usage rather than being chained by the structure the table confines you to. - 2/03/2009 11:09 AM
- Unknown said...
Hey bro, don't feel bad about what you said the first time around. It's completely viable. I would have said the same thing about things of which I am not an expert... it seemed more of a fluke that the "CSS Experts" arrived and trashed your article to death which is more or less unfair.
Albeit the fact that I claim to be a CSS expert myself, I also teach courses on it and have seen several hundreds of people over the years tear out there hair because of CSS.
For the record it's not CSS, it's the browsers that don't correctly support. By now I'm sure you've read somewhere in your comments telling of "selector { display: table-cell; }" — which would make normal elements flow just like table cells.
Again, don't feel bad for your original argument. Your examples were spot on and are mainly telling of how bad browser support is and the amazing amount of hacks we've had to endure over the years.
Pay no attention to the extremist who feel that you've threatened their entire livelihood and existence and in return called you an idiot. They don't ever go away and don't help the world. - 2/03/2009 11:26 AM
- Olaf said...
Sex sells. CSS is sexy! But guess who cares what a bunch of nerds think is sexy? Not the sexy people, that's for sure.
At the end of the day, most of us are trying to develop web sites for paying customers. Your paying customers think a competitive-looking site that works and came in under budget/time is sexy. If you spend an extra 10 hours on an 80-hour project because you wanted to stick to the spirit of standards and a web developer's honor, do you think the customer cares about that? Probably not. They probably are a little irritated that you let your own opinions get in the way of satisfying the customer's need to stay within budget.
I'm not a professional web developer, strictly speaking. However, I occasionally build sites that I make good attempts at building on standards-based coding. I have that luxury. But when a customer wants something from me cheap and quick, I'm inclined to use a WYSIWYG solution to produce something more distantly related to what I might have written by hand. For the price and the time I spend however, the customer could care less and will actually praise me for a job well done.
Gods save me should I ever need to edit that machine-generated drivel. It's 3:00pm and all's well. - 2/03/2009 12:01 PM
- dusoft said...
arguing that HTML is not semantic, because some lements are not named in a semantic way is kinda weird, but that's your way. you could try to help HTML to be more semantic by keeping up with the standards or just ignore it and use tables for layout. in your ignorance, you have chosen the latter, which is very unfortunate. this is why there is still a place for webstandardists even in 2008 (and accessibility is the thing).
- Thomas Jacob said...
No, Ron, you aren't an idiot. You are brilliant, pragmatic, and realistic. You try to remove academic approaches from your thoughts.
And you want a solution, not fight for an ancient way you love. You have good arguments, and I am with you. - 2/03/2009 12:51 PM
- Alonso Garcia said...
My 2 cents:
Using tables for layout is as bad as using horrible CSS hacks to make a site do anything other than what websites are supposed to do, that is, display content in an easy to read coherent way.
The same goes for using very complex javascript for tricks and effects that don't really help the user, but just look pretty or cool.
There is a great article by Jeffrey Zelman called "Style versus Design", look it up, it's an interesting read.
Cheers - 2/03/2009 1:18 PM
- Unknown said...
Hey Ron,
I think your original article was very well stated. A lot of the CSS-oriented developers out there gloss over the fact that even with CSS there is less-than-perfect separation between content and presentation. The structure of the underlying HTML is extremely important since you need to have something that you can attach appropriate CSS rules to, and divitis is a serious problem.
That said, I prefer working through the hassles and using CSS anyway just because I feel like my markup is much cleaner that way. It's sort of like the argument about how democracy is the worst form of government except for all the other ones that have been tried.
Interestingly, I have built a templating engine for PHP that lets you define your own tags, and I end up using this a lot. For instance, I have a "tabs" tag I use instead of "ul" when I want to make tabs appear on the screen. The templating engine converts that into appropriate HTML at runtime. This makes a lot of sense to me personally as I prefer explicit markup rather than that with meaning granted by random CSS rules. The templating system is on GitHub if you are interested in checking it out.
Keep up the good work!
Mike - 2/03/2009 1:33 PM
- MM said...
I think that CSS & the "Web Standards Movement" has become the development equivalent of intelligent design. It's become the rallying cry for for bullying developers into coding a certain way, one that is not always effective or efficient, or that works consistently across browsers.
And why "standards" were developed that made it extremely difficult to create columns of equal length, align type of varying sizes and fonts across columns, align elements of equal to the bottom of column columns, etc., etc., etc., etc. shows an ignorance, whether intentional or not, of the basic principles of usability and good design. - 2/03/2009 1:53 PM
Show me a table-based page that can automatically display a different layout for alternate devices.
Separation of content and style makes sense.
Semantic documents make sense. - 2/03/2009 5:36 PM
- Blah said...
Thanks for your post. I personally almost always use pure CSS for layout. However, I don't believe in all the hype that the 20-something, uninformed web-developers regarding the CSS is better than tables issue. Their biggest reason for using styles, outside of simply keeping styling in a different file from the HTML, seems to be accessibility for vision impaired users and for SEO (By the way, Google and Yahoo both use tables for some of their layout). Some will go for alternative devices, like, uhh, I dunno, small screened phones, I guess. Well, I personally don't know why any of these are reasons to use CSS over tables. All can read and render the tables just as well as CSS. How many of these people have ever used a screen reader developed for blind people? I have. There's no difference. Ever see any peer reviewed study on SEO when layout is based on tables vs CSS? I haven't either. All I've seen is a blog written by someone who thinks he's god's gift to web development. Until I see actual proof that CSS is better than tables, I won't give a rat's behind which method is used - and nor will anyone outside the uber-geek community that reads this and similar blogs.
- moloch said...
No matter what you say, someone will say you're wrong. I appreciate the act of standing up to say something. The fact that it's been met with evangelical ferocity says to me CSS isn't as perfect as everyone would like it to be. Whether or not I agree with your conclusions is irrelevant, pointing out the fact that CSS is awkward and clumsy is valid.
- Unknown said...
Until XHTML has a tag for vertical DIVisions, tables will be the only way to do columns simply and reliably.
DIV (division) tag is for horizontal divisions only. You can try to hack them with CSS floats but that is a world of pain and all you CSS purists know it. - 2/04/2009 2:18 AM
- guigouz said...
cool. this site uses CSS (not tables) for the layout.
- dcle said...
Who says that tables are not accessible to the blind? That's BS. As someone who works with assistive technology and electronic accessibility for the blind issues, format tables are absolutely accessible -- and more reliable with certain screenreaders than sloppy CSS will ever be.
- Unknown said...
Well, a little bit of redemption to your previous article at least.
"You can do some really cool things with it, often without having to work very hard. But layout -- at least the three-column layout that everyone seems to want -- isn't one of them."
Yes, you do need to work hard to do certain things in CSS. You need to work hard to do things in any other coding/programming language as well. Anyone can do a "hello world."
A big problem with your argument is this:
"One person wants their web site to be accessible to blind people, another doesn't."
While that's true, it's not a good argument. Ask Target - everyone should care about accessibility. - 2/04/2009 6:28 AM
- Ilia said...
I wholeheartedly agree. When I first read the "Holy Grail of CSS" article on "A List Apart" my first reaction was - that is pretty awesome that they managed to do this with CSS. My second reaction was - this seems way too complicated for something that takes 10 lines with tables.
To me CSS was always, first and foremost about elegance and simplicity, for both front-end (i.e. how the page looks) and back-end (i.e. the code). It is fine to have complicated CSS for a layout look that cannot be achieved (or would possibly be "heavy" and not user-friendly due to, for example, heavy use of images) with HTML alone.
However, when doing something with CSS is more complicated, less intuitive and 'causes innumerable bugs and headaches, while in comparison, the same thing can be achieved simply and easily with HTML - well how can anyone, at that point, argue that CSS is the better way to go??
I never understood that.
You are also right on the money with dynamic content. I deal with several sites where I don't know exactly how much content is going to present at any one time, and while I can get things working 99.9% in IE7 and FF, IE6 (which unfortunately I still can't ignore) on the other hand, still gives me problems whenever I try to redesign things to use CSS-based 3 column layout. And I pretty much tried every trick in the book - shit still breaks.
And one last thing to all the nay-sayers - what is your problem with one table? No, really? I mean, we all know nested tables are bad - they're confusing to code and they slow down rendering. However, I don't see why there's such a strong resistance to putting the one tables for the 3-columns on the page. It's not going to affect performance, the code is cleaner, and the CSS with 2KB or 3KB lighter. - 2/04/2009 7:27 AM
- kelly said...
One thing that I'm suprised hasn't come up explicitly is that using tables for layout was originally and has always been a hack. It's not what tables were designed to do.
Another note, and this is purely a personal note - I made the switch from tables to css about 2 years ago. I find my development time has been cut in half since having become familiar with css techniques and have only looked back on very rare occasions. I use css whenever I can because it's faster and simpler for me.
I'm amazed that people get so worked up over this. Use what makes sense for you. Who cares what other people use? - 2/04/2009 5:04 PM
- Melzz said...
It's not just about what makes sense to you, unless its a personal website in which case nobody cares (not entirely true some standardista's may laugh at you).
When it's not a personal website there are a vast number of reasons as to why adhering to standards a good thing. It's the same reason why we have standard in all industries. If someone else ends up with the task of having to work on what you built sometime down the track and you are not around for them to ask why/what/how you have just made their job that much harder.
HTML does have semantic meaning, the markup actually has absolutely nothing to do with how the it's rendered on screen as you can change the visual display with css. H1 for example does not mean large text it means this is the MOST IMPORTANT heading on this page.
I could go on all day as to why we should be using standards but unfortunately it seem's like i'd be wasting my breath.
Personally I think this guy knew he'd get such a reaction out of his article, he's really only done it and the follow up posts purely for shock value, I think he likes a fight and it's definitely worked at bring traffic to his blog. - 2/04/2009 8:38 PM
- Unknown said...
Ron don't be discouraged by most of the comments here, you're one of the few bloggers with the ball to go against the CSS lobby.
And you are right too! :) - 2/05/2009 3:28 AM
- Ron said...
Don't worry, I'm not discouraged :-)
- Daniel Toma said...
Is hard to make a CSS layout to look the same in all major browsers (IE6, 7 and FF). On the other hand, all browsers render tables similar.
CSS has the advantage of keeping the code small and clean but sometimes you loose too much time with debugging and fixing layout when a table layout can do similar results in less time.
I agree with most things Ron mention here.
One problem with table layout was that browser should wait for entire content to be loaded before render the page. How about the latest browsers, do they still have this performance problem? - 2/05/2009 2:26 PM
- thinsoldier said...
2 things.
1) you don't know enough about css
2) you make some very valide points
especaially when it comes to using css for layouts with more than 2 columns and you SEO expert is insisting that the content order be Content, leftnav, rightnav, topnav, footer.
But other than that (and yes, countless other situations I've luckily never had to experience) a simple 3 column layout isn't that bad. I agree with a lot of what you say and totally understand your frustration (I just started using css 4 years ago) but it's not that bad.
Using the 2nd example on http://www.flownet.com/ron/css-rant.html where the content is ordered as top, leftnav, content, rightnav, footer you can use the following css. Of course it's only this easy if your layout is a fixed width :( If you want a full window width liquid layout then yes it gets far too hard for me to work with css.
#container {
border:1px solid gray;
margin:10px auto;
#leftnav {demo.css (line 23)
#content {demo.css (line 48)
border-left:1px solid gray;
border-right:1px solid gray;
#rightnav {
width: bla bla bla.....
float: left;
Back to where you're right.
Yes, to get the blue background and black border between columsn you will need to use a faux-column background image to simulate full page height side columns :(
This really complicates things if you want some decorative element that starts at the bottom of the side columns and comes up (probably is impossible)
Even in a table cell something this long without white space causes problems!
Make sure your side columns have a width and set overflow:hidden.
Other alternatives would be to look into display:table (works in IE6 and other browsers but not Firefox 2 and earlier)
Display table makes a containing div behave as if it's both TABLE TR and any child divs behave as if they're TD. I've never used it on a live site (due to firefox 2) but I think it could be ready for prime-time in a few years :(
Unfortunately, depending on the specifics of your layout you may find yourself adding enough useless divs to equal TABLE, TR, and TD to get things to work whereas in other layout you can get away with just setting display:table-cell on the 3 purposeful divs.
Or order your content as top, left, content, right, bottom and set left, content and right to be display:inline-block (this might also be problematic in firefox 2 but should work find in IE6... I think)
"When the leftnav content grows you want the center div to grow to compensate,"
I rarely, probably never want that.
"tables have the correct semantics for doing layout"
I don't agree but I won't disagree with the point you're trying to make here against css.
No one in their right mind will be able to just "pick up" on the idea of using odd sounding things like floats, hidden overflows, auto margins and negative margins for layout when they're accustomed to tables (excel, word, TR TD, etc). So maybe I should take back that "you don't know enough about css" comment. Why should they expect anyone to read the vast amounts of boring crap I had to read to know what I know (and I still avoid 3 column layouts like a cat avoids swimming pools)
...ok what else...(continues reading follow up post)
"For example, accessibility to the blind had not even entered my mind. "
Divs with display:table/table row/cell etc someday should behave just like regular table tags but without interfering with/confusing screen-readers. I still think screen reader developers should have figured out long ago a way to detect of a table was tabular data or used for layout and adjust their user interactions accordingly.
"having content spill out beyond the boundaries of its containing DIV is Bad"
More seemingly idiotic float related decisions made by the CSS working group without any explanation in the spec about why the decision was made or what the benefit of it is. (actually I think I did find an in-depth explaination once but in practice this "feature" is useless and I think the IE team was right to ignore this part of the spec and always have parent elements properly expand to enclose their floating children.) Google "clearing floats". I prefer to use Height + overflow:hidden but even that has its drawbacks at times. - 2/05/2009 9:46 PM
- bboyneko said...
Thank you for such a well-written article(s). I have done so many website analysis reports for federal agencies. One of the biggest problems is browser compatibility.
Their site render completely horribly from browser to browser. Why? The reliance of styled DIVs as the layout method. In every case I have recommended the same thing: Abandon CSS DIV layouts and rely instead on tested and true tables.
Users want the site to work. They don't want content to overlap and spill into other content, they don't want tabs to remain hidden behind each other, they don't always want tons of content to be contrained to a fixed-width layout (like cnn.com which uses CSS Divs) and would prefer the content expanded with their browser (like google news which uses tables)
The ideal of DIVs for layout is a good one, but 10 years after W3C WCAG 1.0 was released we STILL do not have two browsers rendering CSS identically. Tables WORK. Tables are Stable. - 2/06/2009 2:33 PM
- Unknown said...
we should just do everything in Flash! Yeeehaa
- tim said...
It's a beautiful dream. A page is marked up into blocks, where every block has a tag that says what it is, not where it goes or how it looks. All the information about where things go and how they look resides in a different space, the CSS, a powerful language that can put these blocks wherever you want them to be and make them look however you want them to look, no matter what program is displaying them.
If this actually worked it would be wonderful. ( And there would be no divs with id's like "left-column".)
Let's get a grip: Real world layouts have div structure and CSS that has built in assumptions about the positions of things. And having ONE TABLE of three rows expressing header/left/center/right/footer is not oppressing the blind, confounding the geniuses at Google, or violating a pristine, philosophically pure perfect solution for web layout. - 2/12/2009 11:25 PM
- halicon said...
Sorry. CSS should not be used for layout. I am not a professional with regard to Tables nor CSS and would prefer things to be done in flash, however we have to support those in the dark ages. ;)
If you want purity, pixel perfection and true representation of design without the hindrance of technology than use flash.
If you have to use HTML then stick with tables. A lot more predictable and quicker. CSS is awesome for formatting and I believe that is where it ends. - 2/19/2009 12:44 AM
- Arnold Ude said...
Dear Ron, keep the way you are working as is ! To put a long comment short: Your article made me return to good ol' tables whenever I have to "layout" some web page again. I spent ages of wasted time to find "bugs" in CSS layouts. When I look over "solutions" to your problem browser hacks get longer than the intended CSS code for the layout itself. Long live the table layout!
- Ben said...
Ron I see you giving credit to CSS-P that you should not. SEO, I always use tables, and a regular client of mine is in fact a SEO company, he tells me that scanning pages are done only if certain criterias are absent. Looks like xml is getting into the SEO business. if you make a XML sitemap apparently google will pick it up and use it. Also myself I use the description meta tag, and I spent time coming out with a good description, when I type Ben Bigras in google I'm first in the results, thats not my point yet, my point is everybody get no more that 2 lines, and my 2 lines say exacly what I want it to say.... thats my point... so giving credit to CSS-P related to CSS-P is absolute B.S.
anybody wanting to restore common sence in the web world can google me and you'll see my approach on this css-p nonsence.
CSS... is awsome....
CSS-P... well I guess the world is coming to an end. - 3/28/2009 4:01 PM
- Ben said...
I made a boo boo in my previous post, vey sorry about this...
where it says: "so giving credit to CSS-P related to CSS-P is absolute B.S." should read "so giving credit to CSS-P related to SEO is absolute B.S." - 3/28/2009 6:09 PM
- Icon Serpentine said...
it's not a war, it's a bazaar of chickens with their heads cut off.
the concept is simple: know your canvas.
it's not a matter of preference whether to use tables or CSS for layout; the HTML spec is very clear about the use of tables. the CSS spec is very clear on its capabilities. the smarter among us are all intensely aware of how each browser will behave. therefore if you use tables for layout, you are very plainly doing it wrong. there's nothing to debate there.
"Facts do not cease to exist simply because they are ignored" -- Aldous Huxley.
know the technical underpinnings of your medium and design with the tools you have available.
an analogy:
anyone can hack their way through an oil painting and get a half-way decent result in the end.
the only difference between a hack and a painter is that a painter understands the tools before they use them.
the real problem in the web design cottage industry is that there are hacks who act like painters and sales guys selling snake oil. the client just wants a web page and doesn't care how its made, the sales guy just wants to sell them a web page and doesn't care how its made; and then goes about it all wrong. the sales guy hires a graphic designer to design a page and hands it to a web developer who gets told to, "just code it."
where was the only person with any technical knowledge of the medium involved in the design process? how does the graphic designer know that their design is pushing the limits too hard or even flawed from the outset? they don't.
since nobody cares, as long as it looks good enough it'll get shipped out.
that's the real problem. that's why i don't do web pages anymore and have gone back to programming. it may not be quite as pure of an engineering profession as an industrial engineer or architect; but at least I don't meet as many people who think they can walk into Toyota with a sketch of a car and tell them to, "just build it." - 4/03/2009 10:37 AM
I couldn't agree more with the author, Check out this link. even Apple agree that the best way to set a layout is using tables.
- Kevin said...
As a newcomer to the whole CSS world but a developer with 20 yrs experience, I think the pro-CSS types are applying arguments suited to mainly worldwide e-commerce sites – i.e. a very, very small percentage of the Web sites being built. Most web work involves intranet sites, local web sites, targeted community sites, etc.
To whit, SEO is irrelevant to a great many sites and vision-impaired accessibility is RARELY a compelling req't. It's a gross exaggeration to say there is a litigation risk in developing web pages that are inaccessible to the blind.
Furthermore, let's not forget that somebody is actually paying for these sites to come online and waiting for the work to get done. Most businesses and users won't cry if the office admin can bring up a WYSIWYG editor (yes, I said it, WYSIWYG editor) once in a while and make a tweak to a page.
That said, let the Amazons and Wal-Marts of the world develop, implement and enforce beautiful standards. Let high-flying Web contractors swim in the fees that their specialization commands. Let the academics pontificate about a world of divs and semantics. Blah, blah, blah.
The rest of us have some work that actually NEEDS TO GET DONE. - 6/18/2009 9:07 AM
- {CODE} M0nk3y said...
You guys bagging css have no understanding of what it does or how to use it properly. It is easier and quicker to define layouts with css and it is also much much much easier to maintain. Css helps you avoid TAG soup and keeps you html DRY.
This article makes me angry along with the comments of people agreeing. I have tried to unsubscribe many many times yet i am still receiving email updates. - 6/18/2009 4:22 PM
- Ron said...
> You guys bagging css have no understanding of what it does or how to use it properly.
First, no one is "bagging" CSS. And second...
> I have tried to unsubscribe many many times yet i am still receiving email updates.
...do you have any idea how hard it is to take your technical opinions seriously if you can't even figure out how to unsubscribe from a Blogger comment feed? Disparaging people for things they haven't done is bad enough, but trumpeting your own ignorance in virtually the same breath is just pathetic. - 6/19/2009 10:10 AM
- krib said...
I agree about your CSS vs Tables thoughts and I think tables are better too. But also I think that your example of C++ is totally wrong. People do not use C++ because they like suffering, they use it because it is best for particular problem to solve. Also, many people, including me, are programming faster and easier in C++ than they do in Java or .NET. Actually proposing tables against CSS is closer to proposing C++ (pure and simple) over .NET or Java (which have millions of classes which show many problems when combined) then other way around.
- Shamrock said...
My general rule of thumb is: tables for tabular data. However, CSS in its current incarnation is SERIOUSLY flawed. (It reminds of the college football BCS.) And the CSS apologists who will not admit to such are living in a box. Their over-reaction is telling.
While I do not agree entirely with every technical point you made, I say touche! to the wisdom of balancing societal effort and results. It's a gestalt; thus apparently some of your responders do not get it.
HTML tables democratized development in the Wild West days of the web. Every kid on the block was a "developer" ;) However the bumbling efforts of the CSS Standards Lords have all but killed that, essentially making young Joe Shmoe once again dependent on corporate America.
Blaming inadaquate browser support is a cop out. Yes, Browsers are inadaquate. However development (and especially the attempted implementation of global standards) must deal with the reality of the marketplace. "Shoulds" are irrelevant. Life is messy.
And by the way, unlike purists (or are they just "yes men"?) who revel in waxing poetic about theory, FOR PROFIT BUSINESSES (like Google, Freedom Scientific, etc) respond to the REAL marketplace. I guarantee if people are using TWO BY FOURS AND RUSTY NAILS to render their data, businesses will adapt.
I use CSS because I LIKE IT, not because of moral posing and fear mongering on the part of the CSS Lobby.
Thank you for kicking up some welcome dust. Dust is good. - 2/20/2010 10:24 AM
As for accessibility for the blind, tables in no way shape or form interfere with blind people using the internet as long as they are used correctly (TH only for data table headers, SUMMARY tags etc). I have been developing for Section 508 compliance for many years, and know this for a fact. The whole 'CSS makes pages more accessible' is pure bunk.
- Steve Teare said...
I am a like minded creature. But what will blow you away is I not only use Tables on a regular basis but I use HTML Frames, too. That is really counterculture. It's like NOT having a tattoo or body piercing. It's so uncool --it's not even geek. There is no club for people like us.
Visit my site: http://www.SteveTeare.com/
Or for even more odd philosophy go to:
http://ultraspeed2.blogspot.com/ - 3/11/2011 3:05 AM
First off, regarding SEO, I've been running web pages running ancient HTML for the last 12 years, and getting top of google responses to my searches (maybe it has something to do with running their ads, and in TABLES no less) and the domain seems to make more of a difference than whether or not my sites are pure CSS, so that presumption seems to be blatantly false.
The websites I have laid out in CSS have been chores to say the least. I'm glad to be done with flash, a powerful but somewhat illogical program, and there are great uses with CSS for mouseovers, and styling across multiple pages, and I like transparent pngs, but 48 hours ago I resolved to update a multi-page links portal site to CSS, and I am done trying to center 3 and five column layouts with links and/or images and/or ads enclosed, and get them positioned correctly.
Call me unskilled, idiotic, etc etc. Fact is, most of you engineering geniusses who created this layout atrocity couldn't illustrate to save your life. You have created guaranteed employment for yourselves however, I will grant you that.
When something as asinine as centering becomes such a chore and so thoroughly inconsistent and I have to clear:left and then float:left to place a footer after a columnar content main, and it still wont move, sorry, I'm done.
I'm no jscript writer, but I can retool it. I've delved into PHP, and SQL, and AJAX, and Jquery, but CSS layout has me stumped, and the only solution I usually see is people sneaking tables in here and there or shoving my work into someone else's convoluted template, and I think I'm gonna stick to the former.
The tables are in there for a grid, since CSS just doesnt seem to care that I get a centered, multi-column grid with ads on the sides and top and a footer I dont have to re-center. Try placing a column of 7 mouseover buttons on both sides of two centered animated gifs or video loops and then throwing headers and footers above and below that centerpiece, and keep it all centered. CSS sucks for layout, period. - 3/24/2012 1:43 AM
- Unknown said...
Not one of you, whom I've had the patience to read, is tackling the specific topic.
The functionality of CSS styled tables vs CSS as layout.
Regardless of SEO, an entirely different topic even if relevant, he is giving sound and tested advice on page layout and the gotchas involved.
Those 'breaks' when overflowing an element are real. The work involved to fix them are real. This phenomenon proving the unwanted connection between markup and styling is inherently true (hence the aforementioned word 'proving').
This rant against the author reeks of blaming the innocent because of a deeper injustice. Like pointing a gun at a store for offering for voluntary trade an oversized cup of soda - why? Because Peter is forced to pay for Paul's health.
What does the legal injustice of forced accessibility have to do with the truth written here? No wonder he got so much hate mail. This is politics and he is RIGHT. - 3/27/2013 8:00 AM
- Our destiny should be in our hands said...
Why would a blind person care how a site is laid out?


text:
Can't Find Dose or Product You Looking For? Call Us Now And We'll Guide You Through!
Duloxetine is an FDA-approved Anti-Anxiety Medicine. Duloxetine is used to balance the reactions in the brain of people that are depressed and do not know how to cope with anxiety. Duloxetine is also very beneficial for diabetic patients. Duloxetine also helps in relieving pain known as Diabetic Neuropathy. If you have been prescribed Duloxetine by your doctor, you should place your online order at Online Pharmacy Louisiana in Terrytown, LA to get original and High-Quality Duloxetine At A Cheaper and cost-effective rate. Whether you need Duloxetine for your own needs or for your medical office, we will deliver it to you in no time.
Duloxetine is used to treat unbalancing of natural substances in the brain which cause Anxiety And Depression. Duloxetine is known as a serotonin-norepinephrine reuptake inhibitor (SNRI). Duloxetine is also beneficial for diabetic patients as it helps in Relieving Nerve Pain. Duloxetine improves sleep, appetite and increases the energy level in the patient.
Duloxetine can be taken orally in form of capsules. The Duloxetine Dosage is based on age, medical condition, and response to treatment. Keep taking Duloxetine even if you feel well. Do not stop Taking Duloxetine without consulting your doctor in Terrytown, LA. Do not prepare the mixture ahead of time for later use.
Duloxetine is prescribed for anxiety and depression. The medicine may interact with other medicines that will reduce the Duloxetine Effect. The medicine can be taken alone or with other medications. Duloxetine works by helping to restore the balance of certain natural substances (Serotonin And Norepinephrine) in the brain.
Duloxetine treats depression and anxiety. It is also helpful in relieving Nerve Pain in Diabetic Patients and it has many other uses. The doctor in Terrytown, LA will observe and examine your condition and if it is right for your case, then you can start taking it. Duloxetine balances the amount and Activity of Serotonin and norepinephrine in the brain.
The initial dose for Duloxetine adults is 20 mg to 30 mg two times a day regularly in Terrytown, LA. The maintenance dose is 60 mg to 30 mg twice a day. The Maximum Duloxetine Dosage is 120 mg per day. The dosage may vary according to the condition of the patient and response to the treatment.
Now you can buy Duloxetine Online in Terrytown, LA from Online Pharmacy Louisiana. We have an outstanding reputation with years of experience in the pharmaceutical field. We can ensure the quality and authenticity of our medicines. You do not have to worry about quacking or defective products. Order Duloxetine Online relies on Online Pharmacy Louisiana only.
If you do not know where to buy Duloxetine Medications in Terrytown, LA, Online Pharmacy Louisiana has got you covered. With Online Pharmacy Louisiana you can easily buy Duloxetine at the convenience of your home. Our Online Duloxetine Service to buy medicine online in Terrytown, LA saves you time, energy and money as well because we have discounts and deals to make it easier to buy medicines at pocket-friendly rates.
Duloxetine is a prescription drug and you must buy it from a reliable and Trusted Duloxetine Store so there may not be any doubt about the authenticity and duplicity of the product. Online Pharmacy Louisiana is a certified and registered online drugstore. You can Buy Duloxetine Online At Cheaper and lower rates from Online Pharmacy Louisiana in Terrytown, LA without the hassle of going to local pharmacies.
You can find Duloxetine 30mg in Terrytown, LA by placing your Online Duloxetine Order at Online Pharmacy Louisiana. We guarantee genuine medicines at affordable prices. To Get Duloxetine At Cheaper and lower rates, you just have to call us, and we will be right at your doorstep.
Many people do not believe in purchasing medicines online. But we recommend you to Order Duloxetine Online in Terrytown, LA from Online Pharmacy Louisiana. Online Pharmacy Louisiana has been providing the best quality and valuable drugs for many years. If you want to save your money, time, and energy, do not wait anymore because Online Pharmacy Louisiana is providing Duloxetine At A Reasonable Price than the store.
Duloxetine is a highly effective medicine. It is trusted and recommended by doctors, physicians and surgeons as well. To Purchase Duloxetine Online in Terrytown, LA at pocket friendly rates, you must contact us at Online Pharmacy Louisiana. We have original and Authentic Duloxetine Medicines in Terrytown, LA. Not only this, we have 24 hours delivery service so that you may not have to miss any dose.
Common side effects of Duloxetine include but are not limited to:
Duloxetine may trigger allergies. If you have used MAO inhibitors, such as Isocarboxazid, linezolid, methylene blue injection, phenelzine, tranylcypromine then do not use the medicine within 14 days. If you have any infections or allergies then discuss them with your doctor. Avoid using alcohol while taking this medicine.
You should not use this medicine if you have had an allergic reaction to Duloxetine. If you have uncontrolled narrow-angle glaucoma, Duloxetine is not suitable for you.
Duloxetine 60 mg is not a controlled substance under the Controlled Substances Act.
Duloxetine is used to treat:
Sexual side effects that are common in males taking Duloxetine include:
If Duloxetine is working for you and isn't causing bothersome side effects, you will likely use the drug long term. Talk with your doctor about how long you will need to take Duloxetine.
Yes, stopping at once Duloxetine oral capsules can cause withdrawal symptoms. Symptoms of withdrawal from Duloxetine can include:

subset: commoncrawl


text:
Occidental Leather Pocket Caddy
Occidental Leather Part #:
#B5057 - Black
#5057 - Brown
- Compact 4 pocket tool organizer fits in your pocket protecting you, your tools, and your clothes.
- Ideal for small repair work, shop workers, gardeners, farm repair, and cabinetmakers.
- Create an instant mini tool carrier, organizing pliers, screwdrivers, and other tools while keeping them within easy reach.
- Handy snap loop hooks around belt, if desired.
- Pockets & Tool Holders: 4


text:
Unknown Category[]
Ever since research has been done at the CTW Archives and more episode info has been posted, there has been quite a few Ernie and Bert sketches mentioned that nobody else seems to know much about. I put some of those in the "Miscellaneous" page, but wuld it be a good idea to create a "Ernie and Bert Sketches: Unknown" page, for those that nobody knows whether they took place in the apartment? --Minor muppetz 20:48, 22 February 2007 (UTC)
- I think those are fine in Miscellaneous. I think putting them in "Unknown" will just split up the sketches and make them harder to find. -- Danny (talk) 20:53, 22 February 2007 (UTC)
Images on Categories[]
Is this all right? Or, do you think it should be removed. I was thinking some of the categories might look kind of nice with pictures, so I just wanted to put something up and see what anyone else thought. --Justin 03:32, 10 February 2007 (UTC)
- Yeah, it's a general policy not to include any images on category pages, just articles, since they tend to push the articles down, affect navigation, and in my opinion, are just distracting. Categories are the only parts of the Wiki that are meant to be fully functional, not pretty. It's a neat pic, though. Maybe you can find a home for it on Ernie, Bert, or elsewhere. -- Andrew Leal (talk) 03:54, 10 February 2007 (UTC)


text:
Vaisampayana said, "Meanwhile, the king of Sindhu was giving orders to those princes, saying, 'Halt, strike, march, quick', and like. And on seeing Bhima, Arjuna and the twin brothers with Yudhishthira, the soldiers sent up a loud shout on the field of battle. And the warriors of the Sivi, Sauvira and Sindhu tribes, at the sight of those powerful heroes looking like fierce tigers, lost heart. And Bhimasena, armed with a mace entirely of Saikya iron and embossed with gold, rushed towards the Saindhava monarch doomed to death. But Kotikakhya, speedily surrounding Vrikodara with an array of mighty charioteers, interposed between and separated the combatants. And Bhima, though assailed with numberless spears and clubs and iron arrows hurled at him by the strong arms of hostile heroes, did not waver for one moment. On the other hand, he killed, with his mace, an elephant with its driver and fourteen foot-soldiers fighting in the front of Jayadratha's car. And Arjuna also, desirous of capturing the Sauvira king, slew five hundred brave mountaineers fighting in the van of the Sindhu army. And in that encounter, the king himself slew in the twinkling of an eye, a hundred of the best warriors of the Sauviras. And Nakula too, sword in hand, jumping out of his chariot, scattered in a moment, like a tiller sowing seeds, the heads of the combatants fighting in the rear. And Sahadeva from his chariot began to fell with his iron shafts, many warriors fighting on elephants, like birds dropped from the boughs of a tree. Then the king of Trigartas, bow in hand
descending from his great chariot, killed the four steeds of the king with his mace. But Kunti's son, king Yudhishthira the just, seeing the foe approach so near, and fighting on foot, pierced his breast with a crescent-shaped arrow. And that hero, thus wounded in the breast began to vomit blood, and fell down upon the ground besides Pritha's son, like an uprooted tree. And king Yudhishthira the just, whose steeds had been slain taking this opportunity, descended with Indrasena from his chariot and mounted that of Sahadeva. And the two warriors, Kshemankara and Mahamuksha, singling out Nakula, began to pour on him from both sides a perfect shower of keen-edged arrows. The son of Madri, however, succeeded in slaying, with a couple of long shafts, both those warriors who had been pouring on him an arrowy shower--like clouds in the rainy season. Suratha, the king of Trigartas, well-versed in elephant-charges, approaching the front of Nakula's chariot, caused it to be dragged by the elephant he rode. But Nakula, little daunted at this, leaped out of his chariot, and securing a point of vantage, stood shield and sword in hand, immovable as a hill. Thereupon Suratha, wishing to slay Nakula at once, urged towards him his huge and infuriate elephant with trunk upraised. But when the beast came near, Nakula with his sword severed from his head both trunk and tusks. And that mail-clad elephant, uttering a frightful roar, fell headlong upon the ground, crushing its riders by the fall. And having achieved this daring feat, heroic son of Madri, getting up on Bhimasena's car, obtained a little rest. And Bhima too, seeing prince Kotikakhya rush to the encounter, cut off the head of his charioteer with a horse-shoe arrow. That prince did not even perceive that his driver was killed by his strong-armed adversary, and his horses, no longer restrained by a driver, ran about on the battle-field in all directions. And seeing that prince without a driver turn his back, that foremost of smiters, Bhima the son of Pandu, went up to him and slew him with a bearded dart. And Dhananjaya also cut off with his sharp crescent-shaped arrows, the heads, as well as the bows of all the twelve Sauvira heroes. And the great warrior killed in battle, with the arrow, the leaders of the Ikshwakus and the hosts of Sivis and Trigartas and Saindhavas. And a great many elephants with their colours, and chariots with standards, were seen to fall by the hand of Arjuna. And heads without trunks, and trunks without heads, lay covering the entire field of battle. And dogs, and herons and ravens, and crows, and falcons, and jackals, and vultures, feasted on the flesh and blood of warriors slain on that field. And when Jayadratha, the king of Sindhu, saw that his warriors were slain, he became terrified and anxious to run away leaving Krishna behind. And in that general confusion, the wretch, setting down Draupadi there, fled for his life, pursuing the same forest path by which he had come. And king Yudhishthira the just, seeing Draupadi with Dhaumya walking before, caused her to be taken up on a chariot by the heroic Sahadeva, the son of Madri. And when Jayadratha had fled away Bhima began to mow down with his iron-arrows such of his followers as were running away striking each trooper down after naming him. But Arjuna perceiving that Jayadratha had run away exhorted his brother to refrain from slaughtering the
remnant of the Saindhava host. And Arjuna said, 'I do not find on the field of battle Jayadratha through whose fault alone we have experienced this bitter misfortune! Seek him out first and may success crown thy effort! What is the good of thy slaughtering these troopers? Why art thou bent upon this unprofitable business?'
Vaisampayana continued, "Bhimasena, thus exhorted by Arjuna of great wisdom, turning to Yudhishthira, replied, saying, 'As a great many of the enemy's warriors have been slain and as they are flying in all directions, do thou, O king, now return home, taking with thee Draupadi and the twin brothers and high-souled Dhaumya, and console the princess after getting back to our asylum! That foolish king of Sindhu I shall not let alone as long as he lives, even if he find a shelter in the internal regions or is backed by Indra himself! And Yudhishthira replied, saying, 'O thou of mighty arms remembering (our sister) Dussala and the celebrated Gandhari, thou shouldst not slay the king of Sindhu even though he is so wicked!'
Vaisampayana continued, "Hearing these words, Draupadi was greatly excited. And that highly intelligent lady in her excitement said to her two husbands, Bhima and Arjuna with indignation mixed with modesty, 'If you care to do what is agreeable to me, you must slay that mean and despicable wretch, that sinful, foolish, infamous and contemptible chief of the Saindhava clan! That foe who forcibly carries away a wife, and he that wrests a kingdom, should never be forgiven on the battle-field, even though he should supplicate for mercy!' Thus admonished, those two valiant warriors went in search of the Saindhava chief. And the king taking Krishna with him returned home, accompanied by his spiritual adviser. And on entering the hermitage, he found it was laid over with seats for the ascetics and crowded with their disciples and graced with the presence of Markandeya and other Brahmanas. And while those Brahmanas were gravely bewailing the lot of Draupadi, Yudhishthira endued with great wisdom joined their company, with his brothers. And beholding the king thus come back after having defeated the Saindhava and the Sauvira host and recovered Draupadi, they were all elated with joy! And the king took his seat in their midst. And the excellent princess Krishna entered the hermitage with the two brothers.
"Meanwhile Bhima and Arjuna, learning the enemy was full two miles ahead of them urged their horses to greater speed in pursuit of him. And the mighty Arjuna performed a wonderful deed, killing the horse of Jayadratha although they were full two miles ahead of them. Armed with celestial weapons undaunted by difficulties he achieved this difficult feat with arrows inspired with Mantras. And then the two warriors, Bhima and Arjuna, rushed towards the terrified king of Sindhu whose horses had been slain and who was alone and perplexed in mind. And the latter was greatly grieved on seeing his steeds slain. And beholding Dhananjaya do such a daring deed, and intent on running away, he followed the same forest track by which he had come. And Falguna, seeing the Saindhava chief so active in his fright, overtook him and addressed him saying, 'Possessed of so little manliness, how couldst thou dare to take away a lady by force? Turn round, O prince;
it is not meet that thou shouldst run away! How canst thou act so, leaving thy followers in the midst of thy foes?' Although addressed by the sons of Pritha thus, the monarch of Sindhu did not even once turn round. And then bidding him to what he chose the mighty Bhima overtook him in an instant, but the kind Arjuna entreated him not to kill that wretch."


text:
(Antwerp) On Saturday evening the staff of Express Pita (A Halal fast food joint) situated in the Rooseveltplaats area of Antwerp took offence at how a middle aged man and his son had started to drink alcohol with their meal outside in the terrace. So in the time honoured way of the faithful they expressed their displeasure as only the faithful can
data-cards="hidden" data-lang="en">Both men were admitted to Hospital for injuries sustained by really peaceful people enforcing their religious bigotry onto others.
#Antwerp #Belgium🇧🇪 An older man was savagely beaten up by muslims because he drank an alcohol in front of a halal supermarket. #Tolerant #Islam— вℓυяαʎ🐰👌🇬🇧 (@IanPhilTrait) May 13, 2018
It's Not Just #ISlamicTerrorism #ISlamicInvasion #RiseUp#DefendEurope #ProactivePatriots ✌🏻🇬🇧 pic.twitter.com/o75Ou23Bgq


text:
This weekend marked the beginning of an important new chapter of nation-building, with the celebration and formal launch of the world's newest nation, South Sudan. United Nations Secretary General Ban Ki-moon and a host of dignitaries were on hand. The civil war with the north ended in 2005, and the World Bank has had an office there since just after that.
I spent several days there two weeks ago, pre-independence, but very much in a moment of great excitement about what the nation the size of the Iberian peninsula with a population of 8 to 9 million could accomplish.
South Sudan will begin life as both a tremendously poor and under-served nation in terms of the services for its people, and a fantastically rich one in terms of resources and potential. The country has less than 100 kilometers (62 miles) of paved road. At present, conflict with the north's Khartoum-based government continues over the key oil, gas, and mining provinces of the border region, where much of the international press is focused, as well as great deal of investment interest.
My focus was in the other direction, south of the sprawling capital of Juba, along the dramatic White Nile. With fantastic logistical support from the World Bank Juba office, from the Wildlife Conservation Society's South Sudan conservation team, and from the director of the Nimule National Park.
Nimule is a remarkable site, with the White Nile variously raging and idling through as it expands and contracts from a wide flood plain to a series of raging rapids. Nimule is also home a large elephant population (largely spared during the conflict). Nimule was also the sole beachhead of the Sudan People's Liberation Movement, when the north and south engaged in bitter trench warfare on the very edge of the park.
Traveling by small plane, land rover, and foot with the Wildlife Conservation society's South Sudan team and its dynamic director Paul Elkan, we visited the series of White Nile rapids on the edge of the park. WCS is engaged in regional biodiversity conservation, eco-tourism development, and nation-building for South Sudan, and has been a partner in the region for a number of projects and programs. I have never seen such a roar of water (see and play the embedded video) where boils and cauldrons flow violently upstream due to huge volume and narrow channel the Fula Rapids occupy. Several photos of the rapids, the fishing communities on the banks, and the park rangers illustrate this blog.
The site raised a number of fundamental development opportunities and challenges for a nation that now has less than 200 megawatts of electric power generation. First, how can ecologically sustainable run-of-the-river hydro and eco-development be designed and implemented in such a removed and underdeveloped region? By some estimates, the Fula rapids could yield 60 megawatts of electric capacity. Meanwhile, there are several 700 to 800 megawatt projects large dam projects envisioned for the White Nile. Can efforts to build energy infrastructure and conservation dovetail with the needs to build regional power grids, and at a higher level, a regional power pool? How would smaller-scale run-of-the-river hydro compare to large dams, which will be always be on the agenda for a river and region as underdeveloped as the White Nile?
These sorts of sustainable energy developments hold great promise to support nation-building in a region that very much is ready for this push.


text:
Don't try to pretend your gibes and judgments of the overweight people in your life are for their own good. Florida researchers have evidence that discriminating against fat people only makes them fatter.
"People often rationalize that it's OK to discriminate based on weight because it will motivate the victim to lose pounds," Angelina Sutin, a psychologist at the Florida State College of Medicine in Tallahassee, tells Shots. "But our findings suggest the opposite."
Sutin and a colleague checked survey data from more than 6,000 American men and women age 50 and older who were asked how often in their daily lives they experienced different types of discrimination. Examples ranged from discourtesy or refusal of restaurant service to not getting a job or promotion.
The survey then asked the respondents why they thought the discrimination happened. Was it because of their race or age, for example, or their sex, age or weight? Researchers also measured the participants' weight and height.
Four years later, a follow-up survey asked the same questions and checked for changes in weight.
Overweight people who said they'd experienced discrimination based on weight were more than twice as likely to be obese four years later than people who didn't mention such discrimination. And those who started out obese were three times more likely to remain so if they'd been harshly targeted because of their weight. Other types of discrimination showed no effect on weight.
Sutin's study, published in the latest issue of the online journal PLOS One, wasn't designed to get at why weight discrimination led many fat people to pack on even more pounds. But other research suggests that increased rates of depression, emotional eating and low-self esteem likely play a role. So does increased stress (and the associated hormonal surges that can trigger even more hunger and eating), as well as the avoidance of exercise.
"If someone's mean to you at the gym because of your weight or acts like you don't belong there," Sutin says, "you're less likely to go back."
The roots of obesity are complex and include genetics and other factors that go well beyond individual choice. "Trying to promote healthy behaviors is a good thing," she says, but shaming someone has no place in the solution.
Unfortunately, weight-related prejudiceand discrimination persists in many spheres and is only increasing among employers, teachers — and doctors.
Copyright 2021 NPR. To see more, visit https://www.npr.org.


text: NONE CUSTOMIZED items will generally be shipped out within 1 business day of cleared payment. This includes none customized T-shirts, Sweatshirts and accessories. CUSTOMIZED items will generally ship out within 7 business days of cleared payment in includes Lace Up Tees, Batik Shirts, Denim Shorts and Jeans. Please email us to confirm availability of some custom made items if you need them shipped out EXPRESS. In some cases, custom made items can ship quicker than 7 business days.


text:
You will receive a zipped folder containing an SVG, PNG, DXF, and EPS file.
Your downloads will not have the watermark shown in the listing photos.
This listing is for a digital download only. No physical product will be mailed.
This listing is for the frame only. INITIALS/MONOGRAM FONT ARE NOT INCLUDED!
You can use these files with programs such as Silhouette Studio, Cricut Design Space, Inkscape, Adobe Photoshop, Adobe Illustrator, etc. Please verify that these file types will work with your specific program and/or cutting machine before purchasing.
It is your responsibility to check the USPTO database and research trademarks for any items that you wish to sell.
Due to the digital nature of this product, all sales are final and no refunds will be given. However, if you have any issues using these files with a compatible machine or program, please contact us and we will work to solve the problem. Please allow 24-72 hours for a response.
Crazy Crafty Lady Co. owns the copyright to these files.
You may use these files to make and sell physical products for personal or small business use (up to 100 times per listing purchased) to create handmade physical items. You MAY NOT resell, trade, give away, or redistribute these files in any way or use any part of this design to create other designs for purchase.
View our full License and Terms here.
By purchasing and downloading these files, you are agreeing to the terms and conditions stated above.


text:
Pantyhose Pinups
ALSOnDemand.com 100% Exclusive Content
Reduced Size Image Samples - Photosets Released in Up to 4750px+ Breathtaking High Res - Easy Zip Downloads
Sara Jaymes
Get this complete scene featuring 237 pictures for as little as $0.99!
Get More Stunning Hi-Res Images and True High-Def Videos!
Premium Quality Erotica - No Recurring Billing, Membership Fees, or Minutes!
Get to Know Our Models More Intimately at ALSOnDemand.com!
The world's most beautiful girls doing the naughtiest things:
Crazy Toys, Fisting, Peeing, Anal, Speculums, Public Nudity, and Much More!
Check Out ALSOnDemand.com Now - No Recurring Memberships!


text:
Learn more about Norton Secure VPN protection capabilities for tethered devices
With your purchase of Norton Secure VPN you can only protect the Wi-Fi connection on the device it is installed on. It does not protect any other device that is tethered to your device. To protect your tethered devices, you need to install Norton Secure VPN app on each of the devices.
You can purchase and install Norton Secure VPN on other devices from App Store or Play Store to have a secure Wi-Fi connection.
Help us improve this solution.
Thank you for helping to improve this experience.
What would you like to do now?
Browse for solutions, search the Norton Community, or Contact Us.
DOCID: v117622360
Operating System: Windows
Last modified: 09/06/2023
Operating System: Windows
Last modified: 09/06/2023


text:
Welcome to Spokane Software
The Spokane System is a leading agricultural ERP system for the grower, packer and shipper of agricultural products throughout the U.S. for over 37 years.
Spokane's PackPoint module is the answer to the Produce Traceability Initiative PTI and Global Trade Item Number GTIN requirements. PackPoint is feature rich with real-time detailed packer and product information, including a payroll interface.
Spokane Software develops platform-independent clients that take full advantage of the latest desktop technology and applications that utilize IBM® Power Systems technology for reliability, performance, and ease of use. The resulting solutions are powerful, fast, easy to use, and comprehensive.
In addition to full-featured, ready to run applications, we provide custom modifications and enhancements. Users of the Spokane System applications enjoy the benefit of a product that evolves with the industry and their business.
For additional information, please contact us. You may also call Sales directly at (509) 872-5000.
Thank you,
Tim Smith,


text:
Whenever you think of One Night Stand many questions starts arising in your mind. As one-night stand is taboo in our society and culture but we can't go away the fact of our modernisation. Sex. Strangers. Intimacy. Awkwardness. Ecstasy these all take place when we think and talk about one-night stands. But when we recently reported that Tanuj Virwani's One-night Stand is an all time hyped story and it touched a nerve because it is with none other Bollywood hotty Sunny Leone. So we decided to get an expert Tanuj on the topic and asked him to break down the pros and cons of a one night stand. Tanuj says, " A one-night stand can is all about fun and it's your chance to go out wild for one night. it is a spontaneous sexual adventure without further commitment. With one-night stands, however, interactions are merely physical. Take my tips for one-night stands and run."
So this, however, is the right way to go about it:
Where to Find your mate:
Parties, Marriages or hang out of a group of friends. Especially that places that were female includes like vacations, holidays, birthday bashes and dance clubs.
Whom to select:
Find a girl who usually trying to be noticed. Women who want wants to have fun all night will be one to settle down with.
What Girls Wants:
Women like sex too, and you shouldn't be deprived just because you have yet to meet your match.
Watch your first step:
If you want to call yourself a gentleman make it all clear all about the night before it all started whether you are going to in touch are else it's just a fun matter to both of you.
Signal to start:
when she suggests—or agrees with your suggestion—that you go to another level. It can be mutual understanding for both of you as you are quite young enough to take your responsibilities.
Where to execute the plan:
The best place is to go to her place, not yours. She'll be more comfortable and she can trust you as it's her place.
The Exit plan:
When it's time to go, just kiss on the cheek and a say the last message as you no longer going to be in touch with her. "I had a really fun time with you" is the perfect exit line. as it contains no promise or any future engagements.