仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 586|回复: 7
打印 上一主题 下一主题

[DIV+CSS] 来讲讲:完全弄分明haslayout观点

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 23:57:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
更方便搜索引擎的搜索。用只包含结构化内容的HTML代替嵌套的标签,搜索引擎将更有效地搜索到你的内容,并可能给你一个较高的评价(ranking)。
破洛洛文章简介:haslayout是WindowsInternetExplorer衬着引擎的一个外部构成部分。
要想更好的了解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%;
糖伴西红柿说,这篇文章不是原创,是网上资本的汇总,加上本人了解的综合。大概还不是很周全,还必要再进一步细化。

声明块由一个一个的声明组成,声明由属性和值组成,属性和值用冒号隔开,分号结束。
柔情似水 该用户已被删除
沙发
发表于 2015-1-25 14:45:26 | 只看该作者
直接用代码建立链接,如:可以直接输入 <a herf = \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"red.html\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\">红色的网页 12、插入标签法建立链接,可以再选中文字后在代码中插入html标签,页元素<a>.也可以按ctrl+t进入html标签插入方法之后输入代码即可。
兰色精灵 该用户已被删除
板凳
发表于 2015-2-2 22:34:28 | 只看该作者
Adobe Dreamweaver CS5 软件使设计人员和开发人员能充满自信地构建基于标准的网站。由于同新的 Adobe CS Live 在线服务 Adobe BrowserLab 集成。
简单生活 该用户已被删除
地板
发表于 2015-2-8 19:44:57 | 只看该作者
Adobe Dreamweaver(前称Macromedia Dreamweaver)是Adobe公司的著名网站开发工具。
海妖 该用户已被删除
5#
发表于 2015-2-26 01:00:56 | 只看该作者
帧(frames)和表格的制作速度快的令您无法想像。进阶表格编辑功能使您简单的选择单格、行、栏或作未连续之选取。
金色的骷髅 该用户已被删除
6#
发表于 2015-3-8 11:19:31 | 只看该作者
不管老师做怎样的解释,而我却对它感到很是吃力,诸如里面有许多不知道的功能。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-15 23:07:37 | 只看该作者
技术的学习如同长跑。只要越过极限,就会越跑越轻松。技术的学习其实并不像想象中那么可怕,任何技术都并不高深莫测。
第二个灵魂 该用户已被删除
8#
发表于 2015-3-22 18:10:24 | 只看该作者
Dreamweaver由MX版本开始使用Opera软件公司的排版引擎“Presto”作为网页预览。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-16 14:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表