`
andrew1024
  • 浏览: 74790 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

解决IE7不能自适应高度 及各种bug解决方法 div+css

阅读更多
解决IE7不能自适应高度 及各种bug解决方法 div+css

解决IE7不能自适应高度

#content{
min-height:500px;
height:auto;/*IE7*/
_height:500px;/*IE6*/
display:table;/*firefox,opera*/
}

--------------以下搜集自互联网,好文讲解的很详细,读后受益匪浅------------------

bug有三:

   1. 无论是“宽度”的内容过长,还是“高度”的内容过长,都会引发此bug。
   2. 无论是文字、图片,还是任意有宽度和高度概念的“可见元素”,它们的“过宽”和“过高”都会引发此bug。
   3. 任意有宽度和高度概念的“可见元素”,它们在默认状态下的“overflow”样式的值都是“Visible”(即使你没有设置这个样式)。

为了达到最终想要的结果,可能需要使用不推荐使用的措施——css hack。
如何解决“横向撑开”问题
用“word-wrap: break-word”解决

导致布局混乱的主要原因,是IE6对overflow的visible的错误解释,才导致宽度被“撑开”才造成的。所以,我们必须采取措施,让IE6中容器不能那么“放纵孩子”才可以。方法就是使用“word-wrap: break-word”样式(IE特有,FireFox不起任何作用),强制要求容器内的内容不允许“撑开”父容器。下面的示例可能有助于理解。
用“overflow: hidden”解决

显然,用“word-wrap: break-word”又导致了IE(IE6和IE7)和FireFox的显示结果新的不一致。那还有没有其他的办法呢?“擒贼先擒王”,既然是 “overflow: visible”导致的bug,那直接改变“overflow”的值不就可以了吗?所以,使用“overflow: hidden”便能让IE6、IE7和FireFox显示一直。下面的这个示例,可能会有助于你的理解——

如何让“很长度文字”换行显示呢?其实在前面我们已经使用到了,那就是“word-wrap: break-word”。虽然它是IE的特有样式,但是足以先解决IE6和IE7中的问题。但是FireFox中没有这个样式,那FireFox下如何使 “很长文字”自动换行显示呢?我们遗憾的发现FireFox并没有提供类似的样式供我们使用,目前唯一的解决方案是利用JavaScript实现。原理很简单,就是根据宽度,将文本截取成多段,在每段后面强制加上换行符。下面的实现示例可能会有助于你的理解——
<!DOCTYPE html public "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="Keywords" content="博客园,实例代码" />
    <meta name="Description" content="这是一个简单YES!B/S!文章示例页面/>
    <title>YES!B/S!文章示例页面</title>
    <style type="text/css">
        #div1{
        border:1px solid red;
        width:50px;
        word-wrap: break-word;
        }
    </style>
</head>
<body>

<div id="div1">
alonglonglonglonglonglonglonglonglongword from http://justinyoung.cnblogs.com/

</div>


<script type="text/javascript">
    // <![CDATA[
    if(document.getElementById  &&  !document.all)  wordWarp4ff(6)/*数值6根据宽度需要发生变化*/
    function wordWarp4ff(intLen){
    var obj=document.getElementById("div1");
    var strContent=obj.innerHTML; 
    var strTemp="";
    while(strContent.length>intLen){
    strTemp+=strContent.substr(0,intLen)+" "; 
    strContent=strContent.substr(intLen,strContent.length); 
    }
    strTemp+=" "+strContent;
    obj.innerHTML=strTemp;
    }
    // ]]>
</script>
</body>
</html>

    上面解决方法,只是“横向”的、宽度的问题,其实“‘overflow:visible’IE6渲染bug”,同样也会引起纵向的、高度方面的页面布局混乱。解决“纵向撑开bug”和解决“横向撑开bug”需要采用完全不同的解决方案。但是,相比“纵向撑开bug”解决方案,“横向撑开bug”解决方案却简单很多——只要我们让IE7和FireFox,也能像IE6中那样根据内容,自适应高度即可。如何才能让容器在IE7和FireFox中能够自适应高度呢?其实很简单,也是IE7的重要改进之一,使用“min-height”样式。虽然IE7中已经支持“min-height/min-width” 和"max-height/max-width"样式。但是IE6却不认识这些"min-"、"max-"开头的样式,所以,我们还需要使用一个css hack为IE6设置一个“height”,只让IE6认识,IE7和FireFox都不认识。
分享到:
评论

相关推荐

    DIV+CSS相对IE6、IE7和IE8的兼容问题

    标题和描述均提到了“DIV+CSS相对IE6、IE7和IE8的兼容问题”,这揭示了在Web开发中,尤其是针对老旧浏览器如IE6、IE7和IE8进行CSS布局时,开发者可能遇到的一系列挑战。这些浏览器在解析CSS规则时存在独特的行为,...

    div+css常见兼容性问题

    6. 外部`div`不应固定高度,使用`overflow: hidden`可以实现高度自适应。 7. 为了鼠标悬停效果,可以使用`cursor: pointer`,但在IE6中应使用`cursor: hand`。 此外,IE6还有一个著名的“双倍边距BUG”,当一个浮动...

    软件工程师 面试题 DIV+CSS_必考题

    要实现既固定高度又能根据内容自适应,可以使用`min-height`,同时为了兼容IE6,可以设置`height:auto!important; height:200px; min-height:200px;`。 4. **滚动条颜色设置**: 在Web标准中,IE无法通过CSS直接...

    IE6的双倍边距和火狐自适应高度

    为了解决IE6中自适应高度的问题,可以通过以下方法: 1. **显式定义高度:** 可以为`&lt;div&gt;`显式设置一个高度,但这不是最优解,因为它限制了布局的灵活性。 2. **使用`min-height`属性:** 在现代浏览器中,可以...

    css常见的bug(ie)

    以下是一些针对IE浏览器的CSS常见bug及解决策略: 1. **浮动元素的双倍margin问题**: 在IE6中,如果一个浮动元素设置了margin属性,可能会导致实际的外边距比预期的要宽一倍。为了解决这个问题,可以将浮动元素的...

    jsp css+div 后台框架

    "jsp css+div 后台框架"是一种常见的前端与后端技术组合,用于构建高效、美观且用户友好的Web应用程序。这种框架结合了JavaServer Pages(JSP)、Cascading Style Sheets (CSS) 和 Div布局,以实现动态网页设计和...

    变幻之美DIV+CSS

    自适应高度的滑动背景图片及背景图片设置技巧; ?如何解决IE6双倍边距bug; ?认识IE6、IE7特定选择器; ?margin-bottom失效情况的解决; ?将icon图标集成于一个图片文件; ?设置链接变换小图标的样式; ?一张...

    自己整理div+css网页标准版式布局(50种布局方式)

    大四了,把之前学的些东西整理整理分享给大家,适合老师网页设计教材及初学者,里面包含了以下内容: 1、固定宽度CSS版式布局 2、自适应(弹性)宽度CSS版式布局 ... IE6双倍边距bug 4、盒模型层次平面示意图和3D示意图

    DIV+CSS教程——第三天二列和三列布局借鉴.pdf

    解决方法包括使用特定的IE6 hack,如负边距或特定的CSS属性。 8. **CSS布局技巧**: - 通过`display`属性可以将内联元素转换为块级元素,或者将块级元素转换为内联元素,以适应不同的布局需求。 - 使用`box-...

    让CSS兼容IE和Firefox的技巧集合

    描述中的“嘿呌,IE不再是个bug”暗示了这些技巧能帮助开发者有效地解决IE浏览器特有的CSS解析错误。 在Web开发中,CSS兼容性问题常常源于不同浏览器对CSS标准的实现不一致。以下是一些针对IE和Firefox的CSS兼容性...

    十步学会CSS+DIV

    以上就是学习 CSS+DIV 的十步骤,从规划网站到创建模板,再到具体的样式设置和浏览器兼容性处理,每一步都是构建专业网页布局的基础。随着实践和深入学习,你将能够掌握更多高级技巧,如响应式设计、过渡和动画、...

    目前比较全面的浏览器CSS BUG兼容汇总

    以上是针对IE7、6及Firefox的部分CSS兼容性问题的解决方案。在实际开发中,还需要关注其他浏览器如Chrome、Safari和Opera的兼容性,可以使用浏览器前缀、条件注释以及工具如Autoprefixer和Modernizr来帮助处理这些...

    css浏览器兼容.docx

    CSS浏览器兼容性问题解决方案 CSS浏览器兼容性问题是Web开发中常见的问题。不同的浏览器对CSS的解析方式不同,这就导致了浏览器之间的兼容性问题。了解浏览器的兼容性问题是非常重要的,为此,我们总结了一些常见的...

    DIV+CSS教程——第六天html列表.pdf

    解决这个问题的一种方法是使用“清除浮动”(clearing floats)。可以为父元素添加`overflow: auto`或创建一个清浮动的伪元素,如`::after`,并将其`clear`属性设置为`both`。 5. **IE6的双倍边距bug** - 在...

    css浏览器兼容整理

    7. **div嵌套时,外层div高度不能自适应** - 当内部元素的高度超过外部div时,外部div不会自动扩展其高度。可以通过设置 `overflow: auto;` 或使用Flexbox来解决。 8. **div嵌套时y轴上外层div到内层div的距离的...

    05DIV-CSS学习

    《05DIV-CSS学习:三列布局与IE6的3像素bug解析》 在网页设计中,布局是至关重要的环节,而CSS作为样式控制语言,为网页布局提供了强大的工具。本文将重点探讨三列布局的实现方式以及如何处理IE6浏览器中的一个经典...

    CSS兼容IE和Firefox的技巧集合

    #### 技巧6:解决IE中的3像素间距bug 当左侧对象浮动,右侧对象通过`margin-left`定位时,右侧对象内的文本可能会与左侧对象之间出现3像素的间隙。可以通过为左侧对象添加负的`margin-right`来解决这个问题。 #### ...

    CSS浏览器兼容问题整理(IE6.0、IE7.0_与_FireFox)

    标题和描述均指向了一个核心...通过采用正确的布局策略、使用跨浏览器兼容的CSS属性、以及在必要时引入针对性的解决方案,可以有效减轻这些兼容性问题带来的困扰,确保网站在各种浏览器中都能呈现出一致且美观的界面。

    IE6,7,8兼容

    本文主要针对IE6、IE7和IE8以及Firefox浏览器在DIV+CSS布局下的兼容性问题进行分析,并提供一系列解决方案。 #### 二、CSS兼容性技巧 ##### 1. **垂直居中** - **问题描述**:在某些情况下,需要将文字或元素在...

    《CSS全程指南》随书光盘

    内容简介 本书将最有用的CSS技术汇总在一起,在介绍基本的CSS概念和最佳...13.2.7 IE6 Guillotine Bug(断头台) 310 13.2.8 列表背景消失Bug 312 13.2.9 针对IE7.0的hack 313 13.2.10 正确看待IE 314 13.3 小结 315

Global site tag (gtag.js) - Google Analytics