16

1.css选择器有哪些,优先级如何计算

  • 类别选择器、ID选择器、标签选择器、通用选择(*)、后代选择器、伪类选择器
  • !important>行内样式>ID选择器>类选择器>标签>通配符>继承>浏览器默认属性
  • 同一级别中后写的会覆盖先写的样式。
子选择器和后代选择器的区别
子选择器是选择元素的直接后代,即作用于第一个后代;后代选择器则可作用于孙子代、曾孙子代等。
后代选择器通过空格来进行选择,而子选择器是通过“>”进行选择。

2.display: block, inline, inline-block的区别

行内元素:a,span,img,input,select,strong,em,b(标记性元素)
块元素:div,p,ul,li,ol,dd,dt,dl,h1-h6
空元素:hr,br,input,img,link,meta
  • display:block将元素显示为块级元素,可以设置元素的宽高,每一个块级元素都是从新的一行开始(带换行符)。
  • display : inline将元素显示为行内元素,高度,行高以及底边距不可进行设置,高度就是内容文字或者图片的宽度,不可以改变。多个相邻的行内元素排在同一行里。(不带换行符)
  • display:inline-block将元素显示为行内块状元素,设置该属性后,其他的行内块级元素会排列在同一行。既有block的宽度高度特性,又有inline的同行特性。

3.用纯css实现底边为10px的三角形

position: absolute;
width: 0px;
border-bottom: 5px solid red;
border-left: 5px solid transparent;
border-right:  5px solid transparent

4.position值有哪些,分别相对于那个定位

  • absolute:生成绝对定位元素,相对于值不为static的第一个父元素进行定位
  • fixed:生成绝对定位,相对于浏览器窗口进行定位
  • relative:生成相对定位元素,相对于其正常位置进行定位
  • static:没有定位,元素出现在正常的流中(忽略偏移声明:top、left、right、bottom、z-index)
  • inherit:从父元素继承position属性的值

5.用js实现千分位分割(每3位用,隔开)

/* 方式一 */
function formatNumber(num) {
    let array = num.toString().split('');
    let length = array.length-1;
    while(length >= 3){
        array.splice(length - 2, 0, ',');
        length = length -3;
    }
    let b = array.join('');
    return b;
}

/* 方式二 */
function formatNumber(num) {
    /* 使用正则表达式,将数字转化为字符串后,全局匹配,
     * 看是否符合断言(?=(?:\d{3})+$)部分
     * 遇到数字并且该数字后跟着连续的三位数字(可以出现多次),
     * 若符合,则在该数字('$1')后加入逗号,替换的时候忽略(?:)这连续的三位数
     */
    let array = num.indexOf('.') !== -1 ?
        num.toLocaleString() : num.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,');
}

6.js用typeof能获得哪些类型

  • undefined——这个值未定义
  • boolean——这个值是布尔值
  • string——这个值是字符串
  • number——这个值是数值
  • object——这个值是对象或null
  • function——这个值是函数

7.用js创建ajax的过程

  • 创建XMLHttpRequest对象,也就是创建一个异步调用对象
  • 创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息
  • 设置响应HTTP请求状态变化的函数
  • 发送HTTP请求
  • 获取异步调用返回的数据
  • 使用JavaScript和DOM实现局部刷新
let xmlHttp = null;
if(window.XMLHttpRequest) {
    /* 除IE5、IE6浏览器 */
    xmlHttp = new XMLHttpRequest();
} else {
    /* 早期的IE5、IE6浏览器 参数是规定的 */
    xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); 
}
/* open请求方式,参数一:表示以什么方式(POST、GET);
 * 参数二:表示服务器的地址;参数三:是否异步,默认是true,false表示同步 */
xmlHttp.open('GET', '地址', true);
/* 如果以post方式请求,必须要添加 */
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.send();
xmlHttp.onreadystatechange = function() {
    if(xmlHttp.readyState === 4 && xmlHttp.status === 200) {
        
    }
};

小小蚊子
5.1k 声望285 粉丝

不努力,就不知道前面有多精彩