寚w度的解析
IEQ将Ҏ内容的高度变化,包括未定义高度的囄内容Q即使定义了高度Q当内容过高度Ӟ用实际高度?/p>
FirefoxQ没有定义高度时Q如果内容中包括了图片内容,MF的高度解析是Ҏ印刷标准Q这样就会造成和实际内定w度不W合的情况;当定义了高度,但是内容过高度Ӟ内容会超出定义的高度Q但是区域用的样式不会变化Q造成样式错位?/p>
l论Q大家在可以定内容高度的情况下最好定义高度,如果真的没有办法定义高度Q最好不用用边框样式,否则样式肯定会出现乱!
img对象alt和title的解?br />altQ当照片不存在或者load错误时的提示Q?br />titleQ照片的tip说明?br />在IE中如果没有定义titleQalt也可以作为img的tip使用Q但是在MF中,两者完全按照标准中的定义?/p>
l论Q大家在定义img对象Ӟ最后将alt和title对象都写全,保证在各U浏览器中都能正怋?/p>
其他的细节差?br />当你在写css的时候,特别是用float: leftQ或rightQ排列一H图片时Q会发现在firefox里面正常而IE里面有问题。无Z用margin:0,q是border: 0来约束,都无于事?/p>
其实q里q有另外一个问题,是IE对于I格的处理,firefox是忽略的而IE对于块与块之间的I格是处理的。也是说一个divl束后要紧接着一个div写,中间不要有回车或者空根{不然也怼有问题,比如3px的偏差,而且q个原因很难发现?/p>
非常不走q的是我又碰Cq样的问题,多个img标签q着Q然后定义的float: leftQ希望这些图片可以连h。但是结果在firefox里面正常而IE里面昄的每个img都相隔了3px。我把标{之间的I格都删除都没有作用?/p>
后来的解x法是在img外面套liQƈ且对li定义margin: 0Q这样就解决了IE和firefox的显C偏差。IE对于一些模型的解释会生很多错误问题,只有多多试才能发现原因?/p>
2、嵌套DIV:父DIV的高度不能根据子DIV自动变化的解x?/strong>
<div id="parent">
<div id="content"> </div>
</div>
当Content内容多时Q即使parent讄了高?00%或auto,在不同浏览器下还是不能完好的自动伸展?解决Ҏ
<div id="parent">
<div id="content"></div>
<div style="font: 0px/0px sans-serif;clear: both;display: block"> </div>
</div>
在层的最下方产生一个高度ؓ1的空|可解除这个问?/p>
3、CSS DIV 学习W记
一、基本上每个区块的div 都要有自qidQ杜l不同功能的区块用同一个id/class
二、每个稍大的区块div 后面都跟一?lt;!?/id ?gt;标记开始、结?/p>
三、隐藏文字的又一U方?TEXT-INDENT: -9999px; LINE-HEIGHT: 0
四、y妙地处理q列的两?
1)
叛_为P, width=44.5%, float=left
左列为P.first, border-right: #a7a7a7 1px solid, width=45%
2)
叛_#right, margin-left:50%
左列#left, float=left,width=50% border-right:#a7a7a7 1px solid
以上两种Ҏ关键点在于选择其中一个ؓfloat=left
五、随机的切换囄Q?br />#random {
BACKGROUND: url(/rotate.php);
}
q个Ҏ很y妙?/p>
4、关于div的高度自适应
今天尿让我帮他的页子解决一个问题,是div的高度自适应Q也是在一个父Udiv中嵌套一左一右两个子divQ右边的子div内容可无限扩展,?
可以使得父div的高度能被无限拉长,用一般的布局ҎQ在IE中可以正浏览,在Mozilla中父Udiv的高度就固定?0px左右Q无法自适应
高度Qheight:auto也不行,怎么办呢。网上参考到一资料,要实现自适应高度Qdiv层必d有float属性,于是我开始动手试验,
float:left的话Qdivp到页面最左边MQ这好办Q我在它的外面再套一层divQ把位置定好Q那么里面的qfloat:left也不会被
Ud位置了?/p>
xhtml:
===============
<div id="container_father">
<div id="container">
<div id="panel"> test<br />
test<br />
test<br />
<!?id="panel" ?gt;
</div>
<div id="sidebar">
<ul>
<li class="current">预安装检?lt;/li>
<li>阅读 PFC 授权协议</li>
<li>初始化数据库</li>
<li>完成安装</li>
</ul>
<!?id="sidebar" ?gt;
</div>
<!?id="container" ?gt;
</div>
</div>
CSS
=================
#container_father {
margin-left: auto;
margin-right: auto;
padding: 0px;
width: 750px;
}
#container {
width: 750px;
border: 1px solid #cccccc;
padding: 8px;
margin: 0px;
background-color: #F1F3F5;
float: left;
}
FRom: http://ulean.zg163.net/
5? 深入标准 ~ The IE Doubled Float-Margin Bug(IE双倍Q动边界Bug)
什么发生故障?
一 D|错的代码把一个居左Q?float:left)的元素放|进一个容器盒(box)Qƈ在Q动元素上使用了左边界(margin-left)来o它和 容器的左边生一D距R看h相当的简单,对吗Q但直至它被在IE/Win中浏览ؓ止,在浏览器中居左Q动元素的边界长度被神U地M一倍!
情况应该如何Q?/p>
下面的图释展CZ一个简单的div(茶色的盒?包含着一个居左Q动的div(l色的盒?。Q动元素有一?00px的左边界Q容器盒与它的左边~之间生了一?00px的间隙。到现在为止Q一直都q不错?/p>
.floatbox {
float: left;
width: 150px;
height: 150px;
margin: 5px 0 5px 100px;
/*This last value applies the 100px left margin */
}
陈旧的IE“双倍占据?/p>
原样的相同代码被在IE/Win中浏览时以些微不同的方式昄Q下面的N展示了IE/Win在布局上所做的?/p>
qؓ什么会发生Q别问这U傻问题Q这是IEQ记得吗Q符合标准只是理想的状况Q不指望实现Q这个简单的事实正验证了?/p>
重点
q个Bug仅当动边界和Q动元素的方向相同时出现在动元素和容器盒的内边缘之间Q在q之后的L有着怼边界的Q动元素不会呈现双倍边界。只有特定的动行的W一个Q动元素会遭遇q个Bug。像居左的情况一P双倍边界同LU地昄在居右的相同方式?/p>
最后,修复办法Q?/p>
? 到现?04q??q个Bug一直被认ؓ是无法修复的Q通常用来替代错误的边界的控制Ҏ如:一个不可视动元素的左边距Q连同一个内嵌的盒子一P? 视的盒子装在不可视Q动元素里Q或者用技巧仅对IE/Win讑֮边界?/2倹{这办法生效了,但是是q而且搞糟了干净的源代码。不q现在全部结? 了?/p>
Steve Clason发现了一个修复办法,描述在他的Guest Demo里,修复了双倍边界和围绕文字~进Bug。这是一个经典的IE的Bug修复办法Q用一个属性来修复影响不相兛_性的Bug?/p>
现在如何来做Q?/p>
研究它,单地{display: inline;}讄lQ动元素就是全部所需做的Q是的,听v来太单了Q不是吗Q不q这是真的,仅仅一个display?inline"声明已经能够胜Q了?/p>
熟悉规则的h知道动元素自动讄?block"元素Q而不他们之前是什么。就如Steve从W3C里指出:
9.5.1 Positioning the float: the ‘float?property
"This property specifies whether a box should float to the left, right, or not at all. It may be set for elements that generate boxes that are not absolutely positioned. The values of this property have the following meanings:
left
The element generates a block box that is floated to the
left. Content flows on the right side of the box, starting at the top
(subject to the ‘clear?property). The ‘display?is ignored, unless it
has the value ‘none?
right
Same as ‘left? but content flows on the left side of the box, starting at the top.
none
The box is not floated. "
q?说明动元素上的{display: inline;}会被忽略Q事实上所有的览器没有呈CQ何改变,包括IE。但是,它不知何故让IE停止Q动元素的边界d。因而,q个修复办法可以? 直接应用Q而没有Q何繁琐的隐藏Ҏ。如果将来的一ƾ浏览器军_对这个修复办法抱恙,只要把这个修复装入IE独用的Tan Hack里,l节如同IE Three Pixel Text-Jog Demo?/p>
下面是两个用了前面相同代码的生动演C,W一个照常显CZIE的BugQ下一个对动元素使用?inline"修复?br />.floatbox {
float: left;
width: 150px;
height: 150px;
margin: 5px 0 5px 100px;
display: inline;
}
Update (20060828)Q?br /> 6、空<li></li>解析问题?/p>
在FF下空<li></li>是不被解析的Q也是_<li>标签所带的css样式是不被解释的。但是在IE下空<li></li>是一样会被解析的?br />例如我定义如下Css:
#sidebar ul li {
list-style-type: none;
list-style-image: none;
margin-bottom: 15px;
}
而我的sidebar使用了一个空?<li></li> 。那么在FF下不被解析,而在IE下会出现15px的空白?/p>
event.srcElement.tagName event.srcElement.type |
event.srcElement.setCapture(); event.srcElement.releaseCapture(); |
event.keyCode event.shiftKey event.altKey event.ctrlKey |
event.returnValue |
event.x event.y |
document.activeElement |
document.captureEvents(Event.KEYDOWN); |
document.all("txt").focus(); document.all("txt").select(); |
document.execCommand |
document.cookie |
document.oncontextmenu |
document.createElement("SPAN"); |
document.elementFromPoint(event.x,event.y).tagName=="TD document.elementFromPoint(event.x,event.y).appendChild(ms) |
document.images[索引] |
document.onmousedown=scrollwindow; |
document.H体.elements[索引] |
navigator.plugins |
typeof($js_libpath) == "undefined" |
下拉?options[索引] 下拉?options.length |
document.getElementsByName("r1"); document.getElementById(id); |
escape() ,unescape |
obj.parentElement(dhtml) obj.parentNode(dom) |
TableID.moveRow(2,1) |
document.all.csss.href = "a.css"; |
display:inline |
hidefocus=true |
style="word-break:break-all" |
<meta HTTP-EQUIV="refresh" CONTENT="8;URL=http://c98.yeah.net"> |
<a href="mailto:aaa@bbb.com?subject=ccc&body=xxxyyy"> |
obj.scrollIntoView(true) |
<a name="first"> <a href="#first">anchors</a> |
location.search(); |
obj.contenteditable=true |
obj.execCommand |
/[^\x00-\xff]/ |
/[\u4e00-\u9fa5]/ |
word-wrap: break-word; word-break: break-all; |
<IFRAME src="1.htm" width=300 height=180 allowtransparency></iframe> |
obj.style.cssText |
document.documentElement.innerHTML |
document.styleSheets[0] |
document.styleSheets[0].rules[0] |
<a href="javascript:function()">word</a> |
asp: request.servervariables("HTTP_REFERER") javascript: document.referrer |
CollectGarbage(); |
document.oncontextmenu = function() { return false;} |
<noscript><iframe src="*.htm"></iframe></noscript> |
<body oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false"onmouseup="document.selection.empty()> |
<input type=text onpaste="return false"> |
<link rel="Shortcut Icon" href="favicon.ico"> favicon.ico 名字最好不?6*16?6?放虚拟目录根目录下?br />收藏栏图标?br /> <link rel="Bookmark" href="favicon.ico"> |
<input style="ime-mode:disabled"> |
<input type=text name=text1 value="123" onfocus="this.select()"> |
<input onkeydown="if(event.keyCode==13)event.keyCode=9"> |
<input type=text value="123" onfocus="alert(this.defaultValue)"> |
obj.title = "123
sdfs " |
var n1 = new Date("2004-10-10".replace(/-/g, "\/")).getTime() |
win.closed |
<input type=checkbox style="position: absolute; clip:rect(5px 15px 15px 5px)"> |
document.selection.createRange().duplicate().text |
<input type=text autocomplete=on>打开该功q?br /><input type=text autocomplete=off>关闭该功q?br /> |
<body onload="window.resizeTo(window.screen.width - 4,window.screen.height-50);window.moveTo(-4,-4)"> |
window.open("aa.htm", "meizz", "fullscreen=7"); |
alert(decodeURIComponent(encodeURIComponent("http://你好.com?as= hehe"))) encodeURIComponent?:"?/"?;" 和??"也编码?br /> |
s += "\r\n|页可见区域宽:"+ document.body.clientWidth; s += "\r\n|页可见区域高:"+ document.body.clientHeight; s += "\r\n|页可见区域高:"+ document.body.offsetWeight +" (包括边线的宽)"; s += "\r\n|页可见区域高:"+ document.body.offsetHeight +" (包括边线的宽)"; s += "\r\n|页正文全文宽:"+ document.body.scrollWidth; s += "\r\n|页正文全文高:"+ document.body.scrollHeight; s += "\r\n|页被卷ȝ高:"+ document.body.scrollTop; s += "\r\n|页被卷ȝ左:"+ document.body.scrollLeft; s += "\r\n|页正文部分上:"+ window.screenTop; s += "\r\n|页正文部分左:"+ window.screenLeft; s += "\r\n屏幕分L率的高:"+ window.screen.height; s += "\r\n屏幕分L率的宽:"+ window.screen.width; s += "\r\n屏幕可用工作区高度:"+ window.screen.availHeight; s += "\r\n屏幕可用工作区宽度:"+ window.screen.availWidth; |