Many variables play a part in the design of a website. We have to consider them all, and what limitations they bring, for a good working design. We must accept certain truths based on the vast number of different pieces of software involved, from the server’s operating system to the browser a person is using. These things may go unnoticed by the average person.
Hosting is the first thing to consider. The server runs on an operating system, usually a version of Windows or Linux/Unix/BSD. Each has its own characteristics. Windows servers, for example, handle .NET programming languages for building websites with VB (Visual Basic) and C# (C Sharp), among others. Linux/Unix/BSD generally do the same things with the PHP language.
Microsoft Windows IIS (Internet Information Services) server-based web page names generally end in “.asp” or “.aspx”, with ASP standing for Active Server Pages. PHP-coded web pages will almost always end with “.php”. One important thing to note is if a site is hosted in a Linux/Unix/BSD operating system, we cannot use ASP pages or code. ASP is Microsoft’s proprietary technology that is not freely distributed, but of course, all web servers handle HTML, the basic language of web page structure. This has become a universal standard over the years.
Different hosting comes into play when trying to add a feature to a website by adding third-party code to it. We need code in the correct language for the site’s server to run in the background. For example, if a site runs on WordPress which is all done in PHP, we should only be adding PHP code to it, not VB or C#. Using code the server does not recognize results in a mess on your website, or worse, a blank screen.
Next in line after the web server is the client’s browser. At the moment there are several different browsers for each operating system. Mozilla’s Firefox, Apple’s Safari, Microsoft’s Internet Explorer, Google’s Chrome, and Opera Software’s Opera are a few well-known browsers. They are all supposed to deliver the same experience, though some go about it in different ways. For example, Microsoft didn’t completely follow the methods that the other browser developers did, and a lot of features weren’t supported by Internet Explorer versions before 9, though it also had similar features that were accessed in different ways. Meanwhile, the other companies not only examined what the open-source community was doing but also communicated with them to come up with better page display standards. With Internet Explorer 9, Microsoft got in the ring too, and they now support more of the community’s developments (HTML5/CSS3), which was a significant step towards browser standards.
Between the browsers, it is hard to achieve a look that is exactly the same. The biggest hurdle that exists is the display of different fonts. Each browser and each operating system renders fonts a little differently still, some slightly wider than others. Printing a web page is another problem; each browser has different settings involved in printing, such as margins, that can’t be controlled by code on the page.
Perhaps the most bizarre problem is that of features breaking mysteriously. Sometimes moving things on a site ends up “blowing up” and scattering pieces of webpages around in different browsers. Javascript is used on many sites for special features, such as rotating ads and tabbed panes. Different browsers handle Javascript and the DOM (Document Object Model) slightly differently, so the rotating ad may look fine in Firefox, but in Chrome it ends up rotating thin slices of the top of each ad. Most of these situations can be programmed around once they are identified, but they show the differences clearly. Also, recently Microsoft’s Internet Explorer 10 had an issue accessing some ASP/ASPX pages that require a login, because ASP’s User Agent sniffing (browser make/version detection) was not programmed to detect anything beyond Internet Explorer version 9. Microsoft knows of this issue and is working to fix it.
It’s impossible to make a website look and work exactly the same with the myriad of different software available. But as the World Wide Web ages and develops, servers and browsers will hopefully move to more unified standards so that we can trust our pages will look and function the same for everyone.