原文地址:XHTML CSS 常见问题和解决方案

作为前端开发人员,在日常的页面制作时,不可避免的会碰上这样那样的问题,我挑选了其中的一些进行总结归档,希望对大家会有所帮助:

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

在IE6下无法定义小高度的容器,是因为有一个默认的行高。
列举2种解决方案:overflow:hidden | line-height:0

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

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

3、IE6双倍margin的BUG?

display:inline

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

设置input为vertical-align:middle,textarea也是如此

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

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

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

不可以,除了少数几个级别很高的家伙除外。
但可以将flash设置为透明,这时层就会透过falsh显示,近似于覆盖在flash之上了,如:
<param name="mode" value="transparent" />|<param name="mode" value="opaque" />

wmode属性,用于指定窗口模式,(window,opaque,transparent)如果选window那么其z轴优先级高于所有非窗口类型的元素,无论如何设置z-index。也不会有效果

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

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

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

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

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

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

label的for属性,规定 label 与哪个表单元素绑定

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

这种情况浏览器会自动进行margin重叠,只显示较大的margin值
解决方案:只设置其中一个div的margin为15px

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

设置li的vertical-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

position:relative; top:50%; margin-top:-(元素高度/2)

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:设置table的border-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层标签才能搞定,不过相对方法1和2还是有优势的,推荐一下。
方法4(强烈推荐)只需要将字体和行高设置为0,然后overflow:hidden;如font:0/0 arial;就同样可以达到隐藏内容的目的,暂时还没发现有什么副作用,强烈推荐。
css的几种以图换字方式小结:http://www.jb51.net/css/33711.html

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="#" onfocus="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>

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

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

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

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

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

.min-height{min-height:100px;_height:100px;}
<div class="min-height">我是兼容的min-height</div>

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

cursorointer

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

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

30、IE下如何对Standard Mode与Quirks Mode进行切换?

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

IE6和IE7都可以触发的(在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>

如上例,该元素同时拥有a和b定义的样式规则。
多个规则之间使用空格分开,并且只有class能同时使用多个规则,id不可以

32、如何区别display:none与visibility:hidden?

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

XHTML CSS 常见问题和解决方案的更多相关文章

  1. 分针网—IT教育: Html / CSS常见问题的解决方案

    1. 解决Safari下input光标过大   2. 设置浮层   3. CSS绘制三角形   4. 清除浮动   1) 浮动元素父级添加样式   2) 父元素后添加伪元素     3) 同样可以使用 ...

  2. 学无止境的CSS(xHTML+CSS技巧教程资源大全)

    本文里面收集一些有关CSS的技巧.教程.工具和观点等,其中一些你也许早就运用的炉火纯青,也可能有的你听都没听说过.不管是新手还是高手,大家都继续学习吧. 一,Web 标准 要玩游戏,就得先了解规则.要 ...

  3. CSS常见问题及兼容性

    CSS常见问题 1 (IE6,7)H5标签兼容 解决方法1:(只显示核心代码) 1<script>  ; ; ;                    ;;;};;;;;;;;       ...

  4. 《PDF.NE数据框架常见问题及解决方案-初》

    <PDF.NE数据框架常见问题及解决方案-初> 1.新增数据库后,获取标识列的值: 解决方案:    PDF.NET数据框架,已经为我们考略了很多,因为用PDF.NET进行数据的添加操作时 ...

  5. 使用XHTML+CSS构架的好处到底有哪些?

    使用XHTML+CSS构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰. 1.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法: div{ma ...

  6. 关于DIV+CSS和XHTML+CSS的理解

    WEB标准是一系列标准的集合,并不是仅“DIV+CSS”布局就可以实现.以CSS网页布局只是标准的基础之一.“DIV+CSS”布局只是一种通俗的称呼罢了.而我们学习的目标在于以XHTML建立良好的语义 ...

  7. (转)第一天 XHTML CSS基础知识 文章出处:标准之路(http://www.aa25.cn/div_css/902.shtml)

    欢迎大家学习<十天学会web标准>,也就是我们常说的DIV+CSS.不过这里的DIV+CSS是一种错误的叫法,建议大家还是称之为web标准. 学习本系列教程需有一定html和css基础,也 ...

  8. 关于在同一母版页中使用多个CSS文件的解决方案

    原文:关于在同一母版页中使用多个CSS文件的解决方案 以前都用.NET1.1没遇到这问题,现在换了2.0开始学着使用母版,结果就遇到了这个问题,在百度上一搜索才发现有不少人提出这个问题,但没找到好的解 ...

  9. 自学华为IoT物联网_06 智慧家庭物联网常见问题及解决方案

    点击返回自学华为IoT物流网 自学华为IoT物联网_06 智慧家庭物联网常见问题及解决方案 1. 家庭中遇到的问题 2.1 华为智慧家庭概念的发展历程 2.2 华为智慧家庭的解决方案架构 智慧家庭主要 ...

随机推荐

  1. LDAP Authentication for openNebula3.2

    LDAP Authentication 3.2 The LDAP Authentication addon permits users to have the same credentials as ...

  2. 执行startx后Ubuntupassword正确进不去的问题

    今天在命令行里敲了 startx ,然后系统重新启动.输入password后,跳转到一下界面.之后又返回到登陆界面.一直这样循环输入password.进不去系统. 然后不得不用手机在网上查找解决的方法 ...

  3. PostMessage和SendMessage的区别

    1, PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数.而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息 ...

  4. image元素的src属性值与getAttribute('src')值

    采集的时候,当采集到一些不可用的照片就将其剔除掉 我的解决思路是new一个img对象, 然后将采集过来的图片赋值给这个img, 然后分别处理img的onerror和 onload, 当在onerror ...

  5. 2014.8.20break,continue,字符串,数字和日期

    (一)break与continue break——彻底终断循环 continue——中断本次循环,继续下次循环 break举例: //求100以内所有质数 ; i <= ; i++) { ;// ...

  6. ADO知识的运用二(Day 28)

    可能是最近有些沉迷于电视剧了,所以,好多天都没写总结了.我知道这样不好,但又老管不住自己,也许是我自控力太差了吧......呵呵,如果在不写总结,可能以后就会成为习惯了.所以今天要赶紧补上...... ...

  7. BZOJ 1951: [Sdoi2010]古代猪文( 数论 )

    显然答案是G^∑C(d,N)(d|N).O(N^0.5)枚举N的约数.取模的数999911659是质数, 考虑欧拉定理a^phi(p)=1(mod p)(a与p互质), 那么a^t mod p = a ...

  8. MySQL 基础学习

    http://www.w3school.com.cn/sql/ 1.limit x,y 或 limit z  :选取从x开始的y条数据  或  选取最开始的 z条数据 , 2.like '%N%' : ...

  9. hdu 2824The Euler function

    题目链接 快速求出a到b之间所有数的欧拉函数. 一个一个求肯定是不行的, 我们知道欧拉函数的公式为phi(n) = n*(1-1/i1)*(1-1/i2).......i1, i2为素因子. 那么我们 ...

  10. Linux ---> 监控JVM工具

    Linux ---> 监控JVM工具shkingshking 发布时间: 2013/10/10 01:27 阅读: 2642 收藏: 26 点赞: 1 评论: 0 JDK内置工具使用 jps(J ...