仓酷云

标题: 来讲讲:CSS教程:完全懂得haslayout [打印本页]

作者: 金色的骷髅    时间: 2015-1-15 23:22
标题: 来讲讲:CSS教程:完全懂得haslayout
可以增加更多的用户而不需要建立独立的版本。可以一次设计,随处发布。
网页制造poluoluo文章简介:要想更好的了解css,特别是IE下对css的衬着,haslayout是一个十分有需要完全弄扫除的观点。年夜多IE下的显现毛病,就是源于haslayout。
要想更好的了解css,特别是IE下对css的衬着,haslayout是一个十分有需要完全弄扫除的观点。年夜多IE下的显现毛病,就是源于haslayout。
  甚么是haslayout?
  haslayout是WindowsInternetExplorer衬着引擎的一个外部构成部分。在InternetExplorer中,一个元素要末本人对本身的内容举行盘算巨细和构造,要末依附于父元从来盘算尺寸和构造内容。为了调治这两个分歧的观点,衬着引擎接纳了hasLayout的属性,属性值能够为true或false。当一个元素的hasLayout属性值为true时,我们说这个元素有一个结构(layout)
  当一个元素有一个结构时,它卖力对本人和大概的子孙元素举行尺寸盘算和定位。复杂来讲,这意味着这个元素必要花更多的价值来保护本身和内里的内容,而不是依附于先人元从来完成这些事情。因而,一些元素默许会有一个结构。当我们说一个元素“具有layout”或“失掉layout”,大概说一个元素“haslayout”的时分,我们的意义是指它的微软专有属性hasLayout被设为了true。一个“layout元素”能够是一个默许就具有layout的元素大概是一个经由过程设置某些CSS属性失掉layout的元素。假如某个HTML元素具有haslayout属性,那末这个元素的haslayout的值必定只要true,haslayout为只读属性一旦被触发,就不成逆转。经由过程IEDeveloperToolbar能够检察IE下HTML元素是不是具有haslayout,在IEDeveloperToolbar下,具有haslayout的元素,一般显现为“haslayout=-1”。
  卖力构造本身内容的元素将默许有一个结构,次要包含以下元素(不完整列表):
  *bodyandhtml
  *table,tr,th,td
  *img
  *hr
  *input,button,file,select,textarea,fieldset
  *marquee
  *frameset,frame,iframe
  *objects,applets,embed
  关于并不是一切的元素都默许有结构,微软给出的次要缘故原由是“功能和简便”。假如一切的元素都默许有结构,会对功能和内存利用上发生无害的影响。
  怎样引发haslayout?
  年夜部分的IE显现毛病,都能够经由过程引发元素的haslayout属性来修改。能够经由过程设置css尺寸属性(width/height)等来引发元素的haslayout,使其“具有结构”。以下所示,经由过程设置以下css属性便可。
  *display:inline-block
  *height:(任何值除auto)
  *float:(left或right)
  *position:absolute
  *width:(任何值除auto)
  *writing-mode:tb-rl
  *zoom:(除normal外恣意值)
  InternetExplorer7另有一些分外的属性(不完整列表):
  *min-height:(恣意值)
  *max-height:(除none外恣意值)
  *min-width:(恣意值)
  *max-width:(除none外恣意值)
  *overflow:(除visible外恣意值)
  *overflow-x:(除visible外恣意值)
  *overflow-y:(除visible外恣意值)
  *position:fixed
  个中overflow-x和overflow-y是css3盒模子中的属性,今朝还未被扫瞄器普遍撑持。
  关于内联元素(默许即为内联的元素,如span,或display:inline;的元素),
  width和height只在IE5.x下和IE6或更新版本的quirks形式下触发hasLayout。而关于IE6,假如扫瞄器运转于尺度兼容形式下,内联元素会疏忽width或height属性,以是设置width或height不克不及在此种情形命令该元素具有layout。
  zoom老是能够触发hasLayout,可是在IE5.0中不撑持。
  具有“layout”的元素假如同时display:inline,那末它的举动就和尺度中所说的inline-block很相似了:在段落中和一般笔墨一样在程度偏向和一连分列,受vertical-align影响,而且巨细能够依据内容自顺应调剂。这也能够注释为何单单在IE/Win中内联元素能够包括块级元素而少出成绩,由于在其余扫瞄器中display:inline就是内联,不像IE/Win一旦内联元素具有layout还会酿成inline-block。
  haslayout成绩的调试与办理
  当网页在IE中有非常体现时,能够实验引发haslayout来看看是否是成绩地点。经常使用的办法是给某元素css设定zoom:1。利用zoom:1是由于年夜多半情形下,它能在不影响现有情况的前提下引发元素的haslayout。而一旦成绩消散,那基础上就能够判别是haslayout的缘故原由。然后就能够经由过程设定响应的css属性来对这个成绩举行修改了。倡议起首要思索的是设定元素的width/height属性,其次再思索其他属性。
  对IE6及更早版原本说,经常使用的办法被称为霍莉破解(Hollyhack),即设定这个元素的高度为1%(height:1%;)。必要注重的是,当这个元素的overflow属性被设置为visible时,这个办法就生效了。大概利用IE的前提正文。
  对IE7来讲,最好的办法时设置元素的最小高度为0(min-height:0;)。
  haslayout成绩引发的罕见bug
  IE6及更低版本的双空缺边浮动bug
  bug修复:display:inline;
  IE5-6/win的3像素偏移bug
  bug修复:_height:1%;
  E6的躲躲猫(peek-a-boo)bug
  bug修复:_height:1%;
</p>
你用什么用的熟练就用什么,讲究的是效率,客户永远不管你用什么,页面就要好看,功能就要好用,还有时间和成本的问题。
作者: 灵魂腐蚀    时间: 2015-1-17 22:21
时间轴)窗口--时间轴--选中图层并拖图层到时间轴,将其放在指定帧上
作者: 冷月葬花魂    时间: 2015-1-25 21:57
足见市场的反响和MACROMEDIA公司对它们的自信。说到Dreamweaver8我们应该了解一下网页编辑器的发展过程,随着互联网(Internet) 的家喻户晓。
作者: 老尸    时间: 2015-2-4 10:34
滚动条)层属性--溢出(visible/hidden/scroll/auto)
作者: 仓酷云    时间: 2015-2-9 22:11
您在所见即所得网页编辑器进行网页制作和在WORD中进行文本编辑不会感到有什么区别,但它同时也存在着致命的弱点。
作者: 再见西城    时间: 2015-2-28 00:39
Dreamweaver由MX版本开始使用Opera软件公司的排版引擎“Presto”作为网页预览。
作者: 活着的死人    时间: 2015-3-9 18:05
技术的学习如同长跑。只要越过极限,就会越跑越轻松。技术的学习其实并不像想象中那么可怕,任何技术都并不高深莫测。
作者: 柔情似水    时间: 2015-3-17 01:11
学Dreamweaver技术的过程其实是一个增加信心的过程。




欢迎光临 仓酷云 (http://www.ckuyun.com/) Powered by Discuz! X3.2