浏览器之间的渲染问题

时间:2011-05-30 06:15:28

标签: html css cross-browser positioning

首先,我刚开始学习html&大约一个星期前,css像一个疯子一样不停,我决定标记几年前我创造的设计。我知道我的HTML和/或CSS存在问题,但我刚刚开始尝试使用最佳实践。我也许可以使用更多的速记。无论如何,我在闲聊。

我认为问题是,我一直在使用的绝对定位。经过相当多的故障排除后,我将Firefox和Chrome放在同一页面上。但是,我不认为我的布局是流动的,所以在Chrome中,当我使用cmd +进行缩放时,一切都完全没有了。 Firefox中没有问题。 IE浏览器本身就是另一个怪物。事物遍布整个地方。真的很令人不安。

这让我发疯了。如果事情没有按照你想要的方式发挥作用,那就是一场挣扎,但我喜欢学习网页设计。如果有人可以提供帮助,我们将不胜感激。我在下面发布了我的代码......

HTML:

<body>
<div id="main">
    <div class="container">

        <div id="header">
                <div id="searchBar">
                <form action=""> <small>Search</small> <input type="text" name="search" /></form></div>
                <div id="logo">
                    <h1><a href="">Hell, Michigan<a/></h1>
                </div>
            <div id="menu">
                <ul>
                    <li><a href="" class="active">Home</a></li>
                    <li><a href="">Things To See & Do</a></li>
                    <li><a href="">Where To Stay</a></li>
                    <li><a href="">Plan Your Trip</a></li>
                    <li><a href="">History</a></li>
                    <li><a href="">Contact</a></li>
                </ul>
            </div> <!--menu-->
        </div> <!--header-->

        <div id="mainContent">
            <img src="images/main_content.png" width="791" height="209" alt="must see must do" />
        </div>

        <div id="attractions">
            <ul>
                <li id="chapel">
                <h2><a href="" title="Get Hitched in Hell!">Hell Wedding Chapel</a></h2>
                <p>A marriage made in hell can only get better. Tie the knot in Hell's very own
                Wedding Chapel, or renew your vows before hell freezes over!</p></li>

                <li id="run">
                <h2><a href="" title="Run for your lives!">Run Thru Hell</a></h2>
                <p>Not everyone can say that they've run thru hell. Partake in Hell's classic 5 or
                10 mile race, and get a T-shirt that says, <q>I ran thru hell!</q></p></li>

                <li id="lastRides">
                <h2><a href="" title="Your Last Ride Awaits!">Last Rides Reunion</a></h2>
                <p>The annual Last Rides Reunion is a must see event in late September. Witness over 40
                hearses drive through town. Will this be your last ride?</p></li>
            </ul>   
        </div> <!--main content-->

        <div id="subContent">
            <img src="images/sub_content.png" width="791" height="156" alt="choose activity" />
        </div>

        <div id="activities">
            <ul>
                <li id="activitiesOne">
                <h3><a href="" title="Picnic or Hike in Hell!">Picnic or Hike</a></h3></li>

                <li id="activitiesTwo">
                <h3><a href="" title="Canoe or Bike in Hell!">Canoe or Bike</a></h3></li>
            </ul>   
        </div> <!--sub content-->

        <div id="socialContent">
            <h4>Connect with us</h4>
            <ul>
                <li id="twitter">
                <h5><a href="">Hell Michigan on Twitter</a></h5></li>

                <li id="facebook">
                <h5><a href="">Hell Michigan on Facebook</a></h5></li>

                <li id="youtube">
                <h5><a href="">Hell Michigan on YouTube</a></h5></li>
            </ul>
        </div> <!--social content-->

        <div id="footer">
            <p>&copy; Hell Michigan &nbsp;&nbsp;
                <a href="privacy.htm">Privacy Policy</a> |
                <a href="terms.htm">Terms and Conditions</a>
            </p>
        </div> <!--footer-->
    </div> <!--containter-->
</div> <!--main-->
</body>
</html>

CSS:

/*
    Hell Michigan Demo Page
    Design & Markup by Khoi Nguyen
*/

* {
    margin: 0;
    padding: 0;
}

body {
    font-family: Rockwell, Georgia, serif;    
    background-color: #fff;
    margin: 0;          
    padding: 0;         
}



#menu a {
    color: #fff
}

#main {
    width: 791px;       
    margin: 0 auto;     
    background: #fff;       
    position: relative;
}

#header {
    height: 118px;  
    background-color: #fff;
}

/* 
    Search-Bar
*/

#header #searchBar {
    position: absolute;
    left: 595px;
    top: 20px;
}

#logo a:link {
    height: 45px;
    width: 478px;
    display: block;         
    text-indent: -9999em;   
    background: url(../images/logo.png) no-repeat left bottom;
    border: 0;           
    padding: .3em .3em;
    margin: 0 .3em;
}

/* 
    Navigation
*/

#header #menu {        
    left: 791px;
    bottom: 0px;
}

#menu ul {               
    color: #fff;
    list-style-type: none;
    font-family: Helvetica, sans-serif;
    font-size: 1.5ex;
    font-weight: bold;
    text-transform: uppercase;
    margin-top: 12px;
    margin-left: 5px;
    padding: 0 1px 0 0;
    text-align: center;
}

#menu li {               
    float: left;
    margin: 0;
    padding: 0;
}

#menu li a:link {

    display: block;         
    color: #fff;            
    text-decoration: none; 
    padding: 0 0 0 0; 
    margin-right: 1px;
    width: 139px;
    line-height: 31px;
    background: url(../images/navigation_dual.jpg) no-repeat left bottom;
    border: none;          
}

#menu li a:hover {
    color: #000;         
    background-position: left top;     
}

#menu li a.active {
    height: 31px;
    width: 80px;
    display: block;
    color: #000;
    background: url(../images/home.jpg) no-repeat;
}

#menu li a.active {
    cursor: default;
}

/* 
    Main-Content
*/

#mainContent img {
    position: relative;
    margin-top: .5em;
}

#attractions ul  #chapel a:link {
    position: absolute;
    top: 129px;
    left: 328px;
    width: 151px;
    height: 201px;
    margin: 0;
    padding: 0;
    background: url(../images/chapel_dual.png) no-repeat left bottom;
    text-indent: -9999em;
}

#attractions ul #chapel a:hover {
    background-position: left top;     
}

#attractions ul  #run a:link {
    position: absolute;
    top: 129px;
    left: 482px;
    width: 151px;
    height: 201px;
    margin: 0;
    padding: 0;
    background: url(../images/run_dual.jpg) no-repeat left bottom;
    text-indent: -9999em;
}

#attractions ul #run a:hover {
    background-position: left top;     
}

#attractions ul  #lastRides a:link {
    position: absolute;
    top: 129px;
    left: 636px;
    width: 151px;
    height: 201px;
    margin: 0;
    padding: 0;
    background: url(../images/last_rides_dual.jpg) no-repeat left bottom;
    text-indent: -9999em;
}

#attractions ul #lastRides a:hover {
    background-position: left top;      
}

#attractions ul {
    list-style: none;
    overflow: auto;
}

#chapel p {
    position: absolute;
    font-size: .8em;
    color: gray;
    top: 340px;
    left: 328px;
    width: 142px;
    height: 30px;
    margin: 0;
    padding: 0;
    z-index: 1;
}

#run p {
    position: absolute;
    font-size: .8em;
    color: gray;
    top: 340px;
    left: 482px;
    width: 142px;
    height: 30px;
    margin: 0;
    padding: 0;
    z-index: 1;
}

#lastRides p {
    position: absolute;
    font-size: .8em;
    color: gray;
    top: 340px;
    left: 636px;
    width: 142px;
    height: 30px;
    margin: 0;
    padding: 0;
    z-index: 1;
}

/* 
    Sub-Content
*/

#activities ul {
    list-style: none;
}

#subContent img {
    position: relative;
    margin-top: 106px;
}

#activities ul  #activitiesOne a:link {
    position: absolute;
    top: 448px;
    left: 4.5px;
    width: 197px;
    height: 148px;
    margin: 0;
    padding: 0;
    background: url(../images/picnic_hike_dual.png) no-repeat left bottom;
    text-indent: -9999em;
}

#activities ul #activitiesOne a:hover {
    background-position: left top;      
}

#activities ul  #activitiesTwo a:link {
    position: absolute;
    top: 448px;
    left: 209px;
    width: 304px;
    height: 148px;
    margin: 0;
    padding: 0;
    background: url(../images/canoe_bike_dual.png) no-repeat left bottom;
    text-indent: -9999em;
}

#activities ul #activitiesTwo a:hover {
    background-position: left top;      
}

1 个答案:

答案 0 :(得分:1)

学习好运,它将全部通过练习来实现,IE对每个人来说都是痛苦的,所以这也是正常的:)

你可以做的第一件事就是习惯于在你的css文件的顶部放置一个“重置css”代码 - 这是你可以使用的一个非常好的代码:

http://developer.yahoo.com/yui/reset/#code

它的作用是让所有浏览器在显示内容时都处于“同一页面”。

然后,我建议您尝试从空白页面开始,逐个添加元素,并检查每个元素以查看它在所有浏览器中的行为是否正确,并根据需要进行调整。最终你会开始本能地知道如何以正确的方式做事情,并且需要更少的检查。

许多开发人员还做的另一件事:选择你的“主浏览器”,你要开发的东西,确保它看起来很好,然后检查和调整其他浏览器的东西。要使这种方法有意义,您的主浏览器需要是一个符合标准的现代浏览器,如Firefox(Safari和Chrome也可以)。然后你最后开发IE浏览器,因为它预计它会行为不端并需要特殊处理(你可以使用条件评论来提供它:http://www.quirksmode.org/css/condcom.html

另一个有用的链接,修复了您将遇到的内容: http://www.positioniseverything.net/

要了解有关液体布局的更多信息,请查看以下内容: http://www.cssliquid.com/