前端面试题之前端基础(2)

128 阅读2分钟

1、css字体大小设置 em rem px

    px(绝对长度单位)
    
    em(相对长度单位)
    使用级联的计算方式,依赖于父元素的字体大小
    
    rem(相对长度单位)
    相对于根元素
    

2、标准模型和怪异模型的区别

标准盒模型:盒子总宽度/高度 =width/height + padding + border + margin。( 即 width/height 只是 内容高度,不包含 paddingborder 值 )
IE盒子模型:盒子总宽度/高度 =width/height + margin = (内容区宽度/高度 + padding + border) + margin。( 即 width/height 包含了 paddingborder 值 )

3、BFC:块级格式化上下文

   BFC基本概念:BFC是CSS布局的一个概念,是一块独立的渲染区域,是一个环境,里面的元素不会影响到外部的元素 。父子元素和兄弟元素边距重叠,重叠原则取最大值。空元素的边距重叠是取marginpadding 的最大值。
   

4、CSS实现一个等腰三角形

主要是通过把宽高设置成0,边框宽度设置宽一些,设置其中三个边透明,只留一个边显示

等边三角形是特殊的等腰三角形,它的三条边都相等,顶角为60度,而高是边长的3^(1/2)/2倍,约等于0.866……假设底为160px,则高约为138.56px,因此要做边长为160px的等边三角形,可以这么做:

   
<html>
<head>
    <meta charset="utf-8" />
    <title>测试</title>
    <style type="text/css">
        div {
             width:0px;height:0px;margin:100px auto;
             border-left:80px solid transparent; 
             border-right:80px solid transparent; 
             border-bottom:138.56px solid #A962CE; /*--三角形的高--*/
        }
    </style>
</head>
<body>
    <div>
    </div>
</body>
</html>

等边三角形
.triangle{
    width: 0px;
    height: 0px;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;;
    border-top: 17.32px solid transparent;
    border-bottom: 17.32px solid red; 
}

5、模块化

CommonJS规范加载模块是同步的,只有加载完成,才能执行后面的操作。
CommonJS规范中的moduleexportsrequire

6、获取当前页面的url

1window.location.href(设置或获取整个url为字符串)

2window.location.protocol(设置或获取协议部分)//返回:http:

3window.location.host(设置或获取url的主机部分)//x.xxx.com

4window.location.port(设置或获取url关联的端口号码)//空或者80

5window.location.pathname //文件地址

6window.location.search //问号后面的部分

7window.location.hash //井号后面的部分

7、字符串中的单词逆序输出(手写)

 //1
 function strReverse(str) {
     return str.split("").reverse().join("") 
  }
  
 //2
 function strReverse(str) {
    var i=str.length;
    var nstr = ""; 
    i=i-1; 
    for (var x = i; x >=0; x--) { 
            nstr+=str.charAt(x)
    }
    return nstr
  }
  //3
  function strReverse(str) {
    if(str.length == 0)return null; 
    var i = str.length; 
    var dstr = ""; 
    while(--i >= 0) 
    { 
        dstr += str.charAt(i);  
    } 
    return dstr; 
}

8、清除浮动的几种方式

选择器{clear:属性值;}

 末尾标签法
   <div style="clear:both"></div>
   .clear { clear:both }
    <div class="clear"></div>
    .clear{ clear:both }
     <br class="clear" />    
     <!--也可以使用br等别的块级元素来清除浮动-->

   给父级添加overflow样式方法
   overflow:hidden. 
    
    
   伪元素
   .clearfix:after{
    content:".";  /*尽量不要为空,一般写一个点*/
    height:0;     /*盒子高度为0,看不见*/
    display:block;    /*插入伪元素是行内元素,要转化为块级元素*/
    visibility:hidden;      /*content有内容,将元素隐藏*/
    clear:both;  
    }

    .clearfix {
        *zoom: 1;   /*  *只有IE6,7识别 */
    }