Justian Meyer
Justian Meyer

Reputation: 3703

Divs working in internet explorer but not in Chrome

It looks like my styling in Google Chrome isn't quite working out as I have intended (link). It works just fine on Internet Explorer 8.

Here's the style sheet:

@charset "utf-8";
/* Stylesheet for Northview Game Tickets */

#mainwrapper {
    width:18cm;
    height:25cm;
    background-color:#0F0;
}

#title {
    width:680px;
    height:117px;
    /*background-image:url(http://nhswag.com/tickets/images/title.png);*/
    background-color:#183f61;
}

#title-img {
    width:680px;
    height:117px;
}

#sportimage {
    width:680px;
    height:302px;
    background-image:url(http://nhswag.com/tickets/images/sportimg.png);
}

#instructionstitle {
    width:340px;
    height:57px;
    float:left;
    padding-top:15px;
    /*background-color:#353435;*/
    background-color:#183f61;
    vertical-align:text-bottom;
    color:#FFFFFF;
}

#instructions {
    width:340px;
    height:416px;
    float:left;
    text-align:left;
    padding-top:15px;
    /*background-color:#8B8B8B;*/
    /*background-color:#003;*/
    background-color:#F2EEEA;
}

#ticketinfo {
    width:170px;
    height:189px;
    float:right;
    text-align:left;
    padding-top: 15px;
    padding-left: 15px;
    /*background-color:#767676;*//*#633;*/
    background-color:#d9d5d2;
}

#barcodewrapper {
    width:170px;
    height:189px;
    float:right;
    padding-top:44px;
    /*background-color:#767676;*//*#FFF;*/
    background-color:#d9d5d2;
}

#barcode {
    border-width:thick;
    border-color:#000;
}

#adspace {
    width:340px;
    height:284px;
    float:right;
    padding-top:10px;
    background-image:url(http://nhswag.com/tickets/images/ad.png);
}

#copyrightwrapper {
    width:680px;
    height:57px;
    padding-top:25px;
    background-color:#183f61;
    font-size:12px;
    color:#FFFFFF;
}

What style option may be causing the inconsistencies?

EDIT:

Page source:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="ticketstyle.css" />
<title>NHSWAG Game Ticket</title>
</head>

<?php
    /*
    Required Fields:
    1) name
    2) type (adult/student/child)
    3) price
    4) barcodeid

    ex: http://nhswag.com/tickets/ticketprint.php?name=John%20Smith&type=Adult&price=4.98&barcodeid=9780618503049
    */

    function google_qr($url,$size ='150',$EC_level='L',$margin='0') {
        $url = urlencode($url); 
        echo '<img id="barcode" src="http://chart.apis.google.com/chart?chs='.$size.'x'.$size.'&cht=qr&chld='.$EC_level.'|'.$margin.'&chl='.$url.'" alt="QR code" width="'.$size.'" height="'.$size.'"/>';
    }
?>

<body style="background-color:#b0b0b0">
<center>
<div id="mainwrapper">

    <div id="title">
    </div>


    <div id="sportimage">
        sportimage
    </div>


    <div id="instructionstitle">
    Instructions</div>


    <div id="ticketinfo">
        <strong>Ticket Details:</strong><br><br>
        Name:<br>
        &nbsp;&nbsp;&nbsp;<?php echo $_GET["name"]; ?><br>
        Type:<br>
        &nbsp;&nbsp;&nbsp;<?php echo $_GET["type"]; ?><br>
        Price:<br>
        &nbsp;&nbsp;&nbsp;$<?php echo $_GET["price"]; ?>
    </div>


    <div id="barcodewrapper">
        <center>
            <div id="barcode">
              <?php google_qr('http://www.nhswag.com/tickets/check/ticketcheck.php?barcodeid='.$_GET["barcodeid"],100); ?>
              <?php // echo md5("JustianMeyerNorthview Gwinett Football"); ?>
            </div>
        </center>
    </div>


    <div id="instructions">
        <ol>
            <li>Print this ticket and keep it for your records.</li>
            <li>Present this ticket at the entrance of your <strong>Northview High School</strong> sponsored event.</li>
            <li>Enjoy! Ask the ticket manager for seating.</li>
        </ol>
    </div>


    <div id="adspace">
        <p>Advertisement</p>
        <p>&nbsp;</p>
    </div>
    <div id="copyrightwrapper">
        Copyright &copy; NHSwag Team, 2011
    </div>

</div>
</center>
</body>
</html>

Upvotes: 2

Views: 6986

Answers (3)

thirtydot
thirtydot

Reputation: 228162

Your page is rendering in Quirks mode in IE8:

Quirks mode is a rendering mode used by some web browsers for the sake of maintaining backward compatibility with web pages designed for older browsers or coded without standards conformance.

You can't hope that a page which is created to work in IE Quirks mode will work in any other browser - it almost always won't, as it the case here.

So, you should change the doctype (first line) to <!DOCTYPE html> to get it out of Quirks mode and fix the (numerous) problems from there.

If you need more advice on how to fix your HTML/CSS to work with a proper doctype, let me know and I'll provide a more thorough answer on how to do this.


I tested this in IE7/8, Firefox, Chrome: it renders consistently.

I tried to keep as much of your HTML/CSS as possible; because I did that, the code could be more elegant, but it works!

I added all the styles at the top just to make it easier to test; you should put them in your stylesheet.

You will have to add back in your PHP where appropriate. I added in one tiny snippet of PHP to output the current year.

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>NHSWAG Game Ticket</title>
<style type="text/css">
html, body {
    margin: 0;
    padding: 0;
    border: 0
}
body {
    background: #b0b0b0;
    padding: 5px
}

#mainwrapper {
    width: 680px;
    margin: 0 auto
}

#title {
    height: 117px;
    /*background-image:url(http://nhswag.com/tickets/images/title.png);*/
    background-color: #183f61;
}
#sportimage {
    height: 302px;
    background-image: url(http://nhswag.com/tickets/images/sportimg.png);
}

#floatContainer {
    background: #f2eeea;
    overflow: auto
}
#left {
    float: left;
    width: 50%
}
#right {
    float: right;
    width: 50%
}

#instructionstitle {
    height: 32px;
    padding-top: 12px;
    /*background-color: #353435;*/
    background-color: #183f61;
    vertical-align: text-bottom;
    color: #fff;
    text-align: center
}

#barcodewrapper {
    overflow: auto;
    background: #d9d5d2
}
#barcode {
    float: left;
    padding: 20px
}
#ticketinfo {
    float: left;
    padding: 16px 0
}
#ticketinfo dd {
    margin-left: 12px
}
#ticketinfo dl {
    margin: 0
}

#copyrightwrapper {
    height: 35px;
    padding-top: 22px;
    background-color: #183f61;
    font-size: 12px;
    color: #fff;
    text-align: center
}
#adspace {
    height: 284px;
    background: #fff;
    text-align: center;
    background:url(http://nhswag.com/tickets/images/ad.png) no-repeat
}
#adspace p {
    margin: 0;
    padding: 12px 0
}
</style>
</head>

<body>

<div id="mainwrapper">
    <div id="title">title</div>
    <div id="sportimage">sportimage</div>

    <div id="floatContainer">
        <div id="left">
            <div id="instructionstitle"> Instructions </div>
            <div id="instructions">
                <ol>
                    <li>Print this ticket and keep it for your records.</li>
                    <li>Present this ticket at the entrance of your <strong>Northview High School</strong> sponsored event.</li>
                    <li>Enjoy! Ask the ticket manager for seating.</li>
                </ol>
            </div>
        </div>

        <div id="right">
        <div id="barcodewrapper">
            <div id="barcode"> <img id="barcode" src="http://chart.apis.google.com/chart?chs=100x100&cht=qr&chld=L|0&chl=http%3A%2F%2Fwww.nhswag.com%2Ftickets%2Fcheck%2Fticketcheck.php%3Fbarcodeid%3D" alt="QR code" width="100" height="100"/> </div>
            <div id="ticketinfo"> <strong>Ticket Details:</strong><br>
                <br>
                <dl>
                    <dt>Name:</dt>
                        <dd>John Smith</dd>
                    <dt>Type:</dt>
                        <dd>Student</dd>
                    <dt>Price:</dt>
                        <dd>$5</dd>
                </dl>
                </div>
            </div>
            <div id="adspace">
                <p>Advertisement</p>
                <p>&nbsp;</p>
            </div>
        </div>
    </div>

    <div id="copyrightwrapper"> Copyright &copy; NHSwag Team, <?php echo date('Y') ?></div>
</div>

</body>
</html>

Upvotes: 5

Anton Hasan
Anton Hasan

Reputation: 551

his problem cause by different block model implementation between ie and chrome/firefox/opera (w3c) which ie9 now already comply with standard. I have tested with IE8 and chrome. simple fix:

#copyrightwrapper {
    width: 680px;
    height: 57px;
    padding-top: 25px;
    background-color: #183F61;
    font-size: 12px;
    color: white;
    clear: both; /*add this to make sure footer is in the bottom as u use float before*/
 }

then remove unnecessary padding-top from other float div

Upvotes: 0

mingos
mingos

Reputation: 24502

It's because of IE's default box-sizing (which is non-w3c compliant, BTW, and it's Chrome that's working correctly) when it is in Quirks Mode.

Try this:

#ticketinfo {
    width:170px;
    height:189px;
    float:right;
    text-align:left;
    padding-top: 15px;
    /*padding-left: 15px;*/
    /*background-color:#767676;*//*#633;*/
    background-color:#d9d5d2;
}

In IE the element's width is 170px, in Chrome: 170px + 15px padding.

But what you REALLY should do is to use a correct doctype.

Upvotes: 3

Related Questions