网页前端开发小细节
author:一佰互联 2019-04-22   click:213
1 select标签必须闭合<select></select>

2 左右布局的时候可以让一方浮动,浮动的一方设置width,另一方设置margin=float一方的width+实际的margin,如下所示:

.top .top_left{width:250px; float:left; height:500px;}
.top .top_right{height:500px; margin-left:260px;}

但是这样在IE6下会出现3px bug,这时可以用hack,即*margin-left:257px;最好的方法是让.top_right也浮动,这样它会清理3px bug,也就是订宽双浮动

3 如果容器的宽度设置的比内容的宽度小,那么在现代浏览器中会正常显示,超出的内容还可以显示,容器不会撑大,但是在IE6下就不是了,因为IE6下的宽度是min-width,所以容器会被撑开,这样基于这个容器的绝对相对定位以及margin等都会出现问题,解决方法是可以不对容器设置宽度或者设置的宽度大于或等于内容的最大宽度

4 ! important 如下代码:

#a{margin-left:30px!important; margin-left:20px;}

在上面的例子中, 层a 在IE6.0中, 左边距为20像素, 而在Firefox中, 左边距则变为30像素。 这是因为, !important在 CSS 中表示优先调用, 由于IE不能够识别这个属性, 所以在IE中, 只能够调用 “margin-left:20px;" 这个选项, 所以同样的一段代码, 在Firefox和IE中就会显示不同的样式。

5 兼容性-------IE6/7下li元素的底部3px bug

在IE6、7下如果一个li包含了浮动元素,那么这个li会多出3px的底部边距,解决方法有两种

一:给li添加float属性,属性值可以是除none外的任意值;

二:给li添加vertical-align属性,属性值可以是任意值

从解决问题的实质上,这两种方法并无区别,都是通过添加相应的css属性来激发li的haslayout,但是方法2更适合来解决这个问题,因为一旦给li添加浮动,那么势必要清除之,这是个棘手的问题,虽然有很多方法可以来解决浮动带来的麻烦,但是无形中增加了代码的负重,那是我们不想看到的,所以推荐使用方法2。

6 经常遇到一个左右两个div等高的布局,都设置了高度,但是其中一个div的高度在IE6中被撑开了,那是因为IE6下设置高度相当于最小高度,而ff下设置多少就是多少,所以IE6会撑开,解决的方法是给div加个overflow:hidden;