css常见兼容问题

1、如何定义高度很小的容器? 

 

IE6下无法定义小高度的容器,是因为有一个默认的行高。 

列举2种解决方案:overflow:hidden | line-height:0 

 

2、图片下方出现几像素的空白间隙? 

 

这个也有多种解决方案,如将img定义为display:block,或定义父容器为font-size:0,个人更推荐使用vertical-align的方式,它的值可以是text-top | text-bottom | middle等 

 

3IE6双倍marginBUG? 

 

display:inline 

 

4、文本垂直方向对齐文本输入框? 

 

设置inputvertical-align:middletextarea也是如此 

 

5、为什么在web标准下ie无法设置滚动条的颜色? 

 

将设置滚动条颜色的样式定义到html标签选择符上即可 

 

6、如何让层在falsh上显示? 

 

不可以,除了少数几个级别很高的家伙除外。 

但可以将flash设置为透明,这时层就会透过falsh显示,近似于覆盖在flash之上了,如: 

<param name="mode" value="transparent" /> 

 

7、如何使得文字不换行? 

 

定义包含文字的容器为:width:xxx;white-space:nowrap; 

 

8ie中如何让超出宽度的文字显示为省略号? 

 

定义容器为:overflow:hidden;width:xxx;white-space:nowrap;text-overflow:ellipsis; 

 

9、如何在点文字时也选中checkbox? 

 

<input id="test" type="checkbox" value="on" /> <label for="test">测试 </label> 

 

10、一个divmargin-bottom:10px,一个divmargin-top:5px,为什么2div之间的间距是10px而不是15px? 

 

这种情况浏览器会自动进行margin重叠,只显示较大的margin值 

解决方案:只设置其中一个divmargin15px 

 

11、如何解决ie下当li中出现2个或以上的浮动时,li之间产生的空白间隙? 

 

设置livertical-align,值可以为top | text-top | middle | bottom | text-bottom 

 

12、如何使得英文单词不发生词内断行? 

 

word-wrap:break-word; 

 

13、为什么被访问过的链接颜色没有变化? 

 

定义链接的样式时,需要按照:link,:visited,:hover,:active这样的顺序,可以使用LoVe HAte(喜欢讨厌)来记忆 

 

14、单行文本如何垂直居中? 

 

height:xxx;line-height:xxx; 高和行高相同即可 

 

15、已知高度的容器如何在页面中水平垂直居中? 

 

参阅:http://blog.doyoe.com/article.asp?id=74 

 

16、未知尺寸的图片图如何水平垂直居中? 

 

参阅:http://blog.doyoe.com/article.asp?id=159 

 

17、标准模式和怪异模式下的盒模型区别? 

 

标准模式下:实际宽度 = width + padding + border 

怪异模式下:实际宽度 = width - padding - border 

 

18、如何解决IE下的3像素BUG? 

 

参阅:http://blog.doyoe.com/article.asp?id=68 

 

19、如何做1像素细边框的table? 

 

方法1:设置tableborder-collapse:collapse; 

<style type="text/css"> 

table{border-collapse:collapse;border-color:#000;} 

td{border-color:#000;} 

</style> 

<table cellspacing="0" cellpadding="0" border="1"> 

<tr> 

<td>测试 </td> 

<td>测试 </td> 

</tr> 

</table> 

 

方法2:关键在于设置cellspacine="1",用间隙来作为边框 

<style type="text/css"> 

table{background:#000;} 

tr{background:#fff;} 

</style> 

<table cellspacing="1" cellpadding="0" border="0"> 

<tr> 

<td>测试 </td> 

<td>测试 </td> 

</tr> 

</table> 

 

20、以图换字的几种方法及优劣分析 

 

以图换字,其实是为了保证页面的可读性,这样既有利于搜索引擎,又有利于结构查看。由于这种方式被大多数人所认同,所以方法也越来越多: 

 

方法1:使用text-indent的负值,将内容移出容器; 

方法2:使用display:none,将内容隐藏; 

方法3:使用padding将文字挤出容器之外,并将超出的部分hidden; 

方法4:使用font设置超小字体,达到隐藏内容的目的。 

 

方法1(非常不推荐)看起来蛮简单,但其实有几个不理想的地方,1是比较吃资源;2是在ie5下面会出现滞后背景无法显示;3是内容为超链接时,长长的黑色虚框,让你抓狂。 

方法2(不推荐)其实倒也不复杂,只是需要多添加一个标签,比较浪费;且display:none出现的几率太多,对seo也是会有些许影响的。 

方法3(推荐)Standard Model下要2层标签才能搞定,不过相对方法12还是有优势的,推荐一下。 

方法4(强烈推荐)只需要将字体设置为0,然后overflow:hidden;font:0/0 arial;overflow:hidden;就同样可以达到隐藏内容的目的,暂时还没发现有什么副作用,强烈推荐。 

 

21、如何容器透明,内容不透明? 

 

假设在标准模式下有如下结构: 

<div class="outer"> 

  <p class="inner">我不要透明 </p> 

</div> 

 

IE only的方法:在父容器outer被设置为透明后,只需要将子容器inner设置为position:relative; 如果需要兼容其它浏览器,则以上的方法不适用,且结构也需改为: 

 

<div class="outer"> </div> 

<div class="inner">我不要透明 </div> 

 

然后使用position + z-index搞定位置 

 

22、如何去掉链接的虚线框? 

 

IE下: <a href="#" οnfοcus="this.blur();"...> 

FF:a{outline:none;} 

 

23、如何使得页面字体行距始终保持n倍字体大小为基调? 

 

body内设置line-height:n即可,注,不可以为它加上单位 

原因可参阅:http://blog.doyoe.com/article.asp?id=195 

 

24、如何使用标准的方法插入flash? 

 

<div class="fla-show"> 

  <object type="application/x-shockwave-flash" data="*.swf" width="*" height="*"> 

    <param name="movie" value="*.swf" /> 

    <img src="*.jpg" alt="用于不支持flash或屏蔽flash时显示" /> 

  </object> 

</div> 

 

25Standard Model如何让容器可以height:100%? 

 

设置html,body{height:100%;margin:0;} 

 

26、如何使得表格的宽度固定

 

设置tabletable-layout:fixed;这时表格将使用固定布局算法,多出的内容将不影响表格的宽度 

 

27、如何让min-height兼容ie6? 

 

.min-height{min-height:100px;_height:100px;} 

<div class="min-height">我是兼容的min-height </div> 

 

28、如何让鼠标变成手型且兼容所有现代浏览器? 

 

cursor:pointer 

 

29、如何实现ie6下的position:fixed? 

 

参阅:http://blog.doyoe.com/article.asp?id=188 

 

30IE下如何对Standard ModeQuirks Mode进行切换? 

 

IE6以下的浏览器不用触发,直接以Quirks Mode呈现页面。 

 

IE6IE7都可以触发的(在XHTML DTD申明前加上HTML注释): 

<!--Let ie6 and ie7 into quirks mode--> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 

      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

 

IE6的触发(在XHTML DTD申明前加上XML申明): 

<?xml version="1.0" encoding="utf-8"?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 

      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

 

当没有使用DTD声明或者使用HTML4以下(不包括HTML4)的DTD声明时,基本所有的浏览器都是使用Quirks Mode呈现。 

 

31、如何给一个元素定义多个不同的css规则? 

 

<style type="text/css"> 

.a{color:#f00;} 

.b{background:#eee;} 

</style> 

 

<div class="a b">测试 </div> 

 

如上例,该元素同时拥有ab定义的样式规则。 

多个规则之间使用空格分开,并且只有class能同时使用多个规则,id不可以 

 

32、如何区别display:nonevisibility:hidden? 

 

相同的是display:nonevisibility:hidden都可以用来隐藏某个元素; 

不同的是display:none在隐藏元素的时候,将其占位空间也去掉;而visibility:hidden只是隐藏了内容而已,其占位空间仍然保留。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值