您的位置:首页 > 职场人生

来自百度的面试总结

2017-10-14 15:24 381 查看

百度面试机会难得,如果你有,请尽自己最大努力抓住,不然别怪人家不给你机会,姐只能帮你到这儿了。。。

1、三列布局,两边宽度固定,中间宽度自适应(假设是200px)

这道题博主给出了四种办法,回来自测了一下也都是可行的。但是面试官一直在追问还有吗?如果你还有更优的方法,欢迎留言。

<div id = "left">我是左边</div>
<div id = "right">我是右边</div>
<div id = "center">我是中间</div>

1)两边绝对定位,左边left:0,右边right:0,中间margin左右为200px;

#left,#right{width: 200px;height: 200px; background-color: #ffe6b8;position: absolute;}
#left{left:0px;}
#right{right: 0px;}
#center{margin:2px 200px ;background-color: #eee;height: 200px; }

问题,中间div和两侧div有空隙,是因为默认body有margin,样式初始化body{margin:0}即可;当屏幕小于200px时会出现压缩。

2)利用float,左侧float:left;右侧float:right;定宽,中间用margin。

#left,#right{ width: 200px;height: 200px; background-color: #ffe6b8 }
#left{float: left;}
#right{float: right;}
#center{margin: 0 200px;height: 200px; background-color: #a0b3d6}

注意:center一定要放在 最下面。

3)第三种方法网上又叫"圣杯布局",原理是margin负值法。需要在center元素外部包含一个div。wrap,left ,right 都要float:left;wrap要设置宽度,并且这个宽度要和left块的margin负值进行配合。

<div id = "wrap">
<div id = "center">我是中间</div>
</div>
<div id = "left">我是左面</div>
<div id = "right">我是右面</div>

#wrap{ width: 100%;height: 200px; background-color: #fff;float: left;}
#wrap #center{ margin:0 200px; height: 200px;background-color: #ffe6b8; }
#left,#right{ float: left;width: 200px;height: 200px;background-color: darkorange }
#left {margin-left: -100%; background-color: lightpink}
#right{margin-left: -200px;}

注意:center要写在最前面。

4)最后可以采用css3新特性,display:flex;感觉这真的是一个很牛的属性。它的出现也正是为了解决多列布局的问题。 

<div id = "box">
<div id = "left">我是左面</div>
<div id = "center">我是中间</div>
<div id = "right">我是右面</div>
</div>
body{ margin: 0;padding: 0;}
#box{width:100%;display: flex; height: 400px;}
#left,#right{width: 200px;height: 400px; background-color: blue}
#center{ flex:1; height: 400px; background-color: red}

注意:center一定要放中间。flex是所占的比例,如果left,right 也加上flex:1;则三列等分。

2、清除浮动的方法

1)添加新的元素 应用 clear:both;

2)  父级div定义 overflow: auto;

3)  伪元素:after 方法(注意:作用于浮动元素的父亲);

#content :after {clear:both;content:'  ';display:block;width: 0;height: 0;visibility:hidden;}

3、事件委托

利用了冒泡的原理,从点击的元素开始,递归方式的向父元素传播事件,这样做的好处是对于大量要处理的元素,不必为每个元素都绑定事件,只需要在他们的父元素上绑定一次即可,提高性能。还有一个好处就是可以处理动态插入dom中的元素,直接绑定的方式是不行的。

4、如何防止xss攻击/sql注入

 1)HttpOnly:JavaEE给Cookie添加HttpOnly的代码:

response.setHeader("Set-Cookie","cookiename=value; Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly");

2) 输入检查,对客户输入的信息进行校验检测。

3)编码转义:对于(&、<、>、"、'、/)这类字符,进行编码转义。

还有一些算法的问题,下一篇统一归类写算法好了。

5、怎么让一个div 水平居中 

 父级text-align:center;该div margin:0 auto;即可。

body{ text-align:center;border:1px solid red;}
.div{ margin:0 auto; width:400px; height:100px; border:1px solid #000}

6、怎么让一个div 水平垂直居中

http://www.cnblogs.com/dushao/p/5999239.html 介绍的很详细。

 

7、深度克隆

 

  

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: