Log in

View Full Version : Website Looks Different in different Browsers



alakbd
08-23-2012, 04:19 AM
Mates,
Here is my testing website that I am currently working on.But I found it looks horrible some other browsers including safari,Mozilla firefox,Opera. But it looks ok in IE9 which I always use.I need some suggestion on this pls.I know there are some error but dont know what are those.Can you pls help.
Here is my testing website http://www.dublinawamileague.net46.net/DAIndex.html# . I am also including some sreen shots of different browsers.
Here is the code


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Spry Content Slideshow Wanderlust : &lt;default&gt;</title>
<link type='text/css' href='DA/wanderlust-brown.css' rel='stylesheet'/>
<script type='text/javascript' src='DA/SpryDOMUtils.js'></script>
<script type='text/javascript' src='DA/SpryDOMEffects.js'></script>
<script type='text/javascript' src='DA/SpryWidget.js'></script>
<script type='text/javascript' src='DA/SpryPanelSelector.js'></script>
<script type='text/javascript' src='DA/SpryPanelSet.js'></script>
<script type='text/javascript' src='DA/SpryFadingPanels.js'></script>
<script type='text/javascript' src='DA/SpryContentSlideShow.js'></script>
<script src="DA/SpryMenuBar.js" type="text/javascript"></script>
<title>Untitled Document</title>
<style type="text/css">
<!--
body {
font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
background: #4E5869;
margin: 0;
padding: 0;
color: #000;
}

/* ~~ Element/tag selectors ~~ */
ul, ol, dl { /* Due to variations between browsers, it's best practices to zero padding and margin on lists. For consistency, you can either specify the amounts you want here, or on the list items (LI, DT, DD) they contain. Remember that what you do here will cascade to the .nav list unless you write a more specific selector. */
padding: 0;
margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
margin-top: 0; /* removing the top margin gets around an issue where margins can escape from their containing div. The remaining bottom margin will hold it away from any elements that follow. */
padding-right: 15px;
padding-left: 15px; /* adding the padding to the sides of the elements within the divs, instead of the divs themselves, gets rid of any box model math. A nested div with side padding can also be used as an alternate method. */
}
a img { /* this selector removes the default blue border displayed in some browsers around an image when it is surrounded by a link */
border: none;
}

/* ~~ Styling for your site's links must remain in this order - including the group of selectors that create the hover effect. ~~ */
a:link {
color:#414958;
text-decoration: underline; /* unless you style your links to look extremely unique, it's best to provide underlines for quick visual identification */
}
a:visited {
color: #4E5869;
text-decoration: underline;
}
a:hover, a:active, a:focus { /* this group of selectors will give a keyboard navigator the same hover experience as the person using a mouse. */
text-decoration: none;
}

/* ~~ this container surrounds all other divs giving them their percentage-based width ~~ */
.container {
width: 100%;
max-width: 1260px;/* a max-width may be desirable to keep this layout from getting too wide on a large monitor. This keeps line length more readable. IE6 does not respect this declaration. */
min-width: 780px;/* a min-width may be desirable to keep this layout from getting too narrow. This keeps line length more readable in the side columns. IE6 does not respect this declaration. */
background: #FFF;
margin: 0 auto; /* the auto value on the sides, coupled with the width, centers the layout. It is not needed if you set the .container's width to 100%. */
}

/* ~~ the header is not given a width. It will extend the full width of your layout. It contains an image placeholder that should be replaced with your own linked logo ~~ */
.header {
background: #6F7D94;
}

/* ~~ These are the columns for the layout. ~~

1) Padding is only placed on the top and/or bottom of the divs. The elements within these divs have padding on their sides. This saves you from any "box model math". Keep in mind, if you add any side padding or border to the div itself, it will be added to the width you define to create the *total* width. You may also choose to remove the padding on the element in the div and place a second div within it with no width and the padding necessary for your design.

2) No margin has been given to the columns since they are all floated. If you must add margin, avoid placing it on the side you're floating toward (for example: a right margin on a div set to float right). Many times, padding can be used instead. For divs where this rule must be broken, you should add a "display:inline" declaration to the div's rule to tame a bug where some versions of Internet Explorer double the margin.

3) Since classes can be used multiple times in a document (and an element can also have multiple classes applied), the columns have been assigned class names instead of IDs. For example, two sidebar divs could be stacked if necessary. These can very easily be changed to IDs if that's your preference, as long as you'll only be using them once per document.

4) If you prefer your nav on the right instead of the left, simply float these columns the opposite direction (all right instead of all left) and they'll render in reverse order. There's no need to move the divs around in the HTML source.

*/

.sidebar1 {
float: left;
width: 20%;
background: #93A5C4;
padding-bottom: 10px;
}
.content {
padding: 10px 0;
width: 56%;
float: left;
}
.sidebar2 {
float: right;
width: 24%;
background: #93a5c4;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
padding: 10px 0;
}
.sidebar3 {
float: right;
width: 24%;
background: #999966;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
padding: 10px 0;
}


/* ~~ This grouped selector gives the lists in the .content area space ~~ */
.content ul, .content ol {
padding: 0 15px 15px 40px; /* this padding mirrors the right padding in the headings and paragraph rule above. Padding was placed on the bottom for space between other elements on the lists and on the left to create the indention. These may be adjusted as you wish. */
}
/* ~~ The navigation list styles (can be removed if you choose to use a premade flyout menu like Spry) ~~ */
ul.nav {
list-style: none; /* this removes the list marker */
border-top: 1px solid #666; /* this creates the top border for the links - all others are placed using a bottom border on the LI */
margin-bottom: 15px; /* this creates the space between the navigation on the content below */
}
ul.nav li {
border-bottom: 1px solid #666; /* this creates the button separation */
}
ul.nav a, ul.nav a:visited { /* grouping these selectors makes sure that your links retain their button look even after being visited */
padding: 5px 5px 5px 15px;
display: block; /* this gives the link block properties causing it to fill the whole LI containing it. This causes the entire area to react to a mouse click. */
text-decoration: none;
background: #8090AB;
color: #000;
}
ul.nav a:hover, ul.nav a:active, ul.nav a:focus { /* this changes the background and text color for both mouse and keyboard navigators */
background: #6F7D94;
color: #FFF;
}


/* ~~The footer ~~ */
.footer {
padding: 10px 0;
background: #6F7D94;
position: relative;/* this gives IE6 hasLayout to properly clear */
clear: both; /* this clear property forces the .container to understand where the columns end and contain them */
}

/* ~~miscellaneous float/clear classes~~ */
.fltrt { /* this class can be used to float an element right in your page. The floated element must precede the element it should be next to on the page. */
float: right;
margin-left: 8px;
}
.fltlft { /* this class can be used to float an element left in your page. The floated element must precede the element it should be next to on the page. */
float: left;
margin-right: 8px;
}
.clearfloat { /* this class can be placed on a <br /> or empty div as the final element following the last floated div (within the #container) if the #footer is removed or taken out of the #container */
clear:both;
height:0;
font-size: 1px;
line-height: 0px;
}
-->
</style><!--[if lte IE 7]>
<style>
.content { margin-right: -1px; } /* this 1px negative margin can be placed on any of the columns in this layout with the same corrective effect. */
ul.nav a { zoom: 1; } /* the zoom property gives IE the hasLayout trigger it needs to correct extra whiltespace between the links */
</style>
<![endif]-->
<link href="DA/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
/* Give the menu bar a width and set the margins to "auto"
* so that the browser does the centering.
*/

ul.MenuBarHorizontal {
width: 83.85em;
margin: auto;
}
-->
</style>

djr33
08-23-2012, 04:26 AM
You should develop for a browser that generally follows standards (that is, not for IE). Then make adjustments for IE as needed. Otherwise, it will be almost impossible to fix it. This is general advice as I don't immediately see what's wrong with your code and at the moment I don't have time to go through it in detail. It's probably possible to fix this, but I just wanted to recommend what I said as a general strategy for the future.

bernie1227
08-23-2012, 09:19 AM
Browser compatability is an age old problem when it comes to web design (or at least since there have been more browsers than ie and netscape), if you look at Daniel's sight, I've heard that it was designed for ie5 on mac. The upshot of this, is that it will work in everything. Most of the time, you will have to sacrifice some aspect, and that sacrifice, 90% of the time is ie. It's no that the other browsers are rendering badly, but that ie, is actually the one rendering badly, and you have designed it for it. It'd be like designing a helmet for a bike, and then finding out it has to work for a racecar. My advice, its to design it for browsers that have good rendering; firefox, safari, chrome. The idea is not to ignore internet explorer, but the main goal is to get the website to look great on everything, and decent on internet explorer. I'm happy to say however, that internet explorer 10, actually has decent rendering. My suggestion, is to through and fix the code for the other browsers and just leave ie alone for the minute.
I'm really saying to leave internet explorer alone here, as if you think that you're having problems with ie9, then boy, that isn't a scratch on ie6 (still one of the most used internet explorers used)
Bernie

alakbd
08-23-2012, 10:35 AM
Thanks guys but how can I adjust this for standard browser.I made this with deamWaver.There must have been wrong some where.

djr33
08-23-2012, 04:13 PM
Unfortunately, that's what happens when you rely on a WYSIWYG editor. They often generate very bad code (that may or may not work in some/all browsers).

The solution is to edit the code yourself rather than using the 'design'/preview mode. If you do need to use the preview mode, you instead can use the split view so that at least you can keep an eye on the code it generates and over time learn to monitor and correct it.

traq
08-23-2012, 07:31 PM
Even if you stick with DreamWeaver, you need to know what your page looks like in actual browsers - not just in DW's preview window.
(Note; I'd still definitely recommend switching to a plain text/ code editor.)

No one will ever visit your site using DreamWeaver.

Open up that same html file in Firefox, Chrome, Opera, IE, and anything else handy. Every time you finish changing something, save it, and then refresh all the browsers (make sure you turn off caching - which, surprise surprise, is sometimes difficult in IE). If you're working with any PHP/etc., take the time to learn how and install a webserver on your local machine - with packages like xampp (http://www.apachefriends.org/en/xampp.html), it's really not that difficult : )

You'll get far better results, in less time, with fewer problems.

bernie1227
08-23-2012, 08:24 PM
Ahhhh dreamweaver, one of my old IT teachers always said "it's a quick way to make a bad website, always write your own code boys", the problem with WYSIWYG editors as traq or Daniel (can't remember which) said, they write pretty horrific code, so if you're relying on half WYSYWYG and half homemade code, that doesn't sound like a good idea. I would Definately agree with traq, steps to take:
1) switch to text editor (or IDE if your someone like apache tech)
2) write your own code
3) open it in a browser window
4) refresh the page every time you change something
5) ???
6) profit

traq
08-23-2012, 11:41 PM
as traq or Daniel (can't remember which) said...
pretty sure we've both said that, at some point. :)

on the subject of code editors, I started using Komodo (http://www.activestate.com/komodo-edit) last year. it's awesome.

alakbd
08-24-2012, 04:38 AM
Ok, so can you pls tell me is my website looks ok in your browser?

traq
08-24-2012, 05:08 AM
looks more-or-less like most of the screenshots you posted - the "Latest News" and "Select Language" panels are pushed down below the main content. I'll look at it tomorrow when I get a chance.

bernie1227
08-24-2012, 06:33 AM
pretty sure we've both said that, at some point. :)

on the subject of code editors, I started using Komodo (http://www.activestate.com/komodo-edit) last year. it's awesome.

I use komodo, when I want a high powered editor, If I just need to test a script or something quick, I just use npp, but I personally like komodo a lot as well.

bernie1227
08-24-2012, 06:37 AM
tested on all major browsers latest versions, everything is fine on all browsers, except on firefox the header image is shifted to the right. No other positioning problems.

molendijk
08-24-2012, 09:10 PM
On my computer, the site shows as indicated by Bernie: there's a position problem with FF.
But there may be other problems, since the WC3 Markup Validation Service (http://validator.w3.org) indicates that the site has 74 (!) errors.
Arie.
===

keyboard
08-24-2012, 10:46 PM
As molendijk said, there are a lot of problems with your site (non-visible ones).
A couple I picked from just looking at the source; there are images without alt values and you have multiple </html> tags...
Check out this link (http://validator.w3.org/check?uri=http%3A%2F%2Fwww.dublinawamileague.net46.net%2FDAIndex.html%23&charset=%28detect+automatically%29&doctype=Inline&group=0)(the W3C Validatior) (It's for your page).

alakbd
08-24-2012, 11:38 PM
Thanks guys, I will do the validate with another copy of this website and will try to find out if there is anything I can do.As Bernie said with fire fox it shifted from the header is very true.I also tried to fix this but I couldnt.I will try do some changes.

alakbd
08-26-2012, 02:01 PM
Ok,I found those errors insides are minor errors.The prolem with the website is actually positioning.It is related with the width of side bar or content or container within this.
As you guys are expert on this ,can u suggest anything.

molendijk
08-26-2012, 02:27 PM
<br> before the big image on top and then correct the top position with a negative value for margin-top?
Arie.

alakbd
08-28-2012, 09:04 AM
Thanks for the advise but I m wondeering how can I use '-'
value in the top margin?

molendijk
08-28-2012, 10:58 AM
Apparently, you have already put <br> somewhere, because the horizontal position of the header is OK now.
To correct its vertical position, put a div having a negative value for 'margin-top' around the <ul> having id="MenuBar1" class="MenuBarHorizontal", like this:

<div style="margin-top: -15px">
<ul id="MenuBar1" class="MenuBarHorizontal">
<li><a class="MenuBarItemSubmenu" href="#">Home&nbsp;</a>
<ul>
<li><a tabindex="-1" href="#">Item 1.1</a></li>
<li><a tabindex="-1" href="#">Item 1.2</a></li>
<li><a tabindex="-1" href="#">Item 1.3</a></li>
</ul>
</li>
<li><a class="" tabindex="-1" href="#">Activities&nbsp;</a></li>
<li><a class="MenuBarItemSubmenu" tabindex="-1" href="#">News</a>
<ul>
<li><a tabindex="-1" class="MenuBarItemSubmenu" href="#">Item 3.1</a>
<ul>
<li><a tabindex="-1" href="#">Item 3.1.1</a></li>
<li><a tabindex="-1" href="#">Item 3.1.2</a></li>
</ul>
</li>
<li><a tabindex="-1" href="#">Item 3.2</a></li>
<li><a tabindex="-1" href="#">Item 3.3</a></li>
</ul>
</li>
<li><a tabindex="-1" href="#">Contact Us</a></li>
<li><a tabindex="-1" href="#">Contact Us</a></li>
</ul>
</div>
Arie.

alakbd
08-29-2012, 12:22 AM
Brilliant, this was awsome molen.It really worked.I did insert <br> first to see if everything fine,It was working but there were little error about the position which has gone by now after inserting neg top margin value.Thanks very much.

The Overall problem is just now sorted.

djr33
08-29-2012, 02:29 AM
Ok,I found those errors insides are minor errors.The prolem with the website is actually positioning.Honestly, that's the wrong way to look at it. If your code isn't valid, there are so many bad things that can happen, and it's often unpredictable. For example, having multiple </html> tags means that the whole page is significantly unbalanced. It may through some browsers into fallback modes so they're just guessing at what to do. That can certainly affect positioning and other things, but again, it's unpredictable.

There are two main reasons that we validate our pages:
1. Using standards is a good way to make a website work in all/most browsers.
2. When something does go wrong, it's a lot easier to understand and fix when the page is valid. There's just a lot less that could be wrong.

When posting here, your request might be ignored if your code is invalid. You/we can try a few things and see if they happen to work, but we'd just be hoping that the errors aren't causing problems. It might then turn out that we just can't fix it without validating the page (either because it's a real problem due to the error, or because it makes it too hard to figure out what's wrong). And, to be direct about it, invalid code is usually lazy code, so it's nice to see valid code when spending our time to help others. That's not a strict rule here, but you'll definitely get better, faster help if it's easier to help you, and validating your page is one way to make it easier to help you.

I hope that makes sense. My intent isn't to lecture you on it, but it's something that every new web designer must learn. And it's annoying to deal with, it's slow, and it's inconvenient. But it's helpful in the end, even if it seems like something you can just ignore at first.


(To answer in greater detail, there actually are some cases when ignoring an error might be ok, but only when you know exactly why you're ignoring it and have thoroughly tested for support in various browsers or only intend to use it in one browser. But you'll know when this happens because at that point you'll know more (about that one issue at least) than the validator. Until that point, trust it.)