div兼容的问题
网页设计如何解决兼容性问题

网页设计如何解决兼容性问题网页〔制定〕如何解决兼容性问题firefox下div容器定义height后,div不会因为内容超出height而撑大,而i6e下是会被内容撑大,高度限定失效。
所以不要轻易给容器定义height。
下面介绍网页制定如何解决兼容性问题,希望对您有所帮助。
1. 文字大小不兼容同样14px的宋体字,ie下实际占高16px,下留白3px,firefox 下实际占高17px,上留白1px,下留白3px。
文字大小不兼容解决方案:给所有文字设定通用line-height 值2.div高度不兼容firefox下div容器定义height后,div不会因为内容超出height而撑大,而i6e下是会被内容撑大,高度限定失效。
所以不要轻易给容器定义height。
div高度不兼容解决方案:如果设置高度,必须要同时把内容物高度限定,也就是溢出隐藏处理:overflow:hidden;或者当必须要随着内容自适应高度,但又想div有一个最小的高度时候,像这样做min-height: 1400px;max-height:none;_height:1400px;3.div宽度不兼容如果div容器设定float浮动但没设定宽度,那么也会出现ie6和firefox的不兼容。
firefox下内容会撑开容器渗入它前面的div,ie6下该div内容折行而不是我们想象的与同级div在同一行。
div宽度不兼容解决方案:浮动div容器一般必须定义width。
4.div浮动不兼容当前面div有左浮动和右浮动,下面div就会受他们影响也有浮动。
ie或许不用加清除,但firefox下不清除浮动是不行的。
div浮动不兼容解决方案:给下面的div设定清除 clear:both;5. double-margin不兼容ie6下给浮动容器定义margin-left 或者margin-right 实际效果是数值的2倍。
解决方案:给浮动容器定义display:inline。
div标签用法

div标签用法
Div标签是一个比较常用的标签,它可以用来创建块级元素,用来分隔文档的主体部分和其它部分,以完成特定的布局功能。
语法:
<div>....</div>
用途:
1、块级容器:div标签经常用作页面的容器,用来定义一段范围,控制样式,让其他内容放在它的框架里,独立于页面其他部分;
2、页面布局:div标签可以把页面划分成多个区域,用来创建网页多栏式布局;
3、结构美化:div标签可以增加页面的完整性,把内容分块,把不同类型的内容放在不同的div中;
4、表单:表单的所有组件(文本框、单选框、复选框、按钮等)通常包含在div标签里面;
5、特殊元素:div标签可以包含地图、视频、画廊等特殊元素。
使用div标签需要注意以下几点:
1、div没有预定义的样式,它只是一个填充容器,我们需要使用css来定义样式;
2、div标签的语义化不强,有时候不能精准的表达文档的结构;
3、不同的浏览器对div的支持程度不一,有可能会有一些兼容性问题;
4、div标签多次使用,会增加html文件的长度,不利于文件的
优化。
遇到的兼容性问题与解决方法

遇到的兼容性问题与解决⽅法浏览器兼容问题⼀:不同浏览器的标签默认的外补丁和内补丁不同问题症状:随便写⼏个标签,不加样式控制的情况下,各⾃的margin 和padding差异较⼤。
碰到频率:100%解决⽅案:CSS⾥ *{margin:0;padding:0;}备注:这个是最常见的也是最易解决的⼀个浏览器兼容性问题,⼏乎所有的CSS⽂件开头都会⽤通配符*来设置各个标签的内外补丁是0。
浏览器兼容问题⼆:块属性标签float后,⼜有横⾏的margin情况下,在IE6显⽰margin⽐设置的⼤问题症状:常见症状是IE6中后⾯的⼀块被顶到下⼀⾏碰到频率:90%(稍微复杂点的页⾯都会碰到,float布局最常见的浏览器兼容问题)解决⽅案:在float的标签样式控制中加⼊ display:inline;将其转化为⾏内属性备注:我们最常⽤的就是div+CSS布局了,⽽div就是⼀个典型的块属性标签,横向布局的时候我们通常都是⽤div float实现的,横向的间距设置如果⽤margin实现,这就是⼀个必然会碰到的兼容性问题。
浏览器兼容问题三:设置较⼩⾼度标签(⼀般⼩于10px),在IE6,IE7,遨游中⾼度超出⾃⼰设置⾼度问题症状:IE6、7和遨游⾥这个标签的⾼度不受控制,超出⾃⼰设置的⾼度碰到频率:60%解决⽅案:给超出⾼度的标签设置overflow:hidden;或者设置⾏⾼line-height ⼩于你设置的⾼度。
备注:这种情况⼀般出现在我们设置⼩圆⾓背景的标签⾥。
出现这个问题的原因是IE8之前的浏览器都会给标签⼀个最⼩默认的⾏⾼的⾼度。
即使你的标签是空的,这个标签的⾼度还是会达到默认的⾏⾼。
浏览器兼容问题四:⾏内属性标签,设置display:block后采⽤float布局,⼜有横⾏的margin的情况,IE6间距bug问题症状:IE6⾥的间距⽐超过设置的间距碰到⼏率:20%解决⽅案:在display:block;后⾯加⼊display:inline;display:table;备注:⾏内属性标签,为了设置宽⾼,我们需要设置display:block;(除了input标签⽐较特殊)。
css+div排版史上最全的解决浏览器兼容问题

css+div排版史上最全的解决浏览器兼容问题在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果!所有浏览器通用height: 100px;IE6 专用_height: 100px;IE6 专用*height: 100px;IE7 专用*+height: 100px;IE7、FF 共用height: 100px !important;一、CSS 兼容以下两种方法几乎能解决现今所有兼容.1, !important (不是很推荐,用下面的一种感觉最安全)随着IE7对!important的支持, !important 方法现在只针对IE6的兼容.(注意写法.记得该声明位置需要提前.)代码:#wrapper {width: 100px!important;width: 80px;}2, IE6/IE77对FireFox*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签.代码:#wrapper { width: 120px; }*html #wrapper { width: 80px;}*+html #wrapper { width: 60px;}注意:*+html 对IE7的兼容必须保证HTML顶部有如下声明:代码:二、万能 float 闭合(非常重要!) 可以用这个解决多个div对齐时的间距不对,关于clear float 的原理可参见[How T o Clear Floats Without Structural Markup]将以下代码加入Global CSS 中,给需要闭合的div加上class=”clearfix” 即可,屡试不爽.代码:.clearfix:after {content:".";display:block;height:0;clear:both;visibility:hidden;}.clearfix {display:inline-block;}.clearfix {display:block;}三、其他兼容技巧(相当有用)1, FF下给 div 设置 padding 后会导致 width 和 height 增加, 但IE不会.(可用!important解决)2, 居中问题.1).垂直居中.将 line-height 设置为当前 div 相同的高度, 再通过vetical-align: middle.( 注意内容不要换行.)2).水平居中. margin: 0 auto;(当然不是万能)3, 若需给 a 标签内内容加上样式, 需要设置 display: block;(常见于导航标签)4, FF 和 IE 对 BOX 理解的差异导致相差 2px 的还有设为 float的div在ie下 margin加倍等问题.5, ul 标签在 FF 下面默认有 list-style. 和 padding . 最好事先声明, 以避免不必要的麻烦. (常见于导航标签和内容列表)6, 作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow: hidden.以达到高度自适应.7, 关于手形光标. cursor: pointer. 而hand 只适用于 IE.贴上代码: 兼容代码:兼容最推荐的模式。
htmldivcss常见的浏览器兼容问题及解决方法(很全)

div+css教程之常见的浏览器兼容问题及解决方法1.图片下方出现几像素的空白间隙问题说明:这个问题在ie6和ff(火狐)下经常见到,例如 <div><imgsrc=""/></div>这个图片下面会有一条空白间隙,解决方法:给图上一个垂直方向的属性如:vertical-align: top(任意一个就行middle);这个问题从而延伸到,object(视频)和textarea在火狐下也会出现类似的问题,解决方法一样。
细心的朋友会发现在第二节ahuing的重置代码里就有这样一个全局定义object,textarea,img{vertical-align: top;}2.IE6双倍margin的BUG(双边距)问题说明:这是ie6一个著名的bug,当一个元素向一边浮动时,其它同一个方向如果有margin的话,ie6就会产生双倍的margin。
例如:<div style="float: left;margin-left: 10px;"></div>在ie6下显示会有margin-left:20px的距离解决方法:加个_display:inline:属性,例如<div style="float:left;margin-left: 10px;_display: inline;"></div>3.ie6下的浮动元素和非浮动元素间出现3像素BUG问题说明:这也是ie6一个著名的bug,当一个元素浮动时,同级别的文字没有浮动,在ie6下它们之间就会产生3个像素的bug。
例如:<div><img style="float: left;" src=""/>摘要摘要摘要摘要</div>,图片和文字就会出现3像素解决方法:方法一,两个元素都浮动,如:<div><img style="float: left;" src=""/><span style="float: left;">摘要摘要摘要摘要</span></div>;方法二,这种设计时一般图片和文字要有间隙的,做个ie6的hack就行,如:<div><img style="float: left;" src=""/><span style="margin-right: 5px;_margin-right: 2px;">摘要摘要摘要摘要</span></div>4.li在IE中底部空行问题说明:当li里面有两个以上的浮动元素时,li的下面就会产生一条空白间隙,例如<ul class="tlist"><li><span style="float: left;">栏目</span><a style="float: left;" href="#" target="_blank">标题标题标题</a></li></ul>解决方法:这个问题和第一个问题很相似,解决方法也是一样,在li上加个垂直方向的属性,例如:<ul class="tlist"><li style="vertical-align: top;"><span style="float: left;">栏目</span><a style="float: left;" href="#" target="_blank">标题标题标题</a></li></ul>5.IE6样式中文注释后引发失效问题说明:这是ie6 出现的奇怪现象。
div 内部文字当超出时,自动缩小适应

当我们在设计网页或移动应用程序时,经常会遇到一个问题,就是div 内部的文字如果超出了div的宽度,会导致文字溢出,破坏页面的美观性和用户体验。
为了解决这个问题,我们可以使用自动缩小适应的方法来处理div内部文字溢出的情况。
一、分析问题1.1.文字溢出问题在网页或移动应用程序的开发中,我们常常会遇到这样的情况,就是div内部文字过多导致文字溢出,超出div的显示范围,影响用户的阅读体验。
这不仅破坏了页面的美观性,还可能影响用户对内容的浏览和理解。
1.2.解决方案为了解决div内部文字溢出的问题,我们可以采用自动缩小适应的方法来处理。
这种方法可以根据div的宽度自动调整文字的大小,使文字能够完全显示在div内部,同时保持页面的整体布局和美观性。
二、自动缩小适应的实现2.1.使用CSS3属性在实现自动缩小适应的过程中,我们可以使用CSS3中的文本溢出属性来控制文字的显示。
其中,可以使用text-overflow属性来设定文字溢出时的处理方式,使用white-space属性来控制文字的换行方式,使用overflow属性来设置文字溢出时的显示效果。
2.2.设置文字大小除了使用CSS3属性外,我们还可以通过JavaScript来实现自动缩小适应的效果。
通过获取div的宽度和文字的长度,然后动态调整文字的大小,使其能够完全显示在div内部。
这种方法需要考虑文字的最小和最大显示大小,以保证页面的美观性和用户体验。
三、注意事项3.1.兼容性问题在实现自动缩小适应的过程中,我们需要考虑不同浏览器和设备的兼容性。
有些浏览器对CSS3属性的支持可能不够完善,需要通过添加浏览器前缀或使用兼容性处理来解决这一问题。
需要注意不同设备的分辨率和屏幕大小,以保证页面在不同设备上能够正常显示。
3.2.用户体验在调整文字大小的过程中,需要充分考虑用户的阅读体验。
文字大小的调整要有一定的限制,避免出现文字过小导致用户阅读困难的情况。
解决网页不兼容的问题

2013年度最新整理45个div+css兼容性问题与解决方案分类:CSS前端开发2013-03-01 16:41 16人阅读评论(0) 收藏举报1. 默认的内外边距不同问题:各个浏览器默认的内外边距不同解决:*{margin:0;padding:0;}2. 水平居中的问题问题:设置text-align: centerie6-7文本居中,嵌套的块元素也会居中ff /opera /safari /ie8文本会居中,嵌套块不会居中解决:块元素设置1、margin-left:auto;margin-right:auto2、margin:0 auto;3、<div align=”center”></div>3. 垂直居中的问题问题:在浏览器中想要垂直居中,设置vertical-align:middle; 不起作用。
例如:ie6下文本与文本输入框对不齐,需设置vertical-align:middle,但是文本框的内容不会垂直居中解决:给容器设置一个与其高度相同的行高line-height:与容器的height一样4. 关于高度问题问题:如果是动态地添加内容,高度最好不要定义。
浏览器可以自动伸缩,然而如果是静态的内容,高度最好定好。
如果设定了高度,内容过多时,ie6下会自动增加高度、其他浏览器会超出边框解决:1.设置overflow:hidden;2.高度自增height:auto!important;height:100px;5. IE6 默认的div高度问题:ie6默认div高度为一个字体显示的高度,所在ie6下div的高度大于等于一个字的高度,因此在ie6下定义高度为1px的容器,显示的是一个字体的高度解决:为这个容器设置下列属性之一1、设置overflow:hidden;2、设置line-height:1px;3、设置zoom:0.086. IE6 最小高度(宽度)的问题问题:ie6不支持min-height、min-width属性,默认height是最小高度,width是最小宽度。
divcss浏览器兼容性简介

divcss浏览器兼容性简介
欢迎大家在这里学习divcss浏览器兼容性这里是我们给大家整理出来的精彩内容。
我相信,这些问题也肯定是很多朋友在关心的,所以我就给大家谈谈这个!
(1)不同浏览器对高度的识别。
所有浏览器通用:height: 100px;IE6专用:_height: 100px; *height: 100px;IE7专用:*+height: 100px;
(2)不同浏览器默认的内外边距不同。
针对这个问题,我们可以在样式表中设置*{padding:0;margin:0;},对内外边距清零来使得浏览器达到统一,这
样就不会出现不同浏览器可能出现的内外边距导致的问题。
(3)Firefox下给div设置padding后会导致width和height相应的增加,但是IE不会。
这样的话就可以用!important来解决,因为ie6浏览器不识别!important属性,这样css可以设置width:100px !important;width: 120px;padding:0 10px;
(4)margin加倍的问题。
设置float的div在ie下设置的margin会加倍,这其实是一个ie的bug。
如果出现这个问题我们可以对div设置display:inline;这样的话ie就不会显示加倍问题了。
block与inline两个元素:block元素的特点是占满一行,也就是下一个元素会换行,但高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是不会占满一行会和其他元素在同一行上,不可控制(内嵌元素);。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法(原创理论)2011年5月25日发布 / 61次浏览 / 0条评论标签:暂无标签div+css 兼容ie6 ie7 ie8 ie9和FireFox Chrome等浏览器方法1.DOCTYPE 影响 CSS 处理2.FF: div 设置 margin-left, margin-right 为auto 时已经居中, IE 不行3.FF: body 设置 text-align 时, div 需要设置margin: auto(主要是 margin-left,margin-right) 方可居中4.FF: 设置padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width5.FF: 支持 !important, IE 则忽略, 可用 !important 为 FF 特别设置样式6.div 的垂直居中问题:vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。
缺点是要控制内容不要换行7.cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以8.FF: 链接加边框和背景色,需设置 display: block, 同时设置 float: left 保证不换行。
参照menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设height, 可以在 menubar 中插入一个空格。
9.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法:div{margin:30px!important;margin:28px;}注意这两个margin的顺序一定不能写反,据阿捷的说法! important这个属性IE不能识别,但别的浏览器可以识别。
所以在IE下其实解释成这样: div{maring:30px;margin:28px}重复定义的话按照最后一个来执行,所以不可以只写margin:XXpx! important;11.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义ul{margin:0;padding:0;}就能解决大部分问题注意事项:1、float的div一定要闭合。
例如:(其中floatA、floatB的属性已经设置为float:left;)这里的NOTfloatC并不希望继续平移,而是希望往下排。
这段代码在IE中毫无问题,问题出在FF。
原因是NOTfloatC并非float标签,必须将float标签闭合。
在之间加上这个div一定要注意声明位置,一定要放在最恰当的地方,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会产生异常。
并且将clear 这种样式定义为为如下即可:.clear{clear:both;}此外,为了让高度能自动适应,要在wrapper里面加上overflow:hidden;当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE)用zoom:1;可以做到,这样就达到了兼容。
例如某一个wrapper如下定义:.colwrapper{overflow:hidden;zoom:1;margin:5px auto;}2、margin加倍的问题设置为float的div在ie下设置的margin会加倍。
这是一个ie6都存在的bug。
解决方案是在这个div里面加上display:inline;例如:相应的css为#IamFloat{float:left;margin:5px;/*IE下理解为10px*/display:inline;/*IE下再理解为5px*/}3、关于容器的包涵关系很多时候,尤其是容器内有平行布局,例如两、三个float 的div时,宽度很容易出现问题。
在IE中,外层的宽度会被内层更宽的div挤破。
一定要用Photoshop或者Firework量取像素级的精度。
4、关于高度的问题如果是动态地添加内容,高度最好不要定义。
浏览器可以自动伸缩,然而如果是静态的内容,高度最好定好。
(似乎有时候不会自动往下撑开,不知道具体怎么回事)5、最狠的手段 - !important;如果实在没有办法解决一些细节问题,可以用这个方法.FF对于”!important”会自动优先解析,然而IE则会忽略.如下.tabd1{background:url(/res/images/up/tab1.gif) no-repeat 0px0px !important; /*Style for FF*/background:url(/res/images/up/tab1.gif) no-repeat 1px 0px; /* Style for IE */}值得注意的是,一定要将xxxx !important 这句放置在另一句之上,上面已经提过IE7.0对CSS的支持又有新问题。
浏览器多了,网页兼容性更差了,疲于奔命的还是我们,为解决IE7.0的兼容问题,找来了下面这篇文章:现在我大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7对!important可以正确解释,会导致页面没按要求显示!搜索了一下,找到一个针对IE7不错的hack方式就是使用“*+html”,现在用IE7浏览一下,应该没有问题了。
现在写一个CSS可以这样:#example { color: #333; } /* Moz */* html #example { color: #666; } /* IE6 */*+html #example { color: #999; } /* IE7 */那么在firefox下字体颜色显示为#333,IE6下字体颜色显示为#666,IE7下字体颜色显示为#999.关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助.一、CSS HACK以下两种方法几乎能解决现今所有HACK.1, !important随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.)<style>#wrapper{width: 100px!important; /* IE7+FF */width: 80px; /* IE6 */}</style>2, IE6/IE77对FireFox*+html 与 *html 是IE特有的标签, firefox 暂不支持.而*+html 又为 IE7特有标签.<style>#wrapper{#wrapper { width: 120px; } /* FireFox */*html #wrapper { width: 80px;} /* ie6 fixed */*+html #wrapper { width: 60px;} /* ie7 fixed, 注意顺序 */}</style>注意:*+html 对IE7的HACK 必须保证HTML顶部有如下声明:二、万能 float 闭合关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup]将以下代码加入Global CSS 中,给需要闭合的div 加上 class="clearfix" 即可,屡试不爽.<style>/* Clear Fix */.clearfix:after{content:".";display:block;height:0;clear:both;visibil ity:hidden;}.clearfix{display:inline-block;}/* Hide from IE Mac*/.clearfix {display:block;}/* End hide from IE Mac *//* end of clearfix */</style>三、其他兼容技巧1, FF下给 div 设置 padding 后会导致 width 和 height 增加, 但IE不会.(可用!important解决)2, 居中问题.1).垂直居中.将line-height 设置为当前 div 相同的高度, 再通过 vertical-align: middle.( 注意内容不要换行.)2).水平居中. margin: 0 auto;(当然不是万能)3, 若需给 a 标签内内容加上样式, 需要设置 display: block;(常见于导航标签)4, FF 和 IE 对 BOX 理解的差异导致相差 2px 的还有设为 float的div在ie下 margin加倍等问题.5, ul 标签在 FF 下面默认有 list-style 和padding . 最好事先声明, 以避免不必要的麻烦. (常见于导航标签和内容列表)6, 作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow: hidden.以达到高度自适应.7, 关于手形光标. cursor: pointer. 而hand 只适用于 IE.1 针对firefox ie6 ie7的css样式现在大部分都是用!important来hack,对于ie6和firefox测试可以正常显示,但是ie7对!important可以正确解释,会导致页面没按要求显示!找到一个针对IE7不错的hack方式就是使用“*+html”,现在用IE7浏览一下,应该没有问题了。
现在写一个CSS可以这样:#1 { color: #333; } /* Moz */ * html #1 { color: #666; } /* IE6 */ *+html #1 { color: #999; } /* IE7 */那么在firefox下字体颜色显示为#333,IE6下字体颜色显示为#666,IE7下字体颜色显示为#999。
2 css布局中的居中问题主要的样式定义如下:body {TEXT-ALIGN: center;}#center { MARGIN-RIGHT: auto; MARGIN-LEFT: auto; }说明:首先在父级元素定义TEXT-ALIGN: center;这个的意思就是在父级元素内的内容居中;对于IE这样设定就已经可以了。