前端笔记

一.css

1.盒模型(IE盒模型,W3C盒模型)

盒模型的构成(content【内容】,padding【填充】,border【边框】,margin【边界】),IE盒模型的content把padding和border包含在内。

2.css选择符

id选择器(#),类选择器(.),标签选择器(div ul li span等),相邻选择器(div + p),子选择器(ul>li),后代选择器(div a)

3.rem(多数浏览器默认,1rem = 16px)

3.div水平居中(定宽,margin左右设为auto)

div{

    width:500px;

    margin:0 auto;

}

4.div水平垂直居中

(1)绝对定位(1.margin,2.transform)

div {
position: absolute;
width: 300px;
height: 300px;
top: 50%;
left: 50%;
/*margin:-150px 0 0 -150px;*/
transform: translate(-50%, -50%);
}

(2)flex布局(需考虑兼容性问题)

    .container {
width: 300px;
height: 300px;
border: 1px solid #000000;
display: flex;
align-items: center; //垂直居中
justify-content: center; //水平居中
}

.container div {
width: 100px;
height: 100px;
background-color: #000;

    }

5.postion的属性

    absolute(绝对定位,相对于第一个非static的父元素定位)

    relative(相对定位,相对于正常位置定位)

    fixed(绝对定位,相对于浏览器窗口定位)

    static(默认,无定位)

    inherit(继承父元素的position)

6.display的属性值

    block(显示为块级元素 默认宽度为父元素高度,不设置宽度时撑满整行,独占一行,可设置宽高)

    none(此元素不会被显示)

    inline(显示为内联元素 不独占一行,不可设置宽高,内容撑开宽度)

    inline-block(内联块元素,不独占一行,可设置宽高,不设宽度时内容撑开宽度)

    list-item(不设宽度时占一整行,独占一行,可设宽高)

    table(不设宽时内容撑开宽度,独占一行,可设宽高)

   table-cell(不设宽高时,内容撑开宽度,可设宽高,不独占一行,垂直对齐)

7.css3新属性

    css选择器(:first-child,last-child, nth-child)

    圆角(border-radius)

    阴影(shadow)

    文字效果(text-shadow)

    旋转(transform)

8.常见的浏览器兼容性问题

    png24图片在ie6下有背景(改用png8)

    ie6双边距  块元素设置float,且有横向margin是,ie6显示的margin比设置的大(给块元素添加_display:inline[_display 只有ie6识别])

    浏览器默认margin,padding不同(设置margin:0;padding:0)

9.清除浮动

    .clearfix:before,

    .clearfix:after {
    content: " ";
    display: table;
    }
    .clearfix:after {
clear: both;
    }
    .clearfix {
zoom: 1;

    }

10.媒体查询(media-query)

@media screen and (max-width: 300px) {}

11.多列等高布局

.container {
display: flex;
}

.left,
.right {
flex: 1;
}

二.js

1.解决ajax缓存

【1】在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。
【2】在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。
【3】在URL后面加上一个随机数: "fresh=" + Math.random();。
【4】在URL后面加上时间戳:"nowtime=" + new Date().getTime();。

【5】如果是使用jQuery,直接这样就可以了 $.ajaxSetup({cache:false})。这样页面的所有ajax都会执行这条语句就是不需要保存缓存记录。

2.解决跨域问题

【1】porxy代理

【2】CORS使用方法:一般需要后端人员在处理请求数据的时候,添加允许跨域的相关操作。如下

res.writeHead(200, {
"Content-Type": "text/html; charset=UTF-8",
"Access-Control-Allow-Origin": 'http://localhost',
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS',
'Access-Control-Allow-Headers': 'X-Requested-With, Content-Type'

});

【3】jsonp

js方式

function jsonPadding(response){
console.log(response);
}
window.onload = function(){
var script = document.createElement('script');
script.src = 'https://api.douban.com/v2/book/search?q=javascript&count=1&callback=jsonPadding';

document.body.insertBefore(script,document.body.firstChild);

}

jquery方式

$.ajax({

type: "get",

        url: "https://api.douban.com/v2/book/search",

        async: true,

dataType: 'jsonp',

jsonp: 'callback',

        data: {

q: "javascript",

count: 1

},


jsonpCallback: 'jsonPadding',
success: function(data) {
console.log(data);
}
});

3.js实现千位符

function commafy(num) {
    return num && num
        .toString()
        .replace(/(\d)(?=(\d{3})+\.)/g, function($0, $1) {
            return $1 + ",";
        });

}

4.获取url参数

function getQueryString(){
var shref = window.location.href;
var arrHref = shref.split('?');
if(arrHref[0] == shref){
return '';
}
var qObj = {};
var qArr = arrHref[1].split('&');
for(var i = 0;i<qArr.length;i++){
arrr = qArr[i].split('=');
qObj[arrr[0]] = arrr[1];
}
return qObj;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值