zoukankan      html  css  js  c++  java
  • XHTML CSS 常见问题和解决方案

    原文地址: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、如何使得文字不换行?

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

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

    定义容器为:overflow:hidden;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只是隐藏了内容而已,其占位空间仍然保留。

  • 相关阅读:
    基本计数方法
    每天工作4小时的程序员
    明星软件工程师的10种特质(转)
    IT高薪者所具备的人格魅力
    Unity_Shader开发_图形学基础(五)--------2016.1.9
    unity 架构设计的学习
    深入浅出聊优化:从Draw Calls到GC
    PG+mask替代透明Png(转)
    基于战斗重演的全校验---- 塔防大师PVP反外挂设计
    Unity项目开发准则
  • 原文地址:https://www.cnblogs.com/theEndOfSummer/p/3152989.html
Copyright © 2011-2022 走看看