前端css——小总结

css

1.css常用布局

为盒模型div+css、其中需要注意的IE的怪异盒模型,通常用box-sizing解决。传统盒模型布局方式中我们可以细分为文档流布局、浮动布局、定位布局。在ie10+中我们可以使用flex布局,最为核心的容器和轴的概念。二维布局中,我们可以使用Grid布局。对于三栏布局,除了浮动实现方式,还有双飞翼布局和圣杯布局(上一篇文章双飞翼布局和圣杯布局有说明)。其实双飞翼布局就是对圣杯布局的bug修复,一种改造升级

2.了解BFC么?

BFC(block formatting context)即为块级格式化上下文。

BFC的作用与特点:

不和浮动元素重叠,清除外部浮动,阻止浮动元素覆盖。

如何产生BFC,当一个HTML元素满足下面条件的任何一点,都可以产生Block Formatting Context:

a、float的值不为none
b、overflow的值不为visible
c、display的值为table-cell, table-caption, inline-block中的任何一个
d、position的值不为relative和static

CSS3触发BFC方式则可以简单描述为:在元素定位非static,relative的情况下触发,float也是一种定位方式。

3.居中方面问题

a.利用text-align:center实现水平居中:

left:居左对齐 
right:右对齐 
center:居中 
start:如果方向是左向右(ltf)的话=left end:同上 
justify:两端对齐,最后一行无效 
justify-all:强制最后一行两端对齐 
match-parent:和inherit类似,区别在于start和end的值根据父元素的direction确定,并被替换为恰当的left或者right。

b.flex布局的justify-content:center

c.margin:auto这个属性的意思是,父元素-子元素/2的外边距。所以如果给定了父子宽高的话话,会很容易居中。

d.position:absolute

  <style>
        .father {
            height: 100px;
            background-color: #ccc;
            position: relative;
            
        }
        .son {
            height: 50px;
            width: 50px;
            background-color: blue;
            margin: auto;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            position: absolute;
                    
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="son">
        </div>
    </div>
</body>

e.vertical-align和line-height

.father {
    height: 100px;
    border: 1px solid #ccc;
    line-height: 100px;
}
.father {
    height: 100px;
    border: 1px solid #ccc;
}
​
.father span{
    vertical-align: middle;
    background-color: red;
}

 f.flexbox

.father {
    height: 100px;
    border: 1px solid #ccc;
    display: flex;
    align-items: center;
}

 4.session、cookie、sessionStorage、localStorage区别

cookie                作为存储在本地的浏览器,容器大小限制在4KB,对于绝大部分开发者来说真的指望不上什么

session               作为存储在服务器,存储在服务器的数据会更加的安全,不容易被窃取。但存储在服务器也有一定的弊端,就是会占用服务器的资源,但是现在服务器已经发展至今,一些session信息还是绰绰有余的

sessionStorage   针对一个session的数据存储(内存方式存储)

localStorage       没有时间限制的数据存储(持久化本地),不会因为你打开新的网站,刷新页面,乃至关闭您的浏览器而消失(移动端开发不可缺少的)

怎样检测浏览器是否支持本地存储?

在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在本地的,后者只是伴随着session,窗口一旦关闭就没了。二者用法完全相同,这里以localStorage为例。只要window.localStorage返回值为true,则浏览器支持本地存储。代码如下:

window.onload = function() {
    if(window.localStorage) {
        alert('支持');
    } else {
        alert('不支持');
    }
}

localStore的API

length唯一的属性,只读,用来获取storage内的键值对数量
key根据index获取storage的键名
getItem根据key获取storage内的对应value
setItem为storage内添加键值对
removeItem根据键名,删除键值对
clear

清空storage对象

window.onload = function() {
    //1、获取本地存储对象
    var ls = window.localStorage;
    //2、往本地存储中存储数据
    ls.setItem("name", "TV");
    //3、获取本地存储的数据个数
    console.log(ls.length);
    //4、获取本地存储中健对应的值
    console.log(ls.getItem("name"));
    //5、遍历本地存储中健值对
    for(var i = 0; i < ls.length; i++) {
        alert("key:" + ls.key(i) + "   value:" + ls.getItem(ls.key(i)));
    }
    //6、清除本地存储中所有的数据
    ls.clear();
    //7、清除本地存储中指定的数据
    ls.removeItem("counts");
}

存储json数据

localStorage和sessionStorage只能存储字符串类型,对于复杂的对象可以使用JSON来处理,可以直接调用JSON.stringify()将其转为字符串,读取出来后调用JSON.parse()将字符串转为json格式。

/**
 * 定义json对象
 */
var stu1 = {
    'name': 'dream',
    'age': 32,
    'password': '123456'
};
/**
 * 把json对象转换成字符串进行存储
 * JSON.stringify() json转换字符串
 */
localStorage.setItem("stu1", JSON.stringify(stu1));
// 存放到sessionStorage中
sessionStorage.setItem("stu1", JSON.stringify(stu1));
/**
 * 读取JSON数据
 * 先把字符串转换成json 在进行取值
 */
var stu = JSON.parse(localStorage.getItem("stu1"));
console.log(stu.name);
// 从session中读取
var stuSession = JSON.parse(sessionStorage.getItem("stu1"));
console.log(stuSession.name);

5.px/em/rem的区别

px    顾名思义就是我们通常说的像素大小;

em和rem都是相对大小,不过em是继承父级元素的字体大小,rem是相对于根元素的大小,这个单位可谓是集相对大小和绝对大小为一身。通过它可以做到只修改根元素即可修改所有字体的大小,又可以避免字体大小逐层复合的连锁反应。当rem相对于浏览器进行缩放,1rem默认为16px

6.animation和transition?

animation:name duration timing-function delay iteration-function direction

transition为过渡动画,这个效果可以在事件中触发,并且圆滑的以动画效果改变css的属性值

7.css编写注意事项

比如0后面不带单位,尽量使用简写、使用子选择器、合理使用id等

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值