来自百度的面试总结
百度面试机会难得,如果你有,请尽自己最大努力抓住,不然别怪人家不给你机会,姐只能帮你到这儿了。。。
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、深度克隆