作者: 自由奇客

  • 苹果CEO Steve Jobs不为人知的另一半:帮主夫人亮相

    Jobs在果粉中俨然是一位教主,在员工眼中是一位要是产品不合他意则会不吝言辞斥责下属的暴君,在业界看来是一位回归之后非常有控制力的CEO,在分析
    是看来目前只要关心可能泄漏出来的病例报告,但各个方向折射出来的乔布斯不是GaGa那样的猛兽,而是有家室的男人,一个温柔的男人。

    随着教主越来越轻薄,我们透过瘦掉的部分窥视到教主王座之下是怎么样子。上周末,从苹果自家放出的WWDC keynote录像中,我们看到了教主和教主夫人Laurene Powell Jobs。各位果粉们在Lea Suzuki的镜头中体味到轻薄教主的温柔了吗?

  • 苹果一名员工成立工会 要求提高工资待遇

    苹果一名兼职员工科利·莫尔(Cory Moll)最近成立一个工会,主要是为零售店的员工争取更好的工资和福利,以解决所谓的不公平做法。科利·莫尔说:“核心的问题主要是薪酬、支付和福利。”他决定率领工会走向公众,从而鼓励其它员工加入。

    在货运和汽车行业,工会十分强大,但在硅谷企业中却十分罕见,因为行业流动性强,企业可以弹性招人和炒人。

    苹果的员工一直忠诚度极高,莫尔的行动显得有些不寻常。在苹果全球的325个店铺里,共有3万名零售员工。

    科利·莫尔现年30岁,已经为苹果工作4年,它在苹果旧金山店铺工作,每小时赚14美元。旧金山2011年的最低工资标准是每小时9.92美元,在美国旧金山是消费最高的城市之一。他主要通过Twitter、Facebook和“苹果零售员工工会”网站和苹果店铺员工联络。

    到目前为止,莫尔获得的员工支持十分有限。苹果一位代表证实莫尔是苹果员工之一,但拒绝评论工会。

  • 怎样向Google求职

    以下是Google的运作经理Bryan Power给我们的一些建议。

    Bryan Power主管美洲地区的招聘工作。在此之前他领导产品管理和工程师团队,这都给了他丰富的招聘经验。

    简洁的描述:

    Power建议无论是Google还是其它公司的求职者简明但是精确的介绍一下自己的成就。他说,简历上的每个字都要有意义,申请者必须正确处理成就和责任之间的关系。

    Power经常听到申请者说他以前的职位,却不提在此职位上做了什么事,要知道使人脱颖而出的正是这些内容。就拿销售管理这个职位来说,不要仅仅说你领导一个团队,谈谈你为公司带来的业绩。

    人们常常因为害怕自己的业绩不够好而在申请材料中刻意回避这些具体的数字,但是这就使很多看起来没有什么区别,Power如是说。

    另外他还建议申请人尽量详尽并着重描述一下比较大的成就,这比罗列出各种各样的职位的申请材料要有吸引力的多。明智的选择申请内容是很重要的。

    天分,不是技巧的集合:

    和其他的很多公司不同,Google对人才的要求强调的是天分,而不是具体某个方面的技巧。

    “世界变化的很快,我们需要能够适应环境,可以应对不同挑战的人。”Power补充道。“过去的5年发生的很多变化,未来也将一样。我们需要能够快速适应环境的人。”

    因此,Google的招聘者不仅仅看你的事业成就,他们同样渴望了解你在学习或者工作之外的成就。“我们正真要找的是能够发挥很大影响,并且乐于此事的人。”Power说。

    当被问到哪类人不适合在Google工作的时候,Power说那些只关心公司给他们的职位和能够管理多少人的申请者与那些关心公司面临的挑战并尽力帮助公司发展的人相比完全没有竞争力,因为前者关心的是Google会给他们带来什么,而不是想着为Google带来什么。

    Google的面试一般都开始与在电话。成功的候选人将和他申请的团队中的其他人一起邀请参加一个面试。

    提到公司面试我们一般都会想到你站在那里,面对着一些考官,天南地北,口水乱飞地谈论着你的工作经验、你的学历等等,然而Google面试的风格和 这些公司不同。Google的面试者可以更加开放的谈论Google以及它的未来发展,就某个具体的技术问题展开讨论,来证明他们解决问题的能力。

    “人们对Google面试的印象都是他们在一起谈论了45分钟的互联网世界,在此过程中大家慢慢习惯展示自己的观点。”Power说。

    面试没有着装标准。Power回忆说:“我见过穿着短裤和T恤的聪明的面试者,以及衣着光鲜,但是毫无准备的人,如果你想来,那就好好准备把,至于衣着就怎么舒服怎么穿。”

    即使应聘失败,Power也建议申请者保持与招聘人员的联系。

    “很多时候你可能申请的职位并不需要人,但是事情都是发展变化的,没准儿过上几个月你就有机会了。

  • 千人挑战,博主们快快行动吧

    千人挑战 – 拿福能中国 | 亚太地区首家博客广吿社区

    http://www.nuffnang.com.cn/blog/2011/05/23/challenge-1000

     

    就这么简单!在提交博文之后,拿啡们会进行简单的审核,一旦审核通过,你的博客就会出现在我们的活动广告位上,而在加入人数达到1000人后,你就可以在你的拿福能账号中收到50元人民币的奖励!

     

    看过以上介绍,如果你仍然对本次活动及参加方式有所疑问 ,欢迎发送信息票至我们的服务台,我们将在第一时间给你回复,要是你真的很急很急的话,那就猛点吧,在线拿啡会立即出现并为你效劳,嗯,如果它亮着的话。

    好了,心动不如行动,快点叫上你的博主朋友,一起来参加“千人挑战”吧!

    注意事项:
    1、每名注册博主可绑定多个博客,但仅可通过一个博客参加此次活动。
    2、参加活动的博客建立时间不可少于六个月,且博主最后一次发布博文时间距今不超过两周。
    3、为避免误审及遗漏,请确保你已将拿福能广告位置于易于发现的位置。
    4、对于不可抗力、不可预见、以及超出合理控制范围的情况,拿福能中国保留取消、修改、暂停或推迟活动的权利。
    5、关于收益情况请登陆后参见收益页面,更多拿福能Nuffnang.com.cn条件条款请移步这里详细了解。

     

  • Web前端开发笔试题集锦(Javascript篇)

    以下为Web前端开发笔试题集锦之Javascript篇,移步HTML/CSS篇

    1, 判断字符串是否是这样组成的,第一个必须是字母,后面可以是字母、数字、下划线,总长度为5-20

    var reg = /^[a-zA-Z][a-zA-Z_0-9]{4,19}$/;
    reg.test("a1a__a1a__a1a__a1a__");

    2,截取字符串abcdefg的efg

    var str = "abcdefg";
    if (/efg/.test(str)) {
      var efg = str.substr(str.indexOf("efg"), 3);
      alert(efg);
    }

    3,判断一个字符串中出现次数最多的字符,统计这个次数

     

    //将字符串的字符保存在一个hash table中,key是字符,value是这个字符出现的次数
    var str = "abcdefgaddda";
    var obj = {};
    for (var i = 0, l = str.length; i < l; i++) {
       var key = str[i];
       if (!obj[key]) {
          obj[key] = 1;
       } else {
          obj[key]++;
       }
    }
    
    /*遍历这个hash table,获取value最大的key和value*/
    var max = -1;
    var max_key = "";
    var key;
    for (key in obj) {
       if (max < obj[key]) {
          max = obj[key];
          max_key = key;
       }
    }
    
    alert("max:"+max+" max_key:"+max_key);

    4,IE与FF脚本兼容性问题

    (1) window.event:

    表示当前的事件对象,IE有这个对象,FF没有,FF通过给事件处理函数传递事件对象

    (2) 获取事件源

    IE用srcElement获取事件源,而FF用target获取事件源

    (3) 添加,去除事件

    IE:element.attachEvent(“onclick”, function) element.detachEvent(“onclick”, function)

    FF:element.addEventListener(“click”, function, true) element.removeEventListener(“click”, function, true)

    (4) 获取标签的自定义属性

    IE:div1.value或div1[“value”]

    FF:可用div1.getAttribute(“value”)

    (5) document.getElementByName()和document.all[name]

    IE;document.getElementByName()和document.all[name]均不能获取div元素

    FF:可以

    (6) input.type的属性

    IE:input.type只读

    FF:input.type可读写

    (7) innerText textContent outerHTML

    IE:支持innerText, outerHTML

    FF:支持textContent

    (8) 是否可用id代替HTML元素

    IE:可以用id来代替HTML元素

    FF:不可以

    这里只列出了常见的,还有不少,更多的介绍可以参看JavaScript在IE浏览器和Firefox浏览器中的差异总结

    5,规避javascript多人开发函数重名问题

    (1) 可以开发前规定命名规范,根据不同开发人员开发的功能在函数前加前缀

    (2) 将每个开发人员的函数封装到类中,调用的时候就调用类的函数,即使函数重名只要类名不重复就ok

    6,javascript面向对象中继承实现

    javascript面向对象中的继承实现一般都使用到了构造函数和Prototype原型链,简单的代码如下:

    function Animal(name) {
       this.name = name;
    }
    
    Animal.prototype.getName = function() {alert(this.name)}
    function Dog() {};
    Dog.prototype = new Animal("Buddy");
    Dog.prototype.constructor = Dog;
    var dog = new Dog();

    7,FF下面实现outerHTML

    FF不支持outerHTML,要实现outerHTML还需要特殊处理

    思路如下:

    在页面中添加一个新的元素A,克隆一份需要获取outerHTML的元素,将这个元素append到新的A中,然后获取A的innerHTML就可以了。

     <!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=gb2312" /> 
    <title>获取outerHMTL</title> 
    <style> 
    div{ background:#0000FF;width:100px;height:100px;}  
    span{ background:#00FF00;width:100px;height:100px;}  
    p{ background:#FF0000;width:100px;height:100px;}  
    </style> 
    </head> 
    <body> 
    <div id="a"><span>SPAN</span>DIV</div> 
    <span>SPAN</span>
    <p>P</p> 
    <script type="text/javascript">
    function getOuterHTML(id){
     var el = document.getElementById(id);
     var newNode = document.createElement("div");
     document.appendChild(newNode);
     var clone = el.cloneNode(true);
     newNode.appendChild(clone);
     alert(newNode.innerHTML);
     document.removeChild(newNode);
    }
    getOuterHTML("a");
    </script>
    </body> 
    </html>

    8,编写一个方法 求一个字符串的字节长度

    假设:

    一个英文字符占用一个字节,一个中文字符占用两个字节

    function GetBytes(str){
        var len = str.length;
        var bytes = len;
        for(var i=0; i<len; i++){
            if (str.charCodeAt(i) > 255) bytes++;
        }
        return bytes;
    }
    alert(GetBytes("你好,as"));

    9,编写一个方法 去掉一个数组的重复元素

    var arr = [1 ,1 ,2, 3, 3, 2, 1];
    Array.prototype.unique = function(){
        var ret = [];
        var o = {};
        var len = this.length;
        for (var i=0; i<len; i++){
            var v = this[i];
            if (!o[v]){
                o[v] = 1;
                ret.push(v);
            }
        }
        return ret;
    };
    alert(arr.unique());

    10,写出3个使用this的典型应用

    (1)在html元素事件属性中使用,如

    <input type=”button” onclick=”showInfo(this);” value=”点击一下”/>

    (2)构造函数

    function Animal(name, color) {
       this.name = name;
       this.color = color;
    }

    (3)

    <input type="button" id="text" value="点击一下" />
    <script type="text/javascript">
    var btn = document.getElementById("text");
    btn.onclick = function() {
    alert(this.value); //此处的this是按钮元素
    }
    </script>

    (4)CSS expression表达式中使用this关键字

    <table width="100px" height="100px">
      <tr>
        <td>
        <div style="width:expression(this.parentNode.width);">div element</div>
        </td>
      </tr>
    </table>

    12,如何显示/隐藏一个DOM元素?

    el.style.display = "";
    el.style.display = "none";

    el是要操作的DOM元素

    13,JavaScript中如何检测一个变量是一个String类型?请写出函数实现

    String类型有两种生成方式:

    (1)Var str = “hello world”;

    (2)Var str2 = new String(“hello world”);

    function IsString(str){
        return (typeof str == "string" || str.constructor == String);
    }
    var str = "";
    alert(IsString(1));
    alert(IsString(str));
    alert(IsString(new String(str)));

    14,网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态显示“××年还剩××天××时××分××秒”

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
       <title>倒计时</title>
    </head>
    <body>
    <input type="text" value="" id="input" size="1000"/>
    <script type="text/javascript">
       function counter() {
          var date = new Date();
          var year = date.getFullYear();
          var date2 = new Date(year, 12, 31, 23, 59, 59);
          var time = (date2 - date)/1000;
          var day =Math.floor(time/(24*60*60))
          var hour = Math.floor(time%(24*60*60)/(60*60))
          var minute = Math.floor(time%(24*60*60)%(60*60)/60);
          var second = Math.floor(time%(24*60*60)%(60*60)%60);
          var str = year + "年还剩"+day+"天"+hour+"时"+minute+"分"+second+"秒";
          document.getElementById("input").value = str;
       }
       window.setInterval("counter()", 1000);
    </script>
    </body>
    </html>

    15,补充代码,鼠标单击Button1后将Button1移动到Button2的后面<div> <input type=”button” id =”button1″ value=”1″ onclick=”???”> <input type=”button” id =”button2″ value=”2″ /”> </div>

    <div>
       <input type="button" id ="button1" value="1" onclick="moveBtn(this);">
       <input type="button" id ="button2" value="2" />
    </div>
    <script type="text/javascript">
    function moveBtn(obj) {
       var clone = obj.cloneNode(true);
       var parent = obj.parentNode;
       parent.appendChild(clone);
       parent.removeChild(obj);
    }
    </script>

    16,JavaScript有哪几种数据类型

    简单:Number,Boolean,String,Null,Undefined

    复合:Object,Array,Function

    17,下面css标签在JavaScript中调用应如何拼写,border-left-color,-moz-viewport

    borderLeftColor

    mozViewport

    18,JavaScript中如何对一个对象进行深度clone

    function cloneObject(o) {
        if(!o || 'object' !== typeof o) {
            return o;
        }
        var c = 'function' === typeof o.pop ? [] : {};
        var p, v;
        for(p in o) {
            if(o.hasOwnProperty(p)) {
                v = o[p];
                if(v && 'object' === typeof v) {
                    c[p] = Ext.ux.clone(v);
                }
                else {
                    c[p] = v;
                }
            }
        }
        return c;
    }; 

    19,如何控制alert中的换行

    n alert(“pnp”);

    20,请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性)

    <!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=gb2312" /> 
    <title>鼠标点击页面中的任意标签,alert该标签的名称</title> 
    <style> 
    div{ background:#0000FF;width:100px;height:100px;}  
    span{ background:#00FF00;width:100px;height:100px;}  
    p{ background:#FF0000;width:100px;height:100px;}  
    </style> 
    <script type="text/javascript">
    document.onclick = function(evt){
     var e = window.event || evt;
     var tag = e["target"] || e["srcElement"];
     alert(tag.tagName);
    };
    </script>
    </head> 
    <body> 
    <div id="div"><span>SPAN</span>DIV</div> 
    <span>SPAN</span>
    <p>P</p> 
    </body> 
    </html> 

    21,请编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象,如:

    var url = “http://witmax.cn/index.php?key0=0&key1=1&key2=2″;

    function parseQueryString(url){
       var params = {};
       var arr = url.split("?");
       if (arr.length <= 1)
          return params;
       arr = arr[1].split("&");
       for(var i=0, l=arr.length; i<l; i++){
          var a = arr[i].split("=");
          params[a[0]] = a[1];
       }
       return params;
    }
    
    var url = "http://witmax.cn/index.php?key0=0&key1=1&key2=2";
    var ps = parseQueryString(url);
    alert(ps["key1"]);

    22,ajax是什么? ajax的交互模型? 同步和异步的区别? 如何解决跨域问题?

    Ajax是多种技术组合起来的一种浏览器和服务器交互技术,基本思想是允许一个互联网浏览器向一个远程页面/服务做异步的http调用,并且用收到的数据来更新一个当前web页面而不必刷新整个页面。该技术能够改进客户端的体验。包含的技术:

    XHTML:对应W3C的XHTML规范,目前是XHTML1.0。

    CSS:对应W3C的CSS规范,目前是CSS2.0

    DOM:这里的DOM主要是指HTML DOM,XML DOM包括在下面的XML中

    JavaScript:对应于ECMA的ECMAScript规范

    XML:对应W3C的XML DOM、XSLT、XPath等等规范

    XMLHttpRequest:对应WhatWG的Web Applications1.0规范(http://whatwg.org/specs/web-apps/current-work/

    AJAX交互模型

    同步:脚本会停留并等待服务器发送回复然后再继续

    异步:脚本允许页面继续其进程并处理可能的回复

    跨域问题简单的理解就是因为JS同源策略的限制,a.com域名下的JS无法操作b.com或c.a.com下的对象,具体场景如下:

    PS:(1)如果是端口或者协议造成的跨域问题前端是无能为力的

    (2) 在跨域问题上,域仅仅通过URL的首部来识别而不会尝试判断相同的IP地址对应的域或者两个域是否对应一个IP

    前端对于跨域的解决办法:

    (1) document.domain+iframe

    (2) 动态创建script标签

    23,什么是闭包?下面这个ul,如何点击每一列的时候alert其index?

    <ul id=”test”>
    <li>这是第一条</li>
    <li>这是第二条</li>
    <li>这是第三条</li>
    </ul>

    内部函数被定义它的函数的外部区域调用的时候就产生了闭包。

    (function A() {
       var index = 0;
       var ul = document.getElementById("test");
       var obj = {};
       for (var i = 0, l = ul.childNodes.length; i < l; i++) {
          if (ul.childNodes[i].nodeName.toLowerCase() == "li") {
             var li = ul.childNodes[i];
             li.onclick = function() {
                index++;
                alert(index);
             }
          }
       }
    })();

    24,请给出异步加载js方案,不少于两种

    默认情况javascript是同步加载的,也就是javascript的加载时阻塞的,后面的元素要等待javascript加载完毕后才能进行再加载,对于一些意义不是很大的javascript,如果放在页头会导致加载很慢的话,是会严重影响用户体验的。

    异步加载方式:

    (1) defer,只支持IE

    (2) async:

    (3) 创建script,插入到DOM中,加载完毕后callBack,见代码:

    function loadScript(url, callback){
       var script = document.createElement("script")
       script.type = "text/javascript";
       if (script.readyState){ //IE
          script.onreadystatechange = function(){
             if (script.readyState == "loaded" ||
                script.readyState == "complete"){
                script.onreadystatechange = null;
                callback();
             }
          };
       } else { //Others: Firefox, Safari, Chrome, and Opera
          script.onload = function(){
              callback();
          };
       }
       script.src = url;
       document.body.appendChild(script);
    }

    25,请设计一套方案,用于确保页面中JS加载完全。

    var n = document.createElement("script");
    n.type = "text/javascript";
    //以上省略部分代码
    //ie支持script的readystatechange属性(IE support the readystatechange event for script and css nodes)
    if(ua.ie){
       n.onreadystatechange = function(){
           var rs = this.readyState;
           if('loaded' === rs || 'complete'===rs){
               n.onreadystatechange = null;
               f(id,url); //回调函数
           }
    };
    //省略部分代码
    //safari 3.x supports the load event for script nodes(DOM2)
       n.addEventListener('load',function(){
           f(id,url);
       });
    //firefox and opera support onload(but not dom2 in ff) handlers for
    //script nodes. opera, but no ff, support the onload event for link
    //nodes.
    }else{
       n.onload = function(){
           f(id,url);
       };
    }

    26,js中如何定义class,如何扩展prototype?

    Ele.className = “***”; //***在css中定义,形式如下:.*** {…}

    A.prototype.B = C;

    A是某个构造函数的名字

    B是这个构造函数的属性

    C是想要定义的属性的值

    27,如何添加html元素的事件,有几种方法.

    (1) 为HTML元素的事件属性赋值

    (2) 在JS中使用ele.on*** = function() {…}

    (3) 使用DOM2的添加事件的方法 addEventListener或attachEvent

    28,documen.write和 innerHTML的区别

    document.write只能重绘整个页面

    innerHTML可以重绘页面的一部分

    29,多浏览器检测通过什么?

    (1) navigator.userAgent

    (2) 不同浏览器的特性,如addEventListener

    30,js的基础对象有那些, window和document的常用的方法和属性列出来

    String,Number,Boolean

    Window:

    方法:setInterval,setTimeout,clearInterval,clearTimeout,alert,confirm,open

    属性:name,parent,screenLeft,screenTop,self,top,status

    Document

    方法:createElement,execCommand,getElementById,getElementsByName,getElementByTagName,write,writeln

    属性:cookie,doctype,domain,documentElement,readyState,URL,

    31,前端开发的优化问题

    (1) 减少http请求次数:css spirit,data uri

    (2) JS,CSS源码压缩

    (3) 前端模板 JS+数据,减少由于HTML标签导致的带宽浪费,前端用变量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数

    (4) 用innerHTML代替DOM操作,减少DOM操作次数,优化javascript性能

    (5) 用setTimeout来避免页面失去响应

    (6) 用hash-table来优化查找

    (7) 当需要设置的样式很多时设置className而不是直接操作style

    (8) 少用全局变量

    (9) 缓存DOM节点查找的结果

    (10) 避免使用CSS Expression

    (11) 图片预载

    (12) 避免在页面的主体布局中使用table,table要等其中的内容完全下载之后才会显示出来,显示比div+css布局慢

    32,如何控制网页在网络传输过程中的数据量

    启用GZIP压缩

    保持良好的编程习惯,避免重复的CSS,JavaScript代码,多余的HTML标签和属性

    33,Flash、Ajax各自的优缺点,在使用中如何取舍?

    Ajax的优势

    (1) 可搜索型

    (2) 开放性

    (3) 费用

    (4) 易用性

    (5) 易于开发

    Flash的优势

    (1) 多媒体处理

    (2) 兼容性

    (3) 矢量图形 比SVG,Canvas优势大很多

    (4) 客户端资源调度,比如麦克风,摄像头

    参考:http://www.xuchen.name/?p=440002 


    枫芸志原创文章,请移步完整原文

    本文链接:http://witmax.cn/web-dev-test-html.html

  • Web前端开发笔试题集锦(HTML/CSS篇)

    以下为Web前端开发笔试题集锦之HTML/CSS篇,请移步完整原文链接:http://witmax.cn/web-dev-test-html.html

    1,让一个input的背景颜色变成红色

    2,div的高宽等于浏览器可见区域的高宽,浏览器滚动,div始终覆盖浏览器的整个可见区域

    思路:

    (1)先放置一个div1,浮动:position:absolute;top:0px;left:0px;
    (2)再放置一个div2,浮动:position:absolute;top:0px;left:0px;width:100%;height:100%;
    (3)在div2中放置一个div3,令其高度超过浏览器高度,使div2产生滚动条
    (4)对html,body进行样式设置:width:100%;height:100%;overflow:hidden->不让浏览器产生滚动条,避免页面出现两个滚动条
    (5)编写JavaScript,另div2的高度等于页面可见高度,宽度等于页面可见宽度,注意,在计算完可见高度height和可见宽度width后,要对这两个值做处理,可见宽度-div2的滚动条的宽度,滚动条的宽度我这里假设是20px

     

    3,IE、FF下面CSS的解释区别

    4,一个定宽元素在浏览器(IE6,IE7,Firefox)中横向居中对齐的布局,请写出主要的HTML标签及CSS

    思路:

    IE6/7:text-align:center
    Firefox:margin:0 auto(margin-top和margin-bottom也可以为其他数字,关键是margin-left,margin-right为auto)

    5,CSS中margin和padding的区别

    margin是元素的外边框,是元素边框和相邻元素的距离
    Padding是元素的内边框,是元素边框和子元素的距离

    6,最后一个问题是,如何制作一个combo选项,就是可以输入可以下拉菜单选择。

    思路:
    (1)布局select和input,让input覆盖select,除了select的下拉图标,以方便select选择
    (2)编写JS,为select添加onchange事件,onchange时将input的value置成select选中的指

    7,中alt和tittle的区别

    alt:图片显示不出来了就提示alt

    title:鼠标划过图片显示的提示

    8,用css、html编写一个两列布局的网页,要求右侧宽度为200px,左侧自动扩展。

    9,解释document.getElementById(“ElementID”).style.fontSize=”1.5em”

    em是相对长度单位,相当于当前对象内文本的字体尺寸,如果当前行内文本的字体尺寸未被指定,则相对于浏览器的默认字体尺寸。
    该语句将id为ElementID的元素的字体设置为当前对象内文本的字体尺寸的1.5倍

    10,Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义? 行内元素有哪些?块级元素有哪些?CSS的盒模型?

    DOCTYPE是文档类型,用来说明使用的HTML或者XHTML是什么版本,其中的DTD叫文档类型定义,里面包含了文档规则,浏览器根据定义的DTD来解析页面的标识并展现出来
    DOCTYPE有两种用途:一个可以进行页面的有效性验证,另一个可以区分浏览器使用严格模式还是混杂模式来解析CSS。
    严格模式和混杂模式是浏览器解析CSS的两种模式,目前使用的大部分浏览器对这两种模式都支持,但是IE5只支持混杂模式。

    可那个过DOCTYPE声明来判断哪种模式被触发
    (1) 没有DOCTYPE声明的网页采用混杂模式解析
    (2) 对使用DOCTYPE声明的网页视不同浏览器进行解析
    (3) 对于浏览器不能识别的DOCTYPE声明,浏览器采用严格模式解析
    (4) 在ie6下,如果在DOCTYPE声明之前有一个xml声明比如
      (5) 在ie下,如果DOCTYPE之前有任何字符,都会导致它进入混杂模式。

    常见的块级元素有:DIV,FORM,TABLE,P,PRE,H1~H6,DL,OL,UL等

    常见的内联元素:SPAN,A,STRONG,EM,LABEL,INPUT,SELECT,TEXTAREA,IMG,BR等
    CSS盒模型用于描述为一个HTML元素形成的矩形盒子,盒模型还涉及元素的外边距,内边距,边框和内容,具体来讲最里面的内容是元素内容,直接包围元素内容的是内边距,包围内边距的是边框,包围边框的是外边距。内边距,外边距,边框默认为0。

    11,CSS引入的方式有哪些? link和@import的区别?

    引入css的方式有下面四种

    (1) 使用style属性
    (2) 使用style标签
    (3) 使用link标签
    (4) 使用@import引入
    Link和@import区别:

    (1) link属于XHTML标签,@import是CSS提供的一种方式。Link除了加载CSS外,还可以做很多事情,如定义RSS,rel连接属性等;@import只能加载CSS
    (2) 加载顺序不同,当页面被加载的时候,link加载的CSS随之加载,而@import引用的CSS会等到页面完全下载完之后才会加载
    (3) 兼容性差别,由于@import是CSS2.1提出的,所以老的浏览器不支持,IE系列的浏览器IE5以上才能识别,而link没有这个问题
    使用DOM控制样式的差别,使用JavaScript控制DOM去改变样式的时候,只能操作link,@import不可以被DOM操作。

    12,如何居中一个浮动元素?

    一个浮动元素里面包含的元素可以水平居中,原理如下:
    让浮动元素left相对于父元素container右移50%,浮动元素left的子元素left-child相对于left左移50%就可以实现left-child相对于container水平居中
    垂直居中类似,不过操作的不是left而是top

    13,HTML5和CSS3的了解情况

    HTML5和CSS3分别是新推出的HTML和CSS规范,前世是XHTML2和CSS2,目前还在草案阶段,不过得到了Apple,Opera,Mozilla,Google,Microsoft不同程度的支持,也开发出了不少基于他们的应用。

    HTML5相对于原来的HTML规范有一些变化:
    (1)DOCTYPE更简洁
    (2)新增了一些语义化标签,如article,header,footer,dialog等
    (3)新增了一些高级标签

    14,你怎么来实现下面这个设计图

    15,css 中id和class如何定义,哪个定义的优先级别高?

    id:#***,***为HTML中定义的id属性

    class:.***,***为HTML中定义的class属性

    id比class的优先级高

    16,用html实现如下表格(不如嵌套实用表格)

    17,web标准网站有那些优点

    (1) Web标准网站结构和布局分离,使网站的访问和维护更加容易
    (2) Web标准网站结构,布局以及页面访问都标准化,使网站能在更多的web标准设备中访问,兼容性更好
    (3) Web标准网站语义化更好,语义化的XHTML不仅对用户友好,对搜索引擎也友好。

    来源:http://www.xuchen.name/2010/10/18/HTML,CSS,笔试题.html 修改了个别错误


    枫芸志原创文章,请移步完整原文

    本文链接:http://witmax.cn/web-dev-test-html.html

     

  • Android平台研发人才缺口30万, 占开发人才总需求72%

    随着采用Android系统的谷歌手机、平板电脑等产品逐渐扩大市场占有率,Android平台人才的缺口日益显现。据业内统计,目前国内的3G研发人才缺口有三、四百万,其中Android研发人才缺口至少30万。职场专家指出,想要从事Android开发的人员,除了基础的计算机技术知识要扎实之外,要根据各类企业、各类岗位的不同需求,补充与岗位相关的Android技术知识。此外,还要注重项目经验的积累。

    ■ 才市动态

    软件应用类Android开发人才占总需求72%

    Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

    据职酷网数据统计显示:目前热招的Android技术相关岗位约有3882个,而一个月内的有效岗位量在2298个。主要热招职位包括 Android开发工程师、Android软件工程师、Android应用开发工程师、系统驱动工程师,Android手机游戏开发、Android系统 软件开发、 Android程序员、Android游戏应用版本管理、人机交互分析工程师、Android中间层开发工程师等。

    从人才需求类型来看,目前对Android人才需求一类是偏向硬件驱动的Android人才需求,一类是偏向软件应用的Android人才需求。从 目前的招聘需求来看,后者的需求最大,包括手机游戏、手机终端应用软件和其他手机应用软件的开发。据职酷网职位搜索库统计显示,目前企业对这类应用软件的 Android开发人才占总需求的72%。

    职业专家分析说,由于目前Android 技术较新,无论是相关书籍、培训还是大学教育,都处于初级阶段,因此Android人才短期将供不应求。从长期来看,随着各种移动应用和手机游戏等内容需 求日益增加,也将激励大中小型手机应用开发商加大对Android应用的开发力度,因此Android人才的就业前景也非常广泛。

    ■ 从业素质

    据职酷网职业专家Vicky介绍,通信类、半导体类企业一般从事硬件程序开发较多,所以需要了解Android系统框架、熟悉Linux系统,熟悉ARM技术等。

    熟悉Java语言、C++语言,熟悉Android SDK即Android开发框架,熟悉Android下的网络通信机制,同时,还要了解Android平台上不同的编程逻辑,同时,还要学习Android平台下的一系列开发工具等等。

    计算机、互联网、移动互联网类企业侧重在应用软件的开发上,这类人才要求熟悉java开发环境及相关开发工具,有较好的软件设计思维与模式,同时熟悉Android的框架。

    据乐成数字通信学院副校长耿赛猛介绍,做Android开发要培养沟通交流能力、以及团队协作能力和项目经验的积累,“项目是以团队合作的方式来完成,通过团队合作,做成一个项目,让应用程序能在手机的移动商店上线”。

    ■ 企业需求

    青睐有完整项目经验的工程师

    ●刘惠霞,新浪无线人力主管

    公司目前最需要的是Android应用开发工程师和Android内核/驱动开发工程师,主要负责Android平台应用软件、游戏开发和程序的维护。

    在新浪手机微博的Android工程师具备至少1年以上实际Android平台开发经验,并且需要熟悉软件开发流程,具有独立工作能力和快速学习能力,良好的团队协作意识和沟通能力。

    学历原则上是全国重点大学本科以上学历,除非应聘者在某方面有过人之处,如“微博控”、Android技术达人。但是本科是必需的。

    以下两方面突出的工程师会备受企业青睐。一方面,拥有完整的Android项目经验的工程师,一般具有扎实的操作系统知识,网络通信知识,懂得软件 开发流程;另一方面,面试中对工程师的“气质”和学习能力也有所考虑,要具备踏实稳健的态度、较强的自我学习更新能力和突出的产品意识。

    ■ 专家观点

    积累项目经验 了解手机开发特点

    ●耿赛猛,乐成数字通信学院副校长

    进入Android这个领域的门槛非常低,但是要做到比较高端的阶段,除了技术知识的储备以外,要注重项目经验的积累,注重手机开发的特点。通过自 己实际使用Android应用,分析各个应用产品的特点,注重用户的UI(用户界面)交互体验,使开发出来的程序能更符合用户的使用习惯。

    ●Vicky,职酷网职业发展专家

    Android 领域人才与其他技术领域的程序开发人才的最大区别,在于Android是个新的系统环境,要有创新思维,并且这些创新思维能够在产品上实现,这就需要对所 开发产品自身的熟悉,同时还要了解产品用户的需求。另外,还要关注相关领域的新技术,有较强的学习能力。在平时工作中,积极地去做项目,不断与别人交流, 思考如何把项目做得更好。

    对于大学生而言,如果,自身对硬件底层相对了解,可以选择一些设备厂商;对于一些生活应用方面有兴趣,有很多新奇的想法希望通过程序实现,也可以选择一些应用程序方面的开发;对于技术能力相对较弱或对于移动产品有兴趣的学生,也可以选择一些产品专员、测试、设计等岗位。

    ■ 从业者说

    ●叶赛尔,友录通讯公司Android开发工程师,2007年清华大学计算机专业毕业

    进入Android平台很容易,只要有计算机方面的知识,扎实的编程功底,Java开发技术和对计算机语言的理解、对数据库、协议的理解,但越往高层次做,要求就越高,如对于产品概念的把握,对于交互的把握,如何让户使用起来更方便。

    在这个领域做到优秀,首先要爱这个平台,喜欢Android的各类软件,愿意下载体验它;其次要明确自己的发展方向,看自己究竟是适合做上层的,偏 向UI、交互逻辑方面的,还是下层的数据库、网络多线程等内容;第三多看源代码,多学习开源的学习资料。遇到问题随时学习,如一个手机安全软件,需要拦截 一些垃圾信息,弄懂哪些算法才能实现这些功能。第四,要能够把一个项目完整地做出来。

  • 黑客集团LulzSec成功拿下美国参议院网站

    黑客集团LulzSec最近发起的全球性网络入侵行为颇为引人注目,他们不同于以往黑客的零散作风,速度快效率高,并且拿下的全球网站都是戒备森严的关键部位,今天他们发布了来自美国参议院网站Senate.gov的一些内部数据。但LulzSec并没有像以往一样泄露参议院的数据,而是公布了他们的文件列表、操作记录和系统的配置文件,公布系统管理员操作的一举一动主要目的就是让参议院难堪。

    Lulz Security在其发布的文件顶端表示:“我们非常不喜欢美国政府,这次公布从参议院网站获取的少量信息纯粹出于好玩,没有其他目的。”

    查看:the Senate leak.

  • 惠普调整管理层 三位高管晋升二位高管辞职

    惠普宣布称,安·利沃莫尔(Ann Livermore)将加入惠普董事会。同时,三位其他高官将晋升级别,直接由惠普首席执行官李艾科(Leo Apotheker)领导。这是惠普为提高增长率对管理层实施调整的一部分。惠普在声明中称,在惠普工作了29年的利沃莫尔将辞去管理惠普大企业部门的日常工作。


    Ann Livermore

    负责软件业务的比尔·维特(Bill Veghte)、销售部门负责人靳·扎达克(Jan Zadak)和服务器、存储、网络和技术服务部门的负责人戴夫·多纳泰利(Dave Donatelli)将直接归李艾科领导。

    在上个月把年营收目标削减10亿美元和发布本季度将达不到营收预期的预测之后,李艾科调整高管职位是为了推动销售增长和削减成本。

    惠普称,惠普首席行政官皮特·博西昂(Pete Bocian)和惠普首席信息官兰迪·莫特(Randy Mott)将辞职。他们的辞职立即生效。

  • 8个技巧拿到高薪工作

    如果想要提高你获得高薪工作的机会,在挑选大学所学专业的时候就要有一些战略。
      一般人都会建议获得大学学位是最重要的,但是乔治敦大学教育和人力资源中心今天发布了一项最新的研究,你所选择的大学专业与你未来的工资有大的影响。
      人口普查局对三百万不同年龄的大学毕业生做了大量的研究,结论是美国最高工资的专业大概比最低工资的专业多挣300%。
      获得大学学位–任何大学的毕业证–都会让你一生所挣的工资比高中毕业生高84%,但是其中一个研究报告作者安东尼 卡纳瓦莱(Anthony Carnevale)认为,你所选专业的重要性可以提升四倍的赚钱能力。
      你可以找到完整的报告《什么是值得的?大学专业的经济价值》。利用这份报告的结论,我跟大家分享能让大学专业挣更多钱的八种方法:
      如何利用你的大学所学专业挣更多的钱
      
    1. 不要选那些女人们都爱的专业。
      避免选择那些有大量女性的专业,比如艺术,社会工作,和教育类。那些非常受女性喜爱的专业大多是最低工资的专业。这里有一个例子:有97%的儿童早期教育专业的学生都是女性,而这个专业是有记载的在171个专业中工资排名第二低的。
     
     2. 选择男生的专业。
      男生更喜欢的专业通常可以得到不错的薪水。国内男性最多的专业领域是船舶与海洋工程(男生占97%)。其他所有男性专业的前十名的有机械工程(90%),核工程(91%),建筑服务(92%),等等。
     
     3. 避开受欢迎的专业,选择不受欢迎的那些。
      广受欢迎的专业像是心理学和基础教育学并不赚钱,但是不那么受欢迎的专业反而比较赚钱。比如,十大赚钱的专业中有八个都是有关工程的。石油工程是最赚钱的专业,中等工资就为12万美元。
     
     4. 远离那些会产生兼职工作的专业。
      经常会出现兼职工作的专业包括医疗协助服务,视觉及表演艺术,沟通障碍科学和服务。
     
     5. 不要停留在一个学士学位上。
      对于一些专业来说,学生很有机会去继续读研究生,这无疑会增加你赚钱的潜力。研究生学位对挣钱非常有帮助的专业有动物学,卫生与医学预科等。而研究生学位对挣钱没有什么推动作用的专业包括工作室艺术,石油工程等。
      
    6. 寻找那些没有失业的专业。
      那是事实上没有失业的专业包括军事技术(以前甚至不知道有这个专业),药理学,地质学,以及地球物理工程。
     
     7. 让艺术成为你的爱好。
      在十大最部赚钱的专业中有三个是和艺术相关的:戏剧与戏剧艺术,工作室艺术,以及视觉及表演艺术。
     
     8. 不要当一个女人或少数分子。
      女性或少数分子即使选择了最赚钱的专业,还是没有男性挣钱多。举例来说,拥有化学工程学位的女性,平均收入比拥有相同学位的男性少2万美元。虽然我觉得这工资歧视有些离谱了,但是我一点都不觉得奇怪。

奇客罗方公众号 奇客罗方小程序 奇客罗方客服

网站由ITGeeker技术奇客开发并管理;隶属于GeekerCloud奇客罗方智能科技
Site designed and developed by ITGeeker which is a sub-website of GeekerCloud
网站地图 XML | 沪ICP备2021031434号-3