DIV+CSS 网页排版小解.docx

上传人:b****6 文档编号:6905501 上传时间:2023-01-12 格式:DOCX 页数:14 大小:24.36KB
下载 相关 举报
DIV+CSS 网页排版小解.docx_第1页
第1页 / 共14页
DIV+CSS 网页排版小解.docx_第2页
第2页 / 共14页
DIV+CSS 网页排版小解.docx_第3页
第3页 / 共14页
DIV+CSS 网页排版小解.docx_第4页
第4页 / 共14页
DIV+CSS 网页排版小解.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

DIV+CSS 网页排版小解.docx

《DIV+CSS 网页排版小解.docx》由会员分享,可在线阅读,更多相关《DIV+CSS 网页排版小解.docx(14页珍藏版)》请在冰豆网上搜索。

DIV+CSS 网页排版小解.docx

DIV+CSS网页排版小解

1.ie8下兼容问题,这个最好处理,转化成ie7兼容就可以。

在头部加如下一段代码,然后只要在IE7下兼容了,IE8下面也就兼容了

2.flaot浮动造成IE6下面双倍边距问题,这个最常见,也最好处理,!

important解决,比如

margin-left:

10px!

important;/*IE7,IE8,FF下是10PX*/;

margin-left:

5px;/*IE6下属性写的是5PX,但在显示出来的是10px

3.清除块display,这个可以解决浮动造成的块,造成块后,当DIV背景填色或填图片的时候,会出现背景断开或差一小块。

这种兼容出现的不太多,我做到现在,只遇到过两次,方法是在出现兼容的DIV的CSS中写一个display:

block,或其它属性,中文什么意思我不知道,我英语差,但能达到想要的效果,6e"Z+e%|8G#|

4.很多朋友DIV+CSS的时候,会出现,在IE的几个浏览器下都好了,但是在FF出问题了,用!

important又会把IE7做的不兼容,很头疼,在想,有没有什么方法只对FF下进行操做,我用过这个方法,感觉得是百试不爽,就是在属性前面加符号如:

*、&,¥,#,@,—,+,加过符号的属性只有IE的浏览器才识别,而FF不识别,方法如下(注意有符号的属性和没符号的属性的顺序)

height:

100px;/*FF下显示100的高*/

+height:

120px;/*IE678下显示120高*/

5.有时候,会在布局的时候,发现,有一个DIV浮动了,接下来的一个DIV本来是要在下面显示的,结果跑上面去了,这种情况一般在FF下面会出现,解决的办法就是清除一下浮动,在设置过浮动的那个DIV下面加一个DIV,CSS面写个clear:

both;如下

left;height:

100px;width:

500px;">

both;">

100px;width=300px">

6.再就是居中问题,这个问题在新手身上很多,主要原因是对盒子模型不够理解,没熟记盒子模型,如果发现你的页面没有局中,我现在知道的,有这几个原因:

1.一个是没盒子,就是BODY后的一个大DIV把所有DIV装起来的那个,你没写。

2.就是你写了,但是宽度没用绝对宽度:

而是用一个相对的宽度,想局中,必须用绝对宽度。

-

7.扩展:

如果我想在设计的时候,实现IE6,IE7,FF下出现三种不同的效果,比如IE6下背景红色,IE7下蓝色FF下绿色,这里,我自己试过,可以,用兼容的方法(注意顺序,可以好好理解一下)。

7L&t-o7k-a1I

background:

red;/*FF里显示的红色*/

+background:

blue!

important;/*IE7下面显示的蓝色*/

+background:

green;/*IE6下面显示的绿色*/

8.1.在mozillafirefox和IE中的BOX模型解释不一致导致相差2px解决方法:

以下是引用片段:

div{

margin:

30px!

important;

margin:

28px;

}

注意这两个margin的顺序一定不能写反,!

important这个属性IE不能识别,但别的浏览器可以识别。

所以在IE下其实解释成这样:

以下是引用片段:

div{

maring:

30px;

margin:

28px

}

重复定义的话按照最后一个来执行,所以不可以只写margin:

XXpx!

important;

2.IE5和IE6的BOX解释不一致IE5下div{width:

300px;margin:

010px010px;}div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px,而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。

这时我们可以做如下修改:

以下是引用片段:

div{

width:

300px!

important;

width/**/:

340px;

margin:

010px010px

}

DIV+CSS解决IE6,IE7,IE8,FF兼容问题

2011-07-2521:

11:

47

DIV+CSS解决IE6,IE7,IE8,FF兼容问题

1.IE8下兼容问题,这个最好处理,转化成IE7兼容就可以。

在头部加如下一段代码,然后只要在IE7下兼容了,IE8下面也就兼容了:

1.

2.

2.flaot浮动造成IE6下面双倍边距问题,这个最常见,也最好处理,!

important解决,比如

margin-left:

10px!

important;/*IE7,IE8,FF下是10PX*/;

margin-left:

5px;/*IE6下属性写的是5PX,但在显示出来的是10px

3.清除块display,这个可以解决浮动造成的块,造成块后,当DIV背景填色或填图片的时候,会出现背景断开或差一小块。

这种兼容出现的不太多,我做到现在,只遇到过两次,方法是在出现兼容的DIV的CSS中写一个display:

block,或其它属性,中文什么意思我不知道,我英语差,但能达到想要的效果,6e"Z+e%|8G#|

4.很多朋友DIV+CSS的时候,会出现,在IE的几个浏览器下都好了,但是在FF出问题了,用!

important又会把IE7做的不兼容,很头疼,在想,有没有什么方法只对FF下进行操做,我用过这个方法,感觉得是百试不爽,就是在属性前面加符号如:

*、&,¥,#,@,—,+,加过符号的属性只有IE的浏览器才识别,而FF不识别,方法如下(注意有符号的属性和没符号的属性的顺序)

height:

100px;/*FF下显示100的高*/

+height:

120px;/*IE678下显示120高*/

5.有时候,会在布局的时候,发现,有一个DIV浮动了,接下来的一个DIV本来是要在下面显示的,结果跑上面去了,这种情况一般在FF下面会出现,解决的办法就是清除一下浮动,在设置过浮动的那个DIV下面加一个DIV,CSS面写个clear:

both;如下

1.

left;height:

100px;width:

500px;">

2.

both;">

3.

100px;width=300px">

6.再就是居中问题,这个问题在新手身上很多,主要原因是对盒子模型不够理解,没熟记盒子模型,如果发现你的页面没有局中,我现在知道的,有这几个原因:

1.一个是没盒子,就是BODY后的一个大DIV把所有DIV装起来的那个,你没写。

2.就是你写了,但是宽度没用绝对宽度:

而是用一个相对的宽度,想局中,必须用绝对宽度。

-

7.扩展:

如果我想在设计的时候,实现IE6,IE7,FF下出现三种不同的效果,比如IE6下背景红色,IE7下蓝色FF下绿色,这里,我自己试过,可以,用兼容的方法(注意顺序,可以好好理解一下)。

7L&t-o7k-a1I

background:

red;/*FF里显示的红色*/

+background:

blue!

important;/*IE7下面显示的蓝色*/

+background:

green;/*IE6下面显示的绿色*/

IE6IE7IE8FF浏览器的CSS兼容问题

IE6、IE7、IE8、FF浏览器的CSS兼容问题,本来IE6跟ff之间的兼容是很容易解决的。

加上个IE7会麻烦点,IE8的出现就更头疼了,原来hackIE7的方法又不能用了,怎么办呢?

还好,微软提供了这样一个代码:

1.

把这段代码放到里面,在IE8里面的页面解析起来就跟IE7一模一样的了,所以,基本上可以无视IE8,剩下的代码只需要这样写就可以了

1.background:

#ffc;/*对firefox有效*/

2.*background:

#ccc;/*对IE7有效*/

3._background:

#000;/*只对IE6有效*/

解释一下吧:

◆firefox能解析第一段,后面的两个因为前面加了特殊符号“*”和“_”,firefox认不了,所以只认background:

#ffc,看到的是黄色;

◆IE7前两短都能认,以最后的为准,所以最后解析是background:

#ccc,看到的是灰色;

◆IE6三段都能认,而且“_”这个只有IE6能认,所以最后解析是_background:

#000,看到的是黑色

已经是最简单和最好理解的写法了,如果你是google进来的,我可以很负责任的告诉你,这种方法是ok的,我测试过。

◆IE8的那段兼容7的代码我也测试过了,在我现在的windos7测试版所带的IE8是没问题的,以后IE8正式版出来还管不管用就不知道了。

ps:

如果你发现按我这样写还是有问题的话,请查看一下你的html头,看看之前的内容是不是这样的标准写法

1.

DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"

2.

3."http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

4.

//www.w3.org/1999/xhtml">

这个是现在比较规范的写法,如果你是用dreamweaver做页面的话,默认也是这种规范的,切记,非这种规范写法的,兼容性不能保证。

解决IE6、IE7、Firefox兼容最简单的CSSHack

很早就在这里看到过解决方案,最后发现这个方案还是很可靠的。

当然,唯一的缺点就是每一个属性都要去Hack,但我在很多实践中,只用‘修正’1-2个属性就可以了。

具体写法很容易:

1.#someNode

2.{

3.position:

fixed;

4.#position:

fixed;

5._position:

fixed;

6.}

第一排给Firefox以及其他浏览器看

第二排给IE7(可能以后的IE8、IE9也是如此,谁知道呢)看

第三排给IE6以及更老的版本看

最好的应用就是可以让IE6也“支持”position:

fixed,而且,配合这个原理,可以做到不引入JavaScript代码(仅用IE6的expression),我这里有一个现成的页面,CSS如下写:

1.#ff-r

2.{

3.position:

fixed;

4._position:

absolute;

5.right:

15px;

6.top:

15px;

7._top:

expression(eval(patMode&&

8.patMode=='CSS1Compat')?

9.documentElement.scrollTop+15:

10.document.body.scrollTop+

11.(document.body.clientHeight

12.-this.clientHeight));

13.}

Css代码

1.

2.#body{

3.border:

1pxsolid#00f;/*ff的属性*/

4.border:

1pxsolid#090\9;/*IE6/7/8的属性*/

5.border:

1pxsolid#F90\0;/*IE8支持*/

6._border:

1pxsolid#f00;/*IE6的属性*/

7.}

8.

Html代码

1.

2.

    3.

  • FF下蓝边
  • 4.

  • IE6下红边
  • 5.

  • IE7下绿边
  • 6.

  • IE8下黄边
  • 7.

8.

 

注:

css顺序不能写错,因为ff不认识\9,\0,_写法,所以为蓝边;\9是IE6,7,8的属性,下面代码并没有重写IE7的代码,所以IE7下绿边;同理,\0为ie8属性,相当于重写了颜色,所以IE8下为黄边,_是ie6的属性,重写颜色为红边.

 

div错位/解决IE6、IE7、IE8样式不兼容问题

IE6里DIV错位的问题

采用”FLOAT:

LEFT“的DIV在IE8、IE7、都没问题,IE6下却向下移动,出现空白。

这是因为,IE6采用的内核默认把DIV之间的距离增加了3~5个PX,所以,试试是将下移的DIV的STYLE里增加"margin-left:

-5px;"或者更小。

解决IE7、IE8样式不兼容问题

方法一、要在页面中加入如下HTTPmeta-tag:

只要IE8一读到这个标签,它就会自动启动IE7兼容模式,保证页面完整展示。

方法二、针对整个网站,在IIS中加入如下描述符就可以有相同的效果,当然这么做范围更广。

xmlversion="1.0"encoding="utf-8"?

>

 

解决IE6、IE7、IE8样式不兼容问题

现在我们在做网页的时刻总是要考虑一些浏览器之间的兼容问题。

近期在做一个短信平台的项目。

在项目的开发过程中让我遇到了一件头痛的事情就是IE7与IE8不兼容。

后面想了许多办法得以解决。

现共享如下:

如果你的页面对IE7兼容没有问题,又不想大量修改现有代码,同时又能在IE8中正常使用,微软声称,开发商仅需要在目前兼容IE7的网站上添加一行代码即可解决问题,此代码如下:

CODE:

 

解决firefoxie6ie7的css样式兼容问题

做主题最麻烦的就是CSS样式兼容问题,由于各浏览器对ccs的不同解释,造成本来IE7可正常显示,但到了Firefox、ie6等其它浏览器上,却出现错位、下沉等问题,只得在Firefox、ie6、ie7之间不停的切换调试,汗…最近又有两款浏览器加入googleChrome和IE8,某个浏览器一统天下看来是没希望了,只能尽量克服兼容问题。

找到一篇解决兼容问题的文章,还是很有效的。

1针对firefoxie6ie7的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。

2css布局中的居中问题

主要的样式定义如下:

body{TEXT-ALIGN:

center;}

#center{MARGIN-RIGHT:

auto;MARGIN-LEFT:

auto;}

说明:

首先在父级元素定义TEXT-ALIGN:

center;这个的意思就是在父级元素内的内容居中;对于IE这样设定就已经可以了。

但在mozilla中不能居中。

解决办法就是在子元素定义时候设定时再加上“MARGIN-RIGHT:

auto;MARGIN-LEFT:

auto;”

需要说明的是,如果你想用这个方法使整个页面要居中,建议不要套在一个DIV里,你可以依次拆出多个div,只要在每个拆出的div里定义MARGIN-RIGHT:

auto;MARGIN-LEFT:

auto;就可以了。

3盒模型不同解释.

#box{

width:

600px;

//forie6.0-w\idth:

500px;

//forff+ie6.0

}

#box{

width:

600px!

important

//forff

width:

600px;

//forff+ie6.0

width/**/:

500px;

//forie6.0-

}

4浮动ie产生的双倍距离

#box{float:

left;width:

100px;margin:

000100px;//这种情况之下IE会产生200px的距离display:

inline;//使浮动忽略}

这里细说一下block,inline两个元素,Block元素的特点是:

总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline元素的特点是:

和其他元素在同一行上,…不可控制(内嵌元素);

#box{display:

block;//可以为内嵌元素模拟为块元素display:

inline;//实现同一行排列的的效果diplay:

table;

5IE与宽度和高度的问题

IE不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。

这样问题就大了,如果只用宽度和高度,正常的浏览器里这两个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。

比如要设置背景图片,这个宽度是比较重要的。

要解决这个问题,可以这样:

#box{width:

80px;height:

35px;}html>body#box{width:

auto;height:

auto;min-width:

80px;min-height:

35px;}

6页面的最小宽度

min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。

但IE不认得这个,而它实际上把width当做最小宽度来使。

为了让这一命令在IE上也能用,可以把一个

放到标签下,然后为div指定一个类:

然后CSS这样设计:

#container{

min-width:

600px;

width:

e¬xpression(document.body.clientWidth<600?

“600px”:

“auto”);

}

第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。

它实际上通过Javascript的判断来实现最小宽度。

7清除浮动

.hackbox{

display:

table;

//将对象作为块元素级的表格显示

}

或者

.hackbox{

clear:

both;

}

或者加入:

after(伪对象),设置在对象后发生的内容,通常和content配合使用,IE不支持此伪对象,非Ie浏览器支持,所以并不影响到IE/WIN浏览器。

这种的最麻烦的

……#box:

after{

content:

“.”;

display:

block;

height:

0;

clear:

both;

visibility:

hidden;

}

8DIV浮动IE文本产生3象素的bug

左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距.

#box{

float:

left;

width:

800px;}

#left{

float:

left;

width:

50%;}

#right{

width:

50%;

}

*html#left{

margin-right:

-3px;

//这句是关键

}

HTML代码

9属性选择器(这个不能算是兼容,是隐藏css的一个bug)

p[id]{}div[id]{}

p[id]{}div[id]{}

这个对于IE6.0和IE6.0以下的版本都隐藏,FF和OPera作用

属性选择器和子选择器还是有区别的,子选择器的范围从形式来说缩小了,属性选择器的范围比较大,如p[id]中,所有p标签中有id的都是同样式的.

10IE捉迷藏的问题

当div应用复杂的时候每个栏中又有一些链接,DIV等这个时候容易发生捉迷藏的问题。

有些内容显示不出来,当鼠标选择这个区域是发现内容确实在页面。

解决办法:

对#layout使用line-height属性或者给#layout使用固定高和宽。

页面结构尽量简单。

11高度不适应

高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节,特别是当内层对象使用

margin或paddign时。

例:

p对象中的内容

CSS:

#box{background-color:

#eee;}

#boxp{margin-top:

20px;margin-bottom:

20px;text-align:

center;}

解决方法:

在P对象上下各加2个空的div对象CSS代码:

.1{height:

0px;overflow:

hidden;}或者为DIV加上border属性。

 

注:

IE都能识别*;标准浏览器(如FF)不能识别*;

IE6能识别*,但不能识别!

important,

IE7能识别*,也能识别!

important;

FF不能识别*,但能识别!

important;

 

1.区别IE和非IE浏览器

#tip{

background:

blue;/*非IE背景藍色*/

background:

red\9;/*IE6、IE7、IE8背景紅色*/

}

2.区别

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1