本人于2021年5月21日“云”参与了该公司(名字不方便透露)的笔试,总体来说是非常常规的题目,下面是题目及答案。
一、填空题
1.目前常用的WEB标准静态页面语言是_xhtml_
2.改变元素的外边距用_margin_,改变元素的内填充用_padding_
3.在Table中,TR是_行_,TD是_单元格_
4.如果给一行两列的表格(table)定义高度样式,在_table_标签中定义最合理、
最能减少代码的臃肿
5.对ul li的样式设成无,应该是用_list-style:none_属性
6.在新窗口打开连接的方法是_target:blank_
7.color:#666666,可缩写为_#666_
8.合理的页面布局中常听过结构与表现分离,那么结构是_内容_,表现是_css_
二、问答题
1.请写出超链接的顺序或者你在初始样式中的连接方法。
(要求默认无下线,鼠标经过又下线)
a {
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
2.当float和margin同时使用时,IE6的双倍边距BUG如何解决?
第一种情况:所有的li都左浮动,但每行只显示两个,这样就会出现li自动换行,如果此时设置li的margin-left,则在IE6下出现的效果是margin-left为设置的值得2倍。
这是因为在IE6下如果有浮动且换行了,那么第一个浮动元素的margin-left就会变成双倍。
第二种情况:如果一个非block的元素,你设置成block显示,则第一个元素margin-left也会出现双倍的问题。
两种情况的解决方法都是是 将li(即第一个元素)的dispaly设置为display:inline; 或者不是用li的margin-left而是用ul的padding-left
3.为什么无法定义1px左右高度的容器?
IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,例如:overflow:hidden / zoom:0.08 / line-height:1px
4.请写出XHTML和CSS如何注释?
xhtml:<!- content -->
css:/* content */
5.请以缩写方法写出1px直线(实线)灰色(任意灰色代码值),
上面无边框的矩形边框样式。
{
border: 1px solid #333;
border-top: none;
}
6.你熟悉javaScript语言吗?如果table表格的属性中有个id,如果id等于’td1’,
请问那你如何获取第4行第3个单元格对象?
熟悉。
let td1 = document.getElementById("td1");
let tbody = td1.parentNode.parentNode;
let res = tbody.childen[3].childen[2];
console.log(res);
7.如何居中div?如何居中一个浮动元素?如何让绝对定位的div居中?
/* 答案不唯一 */
/*① 不知到宽高*/
margin: auto;
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
border: 1px solid #333;
width: 100px;
height: 100px;
/*知道宽高*/
float: left;
border: 1px solid #333;
width: 100px;
height: 100px;
position: absolute;
top: 50%;
left: 50%;
margin-top:-50px;
margin-left: -50px;
/* ② */width:500px;
height:300px;
float:left;
margin-left:50%;
position:relative;
left:-250px;
/* ③ */margin: 0 auto;
left: 0;
rigth: 0;
position: absolute;
8.用js实现,找出字符串中出现次数最多的哪一个字符?
let str = "tttgsgsssgweggwegaqpp";
let obj = {};
for(let i=0;i<str.length;i++) {
// console.log(str.charAt(i));
let char = str.charAt(i);
if(obj[char]) {
obj[char]++;
}else {
obj[char] = 1;
}
}
console.log(obj);
let max = 0;
let maxChar = null;
for(let key in obj) {
if(max < obj[key]) {
max = obj[key];
maxChar = key;
}
}
console.log("maxChar:"+maxChar);
console.log("max:"+max);
9.用js实现,请将数组的日期从前到后排序。
//var myDate = [‘2021-4-19’,‘2021-4-29’,‘2012-4-2’,‘2012-4-5’];
//输出:[‘2012-4-2’,‘2012-4-5’,‘2021-4-19’,‘2021-4-29’]
var myDate = ['2021-4-19','2021-4-29','2012-4-2','2012-4-5'];
console.log(myDate)
myDate.sort(function(a,b) {
let A = new Date(a).getTime();
let B = new Date(b).getTime();
if(A>B) {
return 1;
}else {
return -1;
}
});
console.log(myDate);
总结:笔试内容仍有我平常从未接触的内容,如该笔试题中的ie6问题;
js代码仍不够熟悉。
解决方案:登录到牛客网,大量的查看面经及笔试题,熟悉题型。