zoukankan      html  css  js  c++  java
  • WEB前端开发工程师面试题大全(一)

    依照我个人答案与网上相关答案进行编写

    作者:刘建

    毕业院校:家里蹲大学低能班

    联系邮箱:243376129@qq.com

    如果有错误,欢迎发邮件,本人尽量修正。

    一个前端技术工程师必须掌握的知识,写得很详细了,相信看完会对大家有所帮助。

    ——————————————————————————————————————————————————————————————————————

    当然,高手就不用看这些面试题了。

    见过某个高手,有自己的个人网站,然后把工作经历(他的工作单位基本都是著名网站,比如网易)、网站作品、掌握知识的熟练程度和掌握时间做成了一个页面。

    人家网上应聘直接发个网页地址就够了。

    当然这样的高手很少,这些题是为了大部分人出的,检测知识面。

    开始进入正题:

    ——————————————————————————————————————————————————————————————————————

    HTML与XHTML有什么区别?

    ①XHTML 元素必须被正确地嵌套。

    错误:<p><span>this is example.</p></span>

    正确:<p><span>this is example.</span></p>

    HTML下<table width=100>,可以不写引号"",

    而XHTML必须正确的写成:<table width="100">

    ②XHTML元素必须被关闭。

    错误:<p>this is example.

    正确:<p>this is example.</p>

    HTML下可以写:<br>,而XHTML有严格限制,每个标签都得关闭,要写成:<br />

    ③标签名必须用小写字母。

    错误:<P>this is example.<P>

    正确:<p>this is example.</p>

    ④XHTML 文档必须拥有根元素。所有的 XHTML 元素必须被嵌套于 <html> 根元素中。

    HTML根元素:在HTML文档中,元素<html>代表了文档的根,其他所有的元素都是在该元素的基础上进行延伸或拓展的。

    该元素也是HTML文档的最外层元素,因此也称为根元素。

    ⑤XHTML废除了一些html里面的标签,原因是制定这个规范的w3c的人觉得有些旧东西该淘汰或不科学。

    在XHTML和HTML下,同样的CSS样式表解析出来会有很多细节上的小差异。

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    网站重构的测试(来自腾讯的前端工程师面试题)

    HTML文档流必须从Main开始然后才是两侧

    原题解答看着让人有些没说到关键点,我进行下补充。

    布局基本框架

    上面只是一个简化图,实际比这个复杂不少:Left与Right是固定宽度,中间Main要求自适应。

    ——————

    文档流:文档流是文档中可显示对象在排列时所占用的位置。将窗体自上而下分成一行行,并在每行中按从左至右的挨次排放元素。

    网页中大部分对象默认是占用文档流,也有一些对象是不占文档流的,比如表单中隐藏域。

    当然我们也可以让占用文档流的元素转换成不占文档流,这就要用到CSS中属性position来控制。

    有三种状况将使得元素离开文档流而存在,分别是浮动、绝对定位、固定定位。然则在IE中浮动元素也存在于文档流中。

    浮动元素不占任何正常文档流空间,而浮动元素的定位照样基于正常的文档流,然后从文档流中抽出并且能够尽量远的挪动至左侧或者右侧。

    文字内容会环绕在浮动元素四周。当一个元素从正常文档流中抽出后,依然在文档流中的其他元素将疏忽该元素并填补他原先的空间。

    ——————

    核心问题是Html文档流必须从Main开始然后才是两侧,下面就是这个要求的Html结构

    1 <div id=”main”>
    2 </div>
    3 <div id=”left”>
    4 </div>
    5 <div id=”right”>
    6 </div>

    常规做法把两侧放在主要内容的前面进行左右浮动,然后中间使用边距,这样有个缺点就是网速慢的时候主要内容却在最后显示。

    按照上面的Html布局,如果按常规把left和right各自左右浮动,中间main使用边距的话就会出现下面这种情况:

    一、使用绝对定位。

    不占用文档流的先读

    绝对定位需要设置左右边距(实际应用中往往需要在外面套一个相对定位的盒子)。整个Demo如下(通过Firefox与IE5.5——8测试):

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     5 <title>三栏布局</title>
     6 <style type="text/css">
     7 * { margin:0; padding:0; }
     8 #main { position:absolute; left:200px; right:200px }/*绝对定位,使content不占据html文档流空间,让后面的left,right浮上去*/
     9 #left, #right { 200px; }
    10 #left { float:left; }
    11 #right { float:right; }
    12 </style>
    13 </head>
    14 <body>
    15 <div id="main">
    16 <p style="height:999px; background:#fffaba; ">content</p>
    17 </div>
    18 <div id="left">
    19 <p style="height:999px; background:#8fc41f;">left</p>
    20 </div><div id="right">
    21 <p style="height:999px; background:#00b7ef;">right</p>
    22 </div>
    23 </body>
    24 </html>

    CSS2引入了一种新的简单选择器:通配选择器(universal selector),显示为一个星号(*)。该选择器可以与任何元素匹配,就像是一个通配符。

    例如,下面的规则可以使文档中的每个元素都为红色:

    * {color:red;}

    二、Main左浮动。

    如果Main浮动的话首先要解决宽度自适应的问题,设置宽度100%显示,然后就得把Left拉到Main左侧,这里巧妙使用两种偏移方法。

    先定义为浮动的先读。

    IE6会有兼容问题,需要Hack一下。

    Hack解释:一般基于开源的程序的基础,对其代码进行增加、删除或者修改、优化,使之在功能上符合新的需求。

    这里的Hack就是修改的意思。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>三栏布局-浮动方法</title>
    <style type="text/css">
    * { margin:0; padding:0; }
    #wrap { padding:0 300px 0 200px; *overflow:hidden;  }
    #main { float:left; 100%; }
    #left, #right { position:relative; _display:inline; }
    #left { 200px; float:left; margin-left:-100%; right:200px; _right:-300px; }
    #right { 300px; float:right; margin-right:-300px; }
    </style>
    </head>
    <body>
    <div id="wrap">
     <div id="main">
     <p style="height:999px; background:#fffaba; ">content</p>
     </div>
    
     <div id="left">
     <p style="height:999px; background:#8fc41f;">left</p>
     </div>
     <div id="right">
     <p style="height:999px; background:#00b7ef;">right2</p>
     </div>
    </div>
    </body>
    </html>

    后记:关于侧栏宽度固定,主要部分宽度自适应的布局是再普通不过了,而大部分人的做法就是把侧栏放在自适应盒子前面,

    然后进行浮动解决,从来没有想过使用最优化的html文档流完成这个布局。第一种方法由于用了绝对定位,适合在特殊应用中使用,

    常规布局推荐使用第二种解决。

    此题原文转自:http://www.planeart.cn/?p=446

    在原文基础上进行修改。

    ——————————————————————————————————————————————————————————————————————

    Doctype?严格模式与混杂模式,如何触发这两种模式,区分它们有何意义?

    Doctype(document type 文档类型)

    可声明三种DTD(document type definition 文档类型固定)类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。

    HTML

    HTML 4.01 规定了三种文档类型:Strict、Transitional 以及 Frameset。

    HTML Strict DTD(HTML严格模式)

    如果您需要干净的标记,免于表现层的混乱,请使用此类型。请与层叠样式表(CSS)配合使用:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "
    http://www.w3.org/TR/html4/strict.dtd">

    HTML Transitional DTD(过度版本)

    Transitional DTD 可包含 W3C 所期望移入样式表的呈现属性和元素。如果您的读者使用了不支持层叠样式表(CSS)的浏览器以至于您不得不使用 HTML 的呈现特性时,请使用此类型:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
    http://www.w3.org/TR/html4/loose.dtd">

    Frameset DTD

    Frameset DTD 应当被用于带有框架的文档。除 frameset 元素取代了 body 元素之外,Frameset DTD 等同于 Transitional DTD:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "
    http://www.w3.org/TR/html4/frameset.dtd">

    进一步讲解

    严格模式:必须按照声明的标准执行,规定元素的位置后,这个元素就必须在这个位置不能乱动。

    好处:层次分明,便于阅读。

    混杂模式:标准比较宽松,主要为了兼容,模拟老式浏览器去看老网站。了解一下就行。

    关于触发

    严格模式:都会有一个DTD,比如上面的DTD HTML 4.01

    混杂模式:①声明一个混杂模式的DTD

         ②如果严格模式找不到他要执行的标准,就会变成混杂模式

    区分它们的意义:

    严格模式:有些老的浏览器不支持新技术设计网页的标准,所以用新技术设计的网页无法显示

    混杂模式:为了让使用老浏览器的用户看到你网页的内容。

    举个例子

    标准模式:就如一个标准美女,样子好看,不过做饭,干家务等基本不会。

    混杂模式:不是美女,有可能很普通、有可能很难看,不过能干家务。

    你娶媳妇的时候觉得这两个有区别没?

    ——————————————————————————————————————————————————————————————————————

    行内元素有哪些?块级元素有哪些?CSS的盒模型?

    行内元素:

    就是内联元素(inline element)一般都是基于语义级(semantic)的基本元素。内联元素只能容纳文本或者其他内联元素。

    其实就是元素与元素之间不换行

    a:锚点

    img:图片

    abbr:缩写

    acronym:首字

    input:输入框

    span:常用内联容器,定义文本内区块

    select:项目选择

    var:定义变量

    label:表格标签

    code:计算机代码(在引用源码的时候需要)

    big:大字体

    b:粗体(不推荐

    br:换行

    cite:引用

    dfn:定义字段

    em:强调

    i:斜体

    kbd:定义键盘文本

    q:短引用

    s:中划线(不推荐)

    samp:定义范例计算机代码

    small:小字体文本

    strike:中划线

    strong:粗体强调

    sub:下标

    sup:上标

    textarea:多行文本输入框

    u:下划线

    块级元素:

    块元素一般都从新行开始,它可以容纳内联元素和其他块元素,常见块元素是段落标签P。form这个块元素比较特殊,它只能用来容纳其他块元素。  

    块元素(block element)和内联元素(inline element)都是html规范中的概念。块元素和内联元素的基本差异是块元素一般都从新行开始。

    而当加入了css控制以后,块元素和内联元素的这种属性差异就不成为差异了。

    比如,我们完全可以把内联元素cite加上display:block这样的属性,让他也有每次都从新行开始的属性。 

    块元素(block element)
    address:地址  
    blockquote:块引用  
    center:举中对齐块  
    dir:目录列表  
    div:常用块级容易,也是css layout的主要标签  
    dl:定义列表  
    fieldset-form:控制组   
    form:交互表单  
    h1:大标题

    h2:副标题

    h3:3级标题

    h4:4级标题

    h5:5级标题

    h6:6级标题
    hr:水平分隔线
    menu:菜单列表  
    noframes:frames可选内容(对于不支持frame的浏览器显示此区块内容)
    noscript:可选脚本内容(对于不支持script的浏览器显示此内容)  
    ol:排序表单  
    p:段落  
    pre:格式化文本  
    table:表格  
    ul:非排序列表

    CSS的盒子模型

    顾名思义,就是用把某些内容用一个盒子包装起来,需要给这个盒子设定一些属性,才能让这个盒子看起来是个盒子

    属性名:

    内容:content 要放一只大闸蟹

    填充:padding 需要冷藏,就用冰块,这个属性就是冰块填了多厚

    边框:border 盒子纸质的厚度,用什么颜色的纸

    边界:margin 别的盒子离这个盒子的距离

    把上面这几个属性属性说明一下,那主考官就知道了,除非他不了解CSS

    ——————————————————————————————————————————————————————————————————————

    如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片

    在原答案基础上,加上我个人建站的心得。

    回答:涉及到人手、分工、同步;

    前期团队必须确定好网站全局样式(globe.css),编码模式(utf-8)等;

    编写习惯必须一致(例如都是采用继承式的写法,单样式都写成一行);

    继承式写法举例

    function test(a,b)

    {}

    var date1 =new date;
    date1.test(a,b);
    var date1 =new date;
    date1.test(a,b);

    标注样式编写人,各模块都及时标注(标注关键样式调用的地方);

    易于纠正错误,查清责任。

    页面进行标注(例如 页面 模块 开始和结束);

    CSS跟HTML分文件夹并行存放,命名都得统一(例如style.css)

    JS 分文件夹存放 命名以该JS功能为准英文翻译;

    图片采用png8(256色PNG类型图片格式的别名)其他别的图片文件格式也行,保证格式基本一致,不要这几张用JPG,那几张用GIF

    格式相同的整合在一起,使用方便,便于将来的管理

    ——————————————————————————————————————————————————————————————————————

    用JS实现随机选取10到100之间的10个数字,存入到数组,并排序。

    在网上看到一道题,算是有一定难度,然后那题给出的答案无论是语法还是算法,错得一塌糊涂。

    以下给我自己写的答案

    <script>
    var array=[];
    function getRandom(start,end)
    {
        var choice=end-start;
        var a1=[];
        for(var i=0;i<91;i++)
        {
            a1[i]=i+10
        }
        var a2=[];
        for(var i=0;i<10;i++)
        {
            a2.push(a1.splice(Math.floor(Math.random()*a1.length) , 1));
            a2.sort();
        }
        return a2;
    }
    array.push(getRandom(10,100));
    alert(array);
    </script>

    测试通过,有更好答案的朋友麻烦告诉我这低能儿一声,感激不尽。

    ——————————————————————————————————————————————————————————————————————

    双击表格每一列头进行该列整行排序,再双击倒序。(腾讯2012前端开发笔试题)

    涉及到很多知识点,建议认真看看。不愧为腾讯,这题实在不容易。

      1 以下的代码直接存为sortTable.js,在页面中包含:
      2 <script type="text/javascript" src="sortTable.js"></script>
      3 
      4 function ieOrFireFox(ob)
      5 {       
      6     if (ob.textContent != null)       
      7     return ob.textContent;       
      8     var s = ob.innerText;       
      9     return s.substring(0, s.length);       
     10 }       
     11        
     12 //排序 tableId: 表的id,iCol:第几列 ;dataType:iCol对应的列显示数据的数据类型       
     13 function sortAble(tableId, iCol, dataType)
     14 {       
     15     var table = document.getElementById(tableId);       
     16     var tbody = table.tBodies[0];       
     17     var colRows = tbody.rows;       
     18     var aTrs = new Array;       
     19     //将将得到的列放入数组,备用       
     20     for (var i=0; i < colRows.length-1; i++)
     21     {       
     22         aTrs[i] = colRows[i+1];       
     23     }       
     24                                                
     25     //判断上一次排列的列和现在需要排列的是否同一个。       
     26     if (table.sortCol == iCol) 
     27     {       
     28         aTrs.reverse();       
     29     } 
     30     else 
     31     {       
     32         //如果不是同一列,使用数组的sort方法,传进排序函数       
     33         aTrs.sort(compareEle(iCol, dataType));       
     34     }                
     35     oFragment = document.createDocumentFragment(); 
     36     
     37     for (var i=0; i < aTrs.length; i++)
     38     {       
     39         oFragment.appendChild(aTrs[i]);       
     40     }                       
     41     tbody.appendChild(oFragment);       
     42     //记录最后一次排序的列索引       
     43     table.sortCol = iCol;       
     44 }       
     45     //将列的类型转化成相应的可以排列的数据类型       
     46 function convert(sValue, dataType) 
     47 {       
     48     switch(dataType)
     49     {       
     50         case "int":       
     51             return parseInt(sValue);       
     52         case "float":       
     53             return parseFloat(sValue);       
     54         case "date":       
     55             return new Date(Date.parse(sValue));       
     56         default:       
     57             return sValue.toString();       
     58     }       
     59 }       
     60             
     61 //排序函数,iCol表示列索引,dataType表示该列的数据类型       
     62 function compareEle(iCol, dataType) 
     63 {       
     64     return function (oTR1, oTR2)
     65     {       
     66         var vValue1 = convert(ieOrFireFox(oTR1.cells[iCol]), dataType);       
     67         var vValue2 = convert(ieOrFireFox(oTR2.cells[iCol]), dataType);       
     68         if (vValue1 < vValue2)
     69         {       
     70             return -1;       
     71         } 
     72         else if (vValue1 > vValue2)
     73         {       
     74             return 1;
     75         } 
     76         else 
     77         {     
     78             return 0;       
     79         }       
     80     };       
     81 }      
     82 
     83 
     84 
     85 
     86 然后直接在页面中就可以使用排序方法了:  
     87 
     88 表格写法:  
     89 <table width="96%" height="" border="0" id="tableId">  
     90 <tr>                              
     91 <th >日期</th>  
     92 <th onclick="sortAble('tableId', 1)" style="cursor:pointer">某列</th>
     93 <th onclick="sortAble('tableId', 2)" style="cursor:pointer">某列</th>
     94 <th onclick="sortAble('tableId', 3)" style="cursor:pointer">某列</th>
     95 <th >某列</th>
     96 <th >某列</th>  
     97 <th onclick="sortAble('tableId', 6, 'int')" style="cursor:pointer">某整数列</th>  
     98 </tr>  
     99 <tr>  
    100 jsp循环生成列表数据  
    101 </tr>  
    102 </table>

    XML DOM textContent 属性

    定义和用法

    textContent 属性返回或设置选定元素的文本。

    如果返回文本,则该属性返回元素节点内所有文本节点的值。

    如果设置文本,则该属性删除所有子节点,并用单个文本节点来替换它们。

    语法:

    返回文本:

    elementNode.textContent

    设置文本:

    elementNode.textContent=string

    JavaScript sort() 方法

    定义和用法

    sort() 方法用于对数组的元素进行排序。

    语法

    arrayObject.sort(sortby)
    参数 描述
    sortby 可选。规定排序顺序。必须是函数。

    返回值

    对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

    说明

    如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

    如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

    • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
    • 若 a 等于 b,则返回 0。
    • 若 a 大于 b,则返回一个大于 0 的值。

    在本例中,我们将创建一个数组,并按字母顺序进行排序:

    <script type="text/javascript">
    
    var arr = new Array(6)
    arr[0] = "10"
    arr[1] = "5"
    arr[2] = "40"
    arr[3] = "25"
    arr[4] = "1000"
    arr[5] = "1"
    
    document.write(arr + "<br />")
    document.write(arr.sort())
    
    </script>

    输出:

    10,5,40,25,1000,1
    1,10,1000,25,40,5

    请注意,上面的代码没有按照数值的大小对数字进行排序,要实现这一点,就必须使用一个排序函数:

    <script type="text/javascript">
    
    function sortNumber(a,b)
    {
    return a - b
    }
    
    var arr = new Array(6)
    arr[0] = "10"
    arr[1] = "5"
    arr[2] = "40"
    arr[3] = "25"
    arr[4] = "1000"
    arr[5] = "1"
    
    document.write(arr + "<br />")
    document.write(arr.sort(sortNumber))
    
    </script>

    输出:

    10,5,40,25,1000,1
    1,5,10,25,40,1000

    实例

     1 <html>
     2 <body>
     3 
     4 <script type="text/javascript">
     5 
     6 function sortNumber(a, b)
     7 {
     8 return a - b
     9 }
    10 
    11 var arr = new Array(6)
    12 arr[0] = "10"
    13 arr[1] = "5"
    14 arr[2] = "40"
    15 arr[3] = "25"
    16 arr[4] = "1000"
    17 arr[5] = "1"
    18 
    19 document.write(arr + "<br />")
    20 document.write(arr.sort(sortNumber))
    21 
    22 </script>
    23 
    24 </body>
    25 </html>

    输出:

    10,5,40,25,1000,1
    1,5,10,25,40,1000 

    HTML <th> 标签

    定义表格内的表头单元格。

    HTML 表单中有两种类型的单元格:

    • 表头单元格 - 包含表头信息(由 th 元素创建)
    • 标准单元格 - 包含数据(由 td 元素创建)

    th 元素内部的文本通常会呈现为居中的粗体文本,而 td 元素内的文本通常是左对齐的普通文本。

    实例

    普通的 HTML 表格,包含两行两列:

    <table border="1">
      <tr>
        <th>Company</th>
        <th>Address</th>
      </tr>
    
      <tr>
        <td>Apple, Inc.</td>
        <td>1 Infinite Loop Cupertino, CA 95014</td>
      </tr>
    </table>

    HTML <col> 标签

     <col> 标签为表格中一个或多个列定义属性值。

    如需对全部列应用样式,<col> 标签很有用,这样就不需要对各个单元和各行重复应用样式了。

    您只能在 table 或 colgroup 元素中使用 <col> 标签。

    实例

    col 元素为表格中的三个列规定了不同的对齐方式:

    <table width="100%" border="1">
      <col align="left" />
      <col align="left" />
      <col align="right" />
      <tr>
        <th>ISBN</th>
        <th>Title</th>
        <th>Price</th>
      </tr>
      <tr>
        <td>3476896</td>
        <td>My first HTML</td>
        <td>$53</td>
      </tr>
    </table>

    HTML DOM rows 集合

    定义和用法

    rows 集合返回表格中所有行(TableRow 对象)的一个数组,即一个 HTMLCollection。

    该集合包括 <thead>、<tfoot> 和 <tbody> 中定义的所有行。

    语法

    tableObject.rows[]

    实例

    下面的例子使用了 rows 集合来显示第一行中的内容:

     1 <html>
     2 <head>
     3 <script type="text/javascript">
     4 function showRow()
     5   {
     6   alert(document.getElementById('myTable').rows[0].innerHTML)
     7   }
     8 </script>
     9 </head>
    10 <body>
    11 
    12 <table id="myTable" border="1">
    13 <tr>
    14 <td>Row1 cell1</td>
    15 <td>Row1 cell2</td>
    16 </tr>
    17 <tr>
    18 <td>Row2 cell1</td>
    19 <td>Row2 cell2</td>
    20 </tr>
    21 </table>
    22 <br />
    23 <input type="button" onclick="showRow()" value="Show innerHTML">
    24 
    25 </body>
    26 </html>

    CSS cursor 属性

    定义和用法

    cursor 属性规定要显示的光标的类型(形状)。

    该属性定义了鼠标指针放在一个元素边界范围内时所用的光标形状(不过 CSS2.1 没有定义由哪个边界确定这个范围)。

    描述
    url

    需使用的自定义光标的 URL。

    注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标。

    default 默认光标(通常是一个箭头)
    auto 默认。浏览器设置的光标。
    crosshair 光标呈现为十字线。
    pointer 光标呈现为指示链接的指针(一只手)
    move 此光标指示某对象可被移动。
    e-resize 此光标指示矩形框的边缘可被向右(东)移动。
    ne-resize 此光标指示矩形框的边缘可被向上及向右移动(北/东)。
    nw-resize 此光标指示矩形框的边缘可被向上及向左移动(北/西)。
    n-resize 此光标指示矩形框的边缘可被向上(北)移动。
    se-resize 此光标指示矩形框的边缘可被向下及向右移动(南/东)。
    sw-resize 此光标指示矩形框的边缘可被向下及向左移动(南/西)。
    s-resize 此光标指示矩形框的边缘可被向下移动(北/西)。
    w-resize 此光标指示矩形框的边缘可被向左移动(西)。
    text 此光标指示文本。
    wait 此光标指示程序正忙(通常是一只表或沙漏)。
    help 此光标指示可用的帮助(通常是一个问号或一个气球)。

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    HTML DOM 对象

    HTML DOM hash 属性

     1 <html>
     2 <head>
     3 <script type="text/javascript">
     4 function changeLink()
     5 {
     6 document.getElementById('venus').hash="bottom"
     7 }
     8 </script>
     9 </head>
    10 <body>
    11 
    12 <img src="/i/eg_planets.jpg"
    13 usemap="#planetmap" />
    14 
    15 <map name="planetmap">
    16 <area
    17 id="venus"
    18 shape="circle"
    19 coords="180,139,14"
    20 href ="/example/hdom/venus2.html#top"
    21 alt="Venus" />
    22 </map>
    23 
    24 <input type="button" onclick="changeLink()" value="改变链接" />
    25 
    26 </body>
    27 </html>

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

    ——————————————————————————————————————————————————————————————————————

  • 相关阅读:
    变量的生命周期【CPP】
    cpp静态成员和普通成员
    MAVEN学习(二) Myeclipse简单maven项目搭建
    redis安装和部署
    MAVEN学习(三) Maven构建多模块项目
    redis常用客户端命令
    本地计算机如何连接阿里云Mysql数据库
    MAVEN学习(一) nexus私服
    Linux之系统目录结构
    .net开发常用的第三方开发组件
  • 原文地址:https://www.cnblogs.com/laonanren/p/2912784.html
Copyright © 2011-2022 走看看