1、<!DOCTYPE 类型 顶级元素(默认html,可省略) 访问权限 "注册//组织//类型 标签定义//语言” URL(引用对象的位置) >详解
1)Strict DTD 为避免表现层的混乱,建议使用此类型。此类型须与层叠样式表(CSS)配合使用:
2)Transitional DTD 可包含 W3C 所期望移入样式表的呈现属性和元素(即在html标签中包含了样式标签)。在不支持层叠样式表(CSS)的浏览器中使用html 呈现样式,建议及这种
类型:
3)Frameset DTD用于带有框架的文档。除 frameset 元素取代了 body 元素之外,Frameset DTD 等同于 Transitional DTD
2、浮动后产生的IE双倍距离(margin加倍)问题
设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方法:在这个div里面加上display:inline;举例说明
Display的三个主要属性:display:none;//不显示
display:block;//转为块状元素可以对内联元素进行块状元素操作
display:inline; //转为内联元素 不换行显示
3、页面的最小宽度和高度问题
其他浏览器用min-width、min-height指定元素最小宽度和高度
ie把正常的width和height当做最小宽度和高度来使。
问题:
如果只用宽度和高度,其他的浏览器里这两个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。
解决方法:
其他浏览器height和width要设置为auto,min-height和min-width设为固定值,ie浏览器height和width设为固定值
1)、使用!important
2)、#box{ width: 80px; height: 35px;}
3)、可以把一个<div> 放到 <body> 标签下,然后为div指定一个类,然后CSS这样设计:
#container{ min-width: 600px; width:expression(document.body.clientWidth < 600? "600px": "auto" );}
第一个min-width是正常的;但第2行的width使用了javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。
以下引用内容:
第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。
4、一个层相对于浏览器居中
我们使用百分比绝对定位,与外补丁负值的技巧,负值的大小为其自身宽度高度除以二。以下引用内容:
5、单行垂直居中
vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:height; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行
6、ie63像素bug
_margin-right:-3px;//_XXXXX只有IE6起作用
7、IE捉迷藏问题
当div应用复杂的时候每个栏中又有一些链接,DIV等,这个时候容易发生捉迷藏的问题。
有些内容显示不出来,当鼠标选择这个区域(拖动选择)是发现内容确实在页面。
解决办法:对#layout使用line-height属性 或者给#layout使用固定高和宽。
8、清除浮动
在浮动层后加一个同辈div class=”clearfloat”,设置样式
例如:<#div id=”floatA” ><#div id=”floatB” ><#div id=”NOTfloatC” >这里的NOTfloatC是希望往下排。(其中floatA、floatB的属性已经设置为float:left;)
上面代码在IE中可以,FF却不行。原因是NOTfloatC并非float标签,必须将float标签闭合。在 <#div class=”floatB”> <#div class=”NOTfloatC”>之间加上 <#div class=”clear”>这个div一定要注意位置,而且必须与两个具有float属性的div同级,之间不能存在嵌套关系,否则会产生异常。并且将clear这种样式定义为为如下即可:
作为外部 wrapper 的 div 不要定固定高度,为使高度能自动适应,要在wrapper里面加上overflow:hidden; 当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE
的layout私有属性(万恶的IE啊!)用zoom:1;这样就达到了兼容。
例如某一个wrapper如下定义:下面是引用内容:
排版用得最多的css描述可能就是float:left.有的时候我们需要在n栏的float div后面做一个统一的背景,如:
如我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的,会发现随着left center right的向下拉长,而page保持高度不变,问题出现的原因在于page不是float属
性,而我们的page由于要居中,不能设置成 float,解决方法如下:
再嵌入一个float left而宽度是100%的DIV解决之
万能float 闭合(非常重要!)
关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup],将以下代码加入Global CSS 中,给需要闭合的div加上 class="clearfix" 即可,
以下为引用内容:
或者这样设置:.hackbox{ display:table; //将对象作为块元素级的表格显示}
解决方法:在P对象上下各加1空的div对象CSS代码:.1{height:0px;overflow:hidden;}或者为DIV加上border属性。
10、IE6下为什么图片下有空隙产生
解决这个BUG的技巧也有很多,可以是改变html的排版,或者设置img 为display:block 或者设置vertical-align 属性为vertical-align:top
bottom middle text-bottom 都可以解决
.
11、LI中内容超过长度后以省略号显示的技巧
此技巧适用与IE与OP浏览器,如下:
12为什么web标准中IE无法设置滚动条颜色了
解决方法:是将body换成html。如下: