WebStorage诞生是为了克服由cookie带来的一些限制,对于一些仅需要在客户端上存储操作的数据,对于WebStorage来说,操作更方便,存储量更大,并且不必每次都向服务端发送数据。 两种storage:localStorage和sessionStorage,二者以键值对形式存取数据,在浏览器中,二者存在于window对象里。localStorage没有过期时间,需要手动清除。sessionStorage的生命周期是在浏览器关闭之前。 js操作: 保存数据:Storage.setItem(‘key’, ‘value’) 读取数据:Storage.getItem(‘key’) 删除数据:Storage.removeItem(‘key’) 清空数据:Storage.clear() 注意存取数据时,key和value均为字符串,存储数据时需要将value字符串化,获取数据时需要将value格式化
-moz- 代表firefox浏览器私有属性
-ms- 代表ie浏览器私有属性
-webkit- 代表safari、chrome私有属性
-o- 代表Opera
边框 border-radius:1-4 length|%指定边框圆角(如何单独指定一块的圆角?) border-image:指定边框图片 box-shadow: h-shadow v-shadow blur spread color inset; 指定元素的投影
背景 background-size: length|percentage|cover|contain; 指定背景图像的大小
文本效果 text-shadow: h-shadow v-shadow blur color; 指定文本的阴影 text-overflow: 指定文本溢出部分以什么内容显示 word-wrap:normal|break-word;允许长单词或 URL 地址换行到下一行 word-break:normal|break-all|keep-all; 指定非CJK脚本的断行规则
字体 @font-face规则:指定自定义字体模块,通过font-family来引入自定义字体
@font-face{ font-family:myFont; /* 指定自定义字体模块名称 */ src:url('Menlo-Regular.ttf'); /* 指定自定义字体模块加载字体的路径 */ font-stretch:normal; /* 指定自定义字体模块字体拉伸情况 */ font-weight:bold; /* 指定自定义字体模块字体粗细 */ font-style:normal; /* 指定自定义字体模块字体风格 */ } *{ margin:0; padding:0; text-decoration:none; font-family:myFont, "幼圆"; }渐变(gradients) linear-gradient(direction, color-stop1, color-stop2, ...) linear-gradient(angle, color-stop1, color-stop2) direction:to + direction, color可以是rgb,rgba,hex,colorName
radial-gradient(shape, start-color, ..., last-color) shape 参数定义了形状 ellipse | circle,默认ellipse
转换(transform)
2D转换: transform:function function参数: translate(x, y)方法:从当前位置从左移动x,从顶部移动(平移) rotate(angle)方法:angle > 0顺时针旋转,angle < 0逆时针旋转(旋转) scale(w, h)方法:宽变为原来的w倍,高变为原来的h倍(缩放) skew(angle1, [,angle2]) 方法:元素在X轴和Y轴上倾斜angle2和angle1(倾斜) matrix()方法:合并上述所有方法
3D转换: transform:基于平面的变换方法中,拓展出三个维度的变换方法 transform-origin:允许你改变被转换元素的位置。 transform-style:规定被嵌套元素如何在 3D 空间中显示。 perspective:规定 3D 元素的透视效果。 perspective-origin:规定 3D 元素的底部位置。 backface-visibility:定义元素在不面对屏幕时是否可见。 下面是一个3D几何体的设计:
<style type="text/css"> .side { font-size: 20px; font-weight: bold; height: 100px; line-height: 100px; color: #fff; position: absolute; text-align: center; text-shadow: 0 -1px 0 rgba(0,0,0,0.2); text-transform: uppercase; width: 100px; } .top { background: red; -webkit-transform: rotate(-45deg) skew(15deg, 15deg); -moz-transform: rotate(-45deg) skew(15deg, 15deg); -ms-transform: rotate(-45deg) skew(15deg, 15deg); -o-transform: rotate(-45deg) skew(15deg, 15deg); transform: rotate(-45deg) skew(15deg, 15deg); } .left { background: blue; -webkit-transform: rotate(15deg) skew(15deg, 15deg) translate(-50%, 100%); -moz-transform: rotate(15deg) skew(15deg, 15deg) translate(-50%, 100%); -ms-transform: rotate(15deg) skew(15deg, 15deg) translate(-50%, 100%); -o-transform: rotate(15deg) skew(15deg, 15deg) translate(-50%, 100%); transform: rotate(15deg) skew(15deg, 15deg) translate(-50%, 100%); } .right { background: green; -webkit-transform: rotate(-15deg) skew(-15deg, -15deg) translate(50%, 100%); -moz-transform: rotate(-15deg) skew(-15deg, -15deg) translate(50%, 100%); -ms-transform: rotate(-15deg) skew(-15deg, -15deg) translate(50%, 100%); -o-transform: rotate(-15deg) skew(-15deg, -15deg) translate(50%, 100%); transform: rotate(-15deg) skew(-15deg, -15deg) translate(50%, 100%); } </style> <div class="side top">Top</div> <div class="side left">Left</div> <div class="side right">Right</div> 过渡(transition) transition: property duration timing-function delay; property:指定CSS属性的名称,transition作用的样式,可单独指定属性transition-property duration: 指定过渡时间(s或ms),可单独指定属性transition-duration timing-function:指定过渡效果的速度,常用属性值:linear(速度不变),ease(速度先增加再减小),可单独指定属性transition-timing-function delay:指定样式定义后过渡开始时间(s或ms),可单独指定属性transition-delay什么是媒体查询 媒体查询是向不同设备提供不同样式的一种方式,它为每种类型的用户提供了最佳的体验。
引入方式 link标签引入: <link rel="stylesheet" media="mediatype and|not|only (expressions)" href="print.css"> css样式表内直接引入:
@media not|only mediatype and (expressions) { /* css code */ }mediatype媒体类型 all:用于所有多媒体类型设备 print:用于打印机 screen:用于电脑、手机、平板等 speech:用于屏幕阅读器
expressions 不同的expression之间用and链接
@media screen and (max-width: 1200px) and (min-width: 520px) { div{ width:300px; } }