|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我在这里借用了新浪博客的盒子来说明下,大家可能发现了,其实边框border往往就只有1px的宽度,谁叫它是边框呢。
断头台成绩(IE/WinGuillotinebug)是外洋的CSS计划者给这个成绩起的一个十分抽象的名字,就好像断头台一样,工具被无情的割断了一部分,不外与之相反的是,断头台成绩中的工具割断的不是工具的头部,而是工具的底部。xhtml编码(演示):
<divid="layout">
<divid="left">
<strong>XML</strong>
<p>前保举遵守的是W3C于2000年10月6日公布的XML1.0和HTML一样,XML一样来历于SGML,但XML是一种能界说别的言语的语。<br/><br/>XML最后计划的目标是填补HTML的不敷,以壮大的扩大性满意收集信息公布的必要,厥后渐渐用于收集数据的转换和形貌。</p>
</div>
<ahref="#">链接1</a>
<ahref="#">链接2</a>
<ahref="#">链接3</a>
<ahref="#">链接4</a>
</div>
</div>
这段代码布局由三部分构成,一个是主工具#layput,主框架中有#left为左浮动工具,右边为一般的链接笔墨,相似于摆布分栏的二栏式结构。css编码:
a:hover{
background-color:#fff;
}
#layout{
border:#35bb0c5pxsolid;
width:400px;
background-color:#f2f2f2;
}
#left{
border:#d4ca255pxsolid;
width:200px;
float:left;
background-color:#fff;
}
在css代码部分,我们次要设置了链接的背景致、#left的左浮动及用于我们察看的粗边框效果,我们仍是经由过程扫瞄器来检察成绩是怎样产生的,见图。
这里列出了网页效果的两种形态,当网页被翻开时,页面显现一般,与css编码中所指定的款式完整分歧,而当鼠标指向工具右边的"链接3"及"链接4"时,成绩呈现了,主工具#layout上面被切失落了,而剩下的高度恰好恰是4个链接的高度。与此同时当鼠标再次回到"链接1"时,#layout工具的高度又恢复了一般。这即是断头台成绩。
笔者在实践开辟中已经碰到过一个如许的成绩,相似于这类结构的情形很简单产生,比方左边是网页主体右边是垂直导航时就与此情形相似,但这还不是激发这个成绩的中心缘故原由,激发这个成绩的缘故原由在于链接上,注重本例中的代码,链接的a:hover形态下被设置了background-color:fff;背景改动为红色,我们无妨往实验往除这段款式代码能够发明,假如不带这句款式页面是不会呈现成绩的,因而缘故原由就在于a工具的a:hover形态。
经由测试后,我们能够发明不单单是background-color的变更,假如改动a:hover形态下链接的别的属性,也会激发别的的成绩,比方padding、border、加粗、斜体等,城市激发断头台成绩。
别的值得注重的是,#layout当中,#left工具是一个浮动工具,而右边的链接则长短浮动工具,关于未指定高度的工具而言,IE扫瞄器会依据个中的一切内容,不论是非浮动的仍是浮动的实践巨细盘算其高度,而当例子中的链接工具是一个非浮动工具,而且具有hover改动border、background及padding属性时,IE会以为这些属性会改动#layout的高度,因而从头盘算工具高度,可是使人扫兴的IE的这个举动并没有到达预期目标,它会把非浮动工具的高度作为总高度给了#layout,从而割断了#left的内容。基于如许一些成绩发生的缘故原由,办理计划应该能够十分便利的做出。
办理计划
依据我们对这个成绩发生缘故原由了解,能够做出多套办理计划来对付这类成绩,起首我们晓得,由于非浮动与浮动工具都存在#layout中从而形成了这个成绩,因而能够从浮动体例上动手,把非浮动工具也改成浮动工具,如许即可以办理这个成绩,比方对xhtml做以下修正(演示):
<divid="layout">
<divid="left"><strong>XML</strong>
<p>前保举遵守的是W3C于2000年10月6日公布的XML1.0和HTML一样,XML一样来历于SGML,但XML是一种能界说别的言语的语。<br/><br/>XML最后计划的目标是填补HTML的不敷,以壮大的扩大性满意收集信息公布的必要,厥后渐渐用于收集数据的转换和形貌。</p>
</div>
<divid="right">
<ahref="#">链接1</a>
<ahref="#">链接2</a>
<ahref="#">链接3</a>
<ahref="#">链接4</a>
</div>
</div>
对链接加上一个div,并设置为浮动工具:#right{float:left;}如许使两个工具都成了浮动工具,因而不会激发成绩。与此同时,也能够实验另外一个思绪来修复这个成绩,高度不顺应成绩在IE与Mozilla/Firefox扫瞄器中都存在,办理计划是经由过程一个空工具强迫扫瞄器对高度举行从头盘算,在本例中也是因为IE扫瞄器的高度盘算失利酿成的成绩,因而无妨也增添工具实验到达目标,能够实验在#layout的最底部增添一个div来强迫高度,代码以下(演示):
<divid="layout">
<divid="left"><strong>XML</strong>
<p>前保举遵守的是W3C于2000年10月6日公布的XML1.0和HTML一样,XML一样来历于SGML,但XML是一种能界说别的言语的语。<br/><br/>XML最后计划的目标是填补HTML的不敷,以壮大的扩大性满意收集信息公布的必要,厥后渐渐用于收集数据的转换和形貌。</p>
</div>
<ahref="#">链接1</a>
<ahref="#">链接2</a>
<ahref="#">链接3</a>
<ahref="#">链接4</a>
</div>
<divstyle="clear:both"></div>
如许一个扫除浮动工具的,会匡助扫瞄重视新找到符合的高度,从而办理了断头台成绩。
当然空口无凭,下面我们就让大家看一下Div+css在页面中达到的效果。 |
|