解决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的兼容问题”,这揭示了在Web开发中,尤其是针对老旧浏览器如IE6、IE7和IE8进行CSS布局时,开发者可能遇到的一系列挑战。这些浏览器在解析CSS规则时存在独特的行为,...
6. 外部`div`不应固定高度,使用`overflow: hidden`可以实现高度自适应。 7. 为了鼠标悬停效果,可以使用`cursor: pointer`,但在IE6中应使用`cursor: hand`。 此外,IE6还有一个著名的“双倍边距BUG”,当一个浮动...
要实现既固定高度又能根据内容自适应,可以使用`min-height`,同时为了兼容IE6,可以设置`height:auto!important; height:200px; min-height:200px;`。 4. **滚动条颜色设置**: 在Web标准中,IE无法通过CSS直接...
为了解决IE6中自适应高度的问题,可以通过以下方法: 1. **显式定义高度:** 可以为`<div>`显式设置一个高度,但这不是最优解,因为它限制了布局的灵活性。 2. **使用`min-height`属性:** 在现代浏览器中,可以...
以下是一些针对IE浏览器的CSS常见bug及解决策略: 1. **浮动元素的双倍margin问题**: 在IE6中,如果一个浮动元素设置了margin属性,可能会导致实际的外边距比预期的要宽一倍。为了解决这个问题,可以将浮动元素的...
"jsp css+div 后台框架"是一种常见的前端与后端技术组合,用于构建高效、美观且用户友好的Web应用程序。这种框架结合了JavaServer Pages(JSP)、Cascading Style Sheets (CSS) 和 Div布局,以实现动态网页设计和...
自适应高度的滑动背景图片及背景图片设置技巧; ?如何解决IE6双倍边距bug; ?认识IE6、IE7特定选择器; ?margin-bottom失效情况的解决; ?将icon图标集成于一个图片文件; ?设置链接变换小图标的样式; ?一张...
大四了,把之前学的些东西整理整理分享给大家,适合老师网页设计教材及初学者,里面包含了以下内容: 1、固定宽度CSS版式布局 2、自适应(弹性)宽度CSS版式布局 ... IE6双倍边距bug 4、盒模型层次平面示意图和3D示意图
解决方法包括使用特定的IE6 hack,如负边距或特定的CSS属性。 8. **CSS布局技巧**: - 通过`display`属性可以将内联元素转换为块级元素,或者将块级元素转换为内联元素,以适应不同的布局需求。 - 使用`box-...
描述中的“嘿呌,IE不再是个bug”暗示了这些技巧能帮助开发者有效地解决IE浏览器特有的CSS解析错误。 在Web开发中,CSS兼容性问题常常源于不同浏览器对CSS标准的实现不一致。以下是一些针对IE和Firefox的CSS兼容性...
以上就是学习 CSS+DIV 的十步骤,从规划网站到创建模板,再到具体的样式设置和浏览器兼容性处理,每一步都是构建专业网页布局的基础。随着实践和深入学习,你将能够掌握更多高级技巧,如响应式设计、过渡和动画、...
以上是针对IE7、6及Firefox的部分CSS兼容性问题的解决方案。在实际开发中,还需要关注其他浏览器如Chrome、Safari和Opera的兼容性,可以使用浏览器前缀、条件注释以及工具如Autoprefixer和Modernizr来帮助处理这些...
CSS浏览器兼容性问题解决方案 CSS浏览器兼容性问题是Web开发中常见的问题。不同的浏览器对CSS的解析方式不同,这就导致了浏览器之间的兼容性问题。了解浏览器的兼容性问题是非常重要的,为此,我们总结了一些常见的...
解决这个问题的一种方法是使用“清除浮动”(clearing floats)。可以为父元素添加`overflow: auto`或创建一个清浮动的伪元素,如`::after`,并将其`clear`属性设置为`both`。 5. **IE6的双倍边距bug** - 在...
7. **div嵌套时,外层div高度不能自适应** - 当内部元素的高度超过外部div时,外部div不会自动扩展其高度。可以通过设置 `overflow: auto;` 或使用Flexbox来解决。 8. **div嵌套时y轴上外层div到内层div的距离的...
《05DIV-CSS学习:三列布局与IE6的3像素bug解析》 在网页设计中,布局是至关重要的环节,而CSS作为样式控制语言,为网页布局提供了强大的工具。本文将重点探讨三列布局的实现方式以及如何处理IE6浏览器中的一个经典...
#### 技巧6:解决IE中的3像素间距bug 当左侧对象浮动,右侧对象通过`margin-left`定位时,右侧对象内的文本可能会与左侧对象之间出现3像素的间隙。可以通过为左侧对象添加负的`margin-right`来解决这个问题。 #### ...
标题和描述均指向了一个核心...通过采用正确的布局策略、使用跨浏览器兼容的CSS属性、以及在必要时引入针对性的解决方案,可以有效减轻这些兼容性问题带来的困扰,确保网站在各种浏览器中都能呈现出一致且美观的界面。
本文主要针对IE6、IE7和IE8以及Firefox浏览器在DIV+CSS布局下的兼容性问题进行分析,并提供一系列解决方案。 #### 二、CSS兼容性技巧 ##### 1. **垂直居中** - **问题描述**:在某些情况下,需要将文字或元素在...
内容简介 本书将最有用的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