zoukankan      html  css  js  c++  java
  • 【记】关于div容器被撑开的问题

        我最近遇到了div被撑开的问题,无论是要不要被撑开,总之各个浏览器之间的显示是不一样的。首先看下这段代码:

    <style>
    .outer
    {border:2px solid red; width:100px; height:300px;}
    .inner
    {border:1px solid blue; width:300px; height:200px;}
    </style>
    <div class="outer">
        <div class="inner"></div>
    </div>

        我们可以在IE6和其他浏览器上看到的效果是不一样的。

     

        两个图中是不同的效果,第一个图是IE789、FireFox、chrome等浏览器(标准模式)的显示结果。第二个图是IE6下显示的结果。我们清楚的看到,IE6下,外部的容器被自动的撑开了,而其他的浏览器没有被撑开。无论我们想要的效果是图1还是图2,在这里我都进行了尝试。算是解决这个问题的一个参考思路吧。

         首先是如果我们想让其他浏览器自动撑开。这里我的一个解决办法是将外面的容器添加这样一个属性:position:absolute,并且删掉outer中的width,这样,各个浏览器就会根据里面容器的宽度自动撑开了。当然,也可以添加一个min-width来控制最小宽度。

        接下来就是不让外部容器自动撑开。我们看到,除了IE6(由于我的操作系统是win7,IE是9,在IE9的开发者工具中是这样的)之外,其他的浏览器都没有撑开,因此,我们只针对IE6处理,看看如何能不让他自动撑开。在网上找了一下,大部分的结果是overflow:hidden,但是如果我们一定要都显示,我在这里使用的是将内部容器添加position:absolute。这样,里面的内容就会脱离出外部的容器,从而达到显示的效果。

        当然,上面的所有方法都对position做了修改,这样的修改会对容器的性质产生很大的变化,因此,在使用上述的方法之后,网页的布局可能就会发生部分的变化,当然,你也可以使用hack来做。但是无论怎么样,都会对页面产生影响,这主要看这个自己的需求需要到什么程度了。

  • 相关阅读:
    如何实现parseFloat保留小数点后2位
    C#正则表达式整理备忘
    HRESULT:0x80070057 (E_INVALIDARG)的异常的解决方案
    c# using的几种用法
    QQ截图 有快捷键的,如Shift+S
    史上最深刻的黄段子
    文本框回车自动提交
    C#与ASP.NET中DateTime.Now函数详解
    ASP.NET页面生命周期
    .NET中HttpWebRequest详解
  • 原文地址:https://www.cnblogs.com/echoloyuk/p/2550854.html
Copyright © 2011-2022 走看看