前端总结·基础篇·CSS(二)视觉

前端总结系列

  • 前端总结·基础篇·CSS(一)布局
  • 前端总结·基础篇·CSS(二)视觉
  • 前端总结·基础篇·CSS(三)补充
  • 前端总结·基础篇·JS(一)原型、原型链、构造函数和字符串(String)
  • 前端总结·基础篇·JS(二)数组深拷贝、去重以及字符串反序和数组(Array)
  • 前端总结·基础篇·JS(三)arguments、callee、call、apply、bind及函数封装和构造函数
  • 前端总结·基础篇·JS(四)异步请求及跨域方案
  • 前端总结·工具篇·管理(一)常用模块化方案

目录

一、动画(animation)(IE10 )(CSS3)1.1 定义动画1.2 引用动画1.3 多个动画1.4 更多属性
二、过渡(transition)(IE10 )(CSS3)2.1 定义首尾2.2 应用过渡2.3 多个过渡2.4 更多属性
三、转换(transform)(IE10 ,-ms-,-webkit-,-moz-,-o-)(CSS3)3.1 2D转换(-ms- for IE9)3.2 3D转换(not opera)
四、圆角、阴影和透明的实践(CSS3)4.1 圆角(border-radius)(IE9 )4.2 阴影(shadow)(box-shadow IE9  text-shadow IE10 )4.3 透明度(opacity)
五、可缩写属性5.1 背景(background)5.2 字体(font)5.3 边框(border)(border-image IE11 )5.4 填充和边距(padding/margin)
六、滤镜(filter)(notIE,-webkit-)
七、补充7.1 自定义鼠标指针(cursor)7.2 Canvas7.3 SVG7.4 WebGL

一、动画(animation)(IE10 ,-webkit-,-moz,-o-)(CSS3)

动画抵达的过程是连续的,还原的过程是突发的。放完了就还原,就是这么任性。

1.1 定义动画

定义动画可以用from-to的两个定点形式,也可用百分比(0%、50%、100%)的多个定点形式。


/* 定义动画 */@keyframes toRight {from {left: 0px;top: 0px;background-color: red;}to {left: 130px;top: 0px;background-color: blue;}
}

1.2 引用动画

我们先定义一个div块,class为animation。然后对这个div块引用动画效果。


/* HTML部分 */<div class="animation"></div>/* 定义div块的默认样式 */.animation {position: absolute;width: 100px;height: 100px;background-color: red;
}/* 引用动画 当鼠标悬于div块上方时触发动画效果 */.animation:hover {animation: toRight 5s;
}

1.3 多个动画

设置多个帧(@keyframes),使用不同的名字。在引用动画的时候不同的帧用逗号隔开。


animation: toRight 5s,toTop 5s;

1.4 更多属性

下面是一个完整的属性应用和属性说明。


animation:walk 2s ease 1s 2 normal running forwards;
animation-name:keyframename/none;
animation-duration:time;
animation-timing-function:linear/ease/ease-in/ease-out/ease-in-out/cubic-
bezier(n,n,n,n);
animation-delay:time;
animation-iteration-count:n/infinite;
animation-direction:normal/alternate;
animation-play-state:paused/running;
animation-fill-mode:none/forwards/backwards/both;

二、过渡(transition)(IE10 ,-webkit-,-moz,-o-)(CSS3)

过渡一直是连续的,无论是抵达的过程,还是还原的过程。

2.1 定义首尾


/* HTML */<div class="transition"></div>/* 定义首 默认样式 */.transition {width: 100px;height: 100px;background-color: red;
}/* 定义尾 目标样式 */.transition:hover {width: 200px;
}

2.2 应用过渡


.transition {width: 100px;height: 100px;background-color: red;transition: width 2s;  /* 只需添加这一条 */
}

2.3 多个过渡

应用多个过渡的时候用逗号隔开,或者直接设置应用过渡效果的属性为all。


transition: width 5s,height 5s;或transition: all 5s;

2.4 更多属性


transition:width 2s ease 1s;
transition-property:none/all/property;
transition-duration:time;
transition-timing-function:linear/ease/ease-in/ease-out/ease-in-out/cubic-
bezier(n,n,n,n);
transition-delay:time;

三、转换(transform)(IE10 ,-ms-,-webkit-,-moz-,-o-)(CSS3)

3.1 2D转换(-ms- for IE9)

以下没有演示矩阵效果,更多请见张鑫旭。下图的效果依次是缩放、旋转、斜拉和移动,参数和下方的参数保持一致,展示的过程是用animation做的。


缩放 transform:scale(2,2);  // 两个参数分别是宽和高缩放的比例
旋转 transform:rotate(180deg);
斜拉 transform:skew(30deg,30deg);
移动 transform:translate(50px,-50px);
矩阵 transform:matrix(n,n,n,n,n,n);  // 3*3矩阵 6个参数

3.2 3D转换(not opera)


缩放:transform:scale(x,y)/scaleX(x)/scaleY(y)/scaleZ(z)/scale3d(x,y,z)
旋转:transform:rotate(angle)/rotateX(angle)/rotateY(angle)/rotateZ(angle)/rotate3d(x,y,zangle)
斜拉:transform:skewX(angle)/skewY(angle)/skew(x-angle,y-angle)
移动:transform:translate(x,y)/translateX(x)/translateY(y)/translate3d(x,y,z)
透视:perspective(100) 默认单位是px,表示观察者离物体的距离(-webkit-)
矩阵:transform:matrix3d(); 4*4矩阵 16个参数
其他:transform:none;属性
transform-origin:x-axis/y-axis/z-axis;
transform-style:flat/preserve-3d;(not IE)
perspective:number/none;
perspective-origin:x-axis/y-axis;
backface-visibility:visibility/hidden;

四、圆角、阴影和透明的实践(CSS3)

4.1 圆角(border-radius)(IE9 )

下面是用过渡和圆角制作的一个按钮。


/* HTML */<a href="#" class="border-radius">HELLO</a>/* CSS */.border-radius {border: 1px solid red;border-radius: 10px 0 10px 0;  // 设置圆角(四个值分别为top-left、top-right、bottom-right和bottom-left)width: 60px;padding: 10px;text-align: center;transition: all .3s ease-in-out;  // 设置过渡效果text-decoration: none;  // 去除链接下划线
}
.border-radius:hover {background-color: red;color: white;
}

4.2 阴影(shadow)(box-shadow IE9 text-shadow IE10 )

给按钮加上盒阴影和文本阴影。


/* HTML */<a href="#" class="border-radius">HELLO</a>/* CSS */.border-radius {border: 1px solid red;border-radius: 10px 0 10px 0;width: 60px;padding: 10px;text-align: center;transition: all .3s ease-in-out;text-decoration: none;
}
.border-radius:hover {background-color: red;color: white;box-shadow: -10px -10px 5px gray;  // 盒子阴影(四个值分别是x轴、y轴、模糊距离和颜色)text-shadow: -5px -5px 3px black;  // 文本阴影
}

4.3 透明度(opacity)

再加上透明度。默认透明度为0.5,悬浮在按钮上后变为1.0.


/* HTML */<a href="#" class="border-radius">HELLO</a>/* CSS */.border-radius {border: 1px solid red;border-radius: 10px 0 10px 0;width: 60px;padding: 10px;text-align: center;transition: all .3s ease-in-out;text-decoration: none;opacity: .5;  // 设置默认透明度为0.5
}
.border-radius:hover {background-color: red;color: white;box-shadow: -10px -10px 5px gray;text-shadow: -5px -5px 3px black;opacity: 1;  // 设置按钮悬浮之后的透明度为1
}/* 除了opacity,rgba同样具有透明度属性 */

五、可缩写属性

5.1 背景(background)

制作精灵图(sprite)可以用background-color:url() -20px -20px;,然后将元素的width和height设置成小图的大小。


background:red url(laughcry.gif) repeat top left;
background-color:color/transparent;
background-image:url()/none/inherit;
background-repeat:repeat/repeat-x/repeat-y/no-repeat/inherit;
background-position:left top/center top/right top...;background-attachment:scroll/fixed/inherit;
background-size:length/percentage/cover/contain;  // cover为覆盖最小定位区域,contain为最大
background-clip:border-box/padding-box/content-box;  // 指定定位区域
background-origin:border-box/padding-box/content-box;  // 指定绘画区域CSS3多背景:(-image:url(bg.jpg),url(dog.jpg))定位源(-origin:content-box/padding-box/border-box)显示区域(-clip:content-box;)和尺寸(-size(80px 60px))

渐变(gradient)(IE10 ,-webkit-,-o-,-moz-)(CSS3)

线性渐变(linear-gradient)


* background:linear-gradient(red,blue,green)
* 默认为从上到下渐变,to right(前缀写法中皆为left)可以设置从左到右渐变,to bottom right则对角线渐变(前缀写法中webkit为left top),180deg则可以设置按照角度渐变;
* background:linear-gradient(to right,red 10%,blue 50%,green 70%)
* background:linear-gradient(rgba(220,220,220,0),rgba(220,220,220,1))

径向渐变(radial-gradient)


* background:radial-gradient(red,blue,green)
* 颜色值前面可以设置形状elipse/circle(椭圆/圆)默认为elipse
* background:radial-gradient(60% 55%,closest-side,red,blue,green)
* 以上的参数还有farthest-side,closest-corner,farthest-corner,

5.2 字体(font)

文字溢出时可以使用word-break:break-all;进行字母级截断,也可以使用word-wrap:break-word;进行单词级的截断。


font:italic bold 1.2em/1.2 Arial,sans-serif;
font-style:normal/italic/oblique/inherit;
font-weight:normal/bold/bolder/lighter/100...900 400为normal 700为bold/inherit;
font-size:xx-small/x-small/small/medium/large/x-large/xx-large/smaller/larger/length/%/inherit;
line-height:normal/number/length/%/inherit;
font-family:family-name/generic-family;CSS3@font-face用来设置自定义字体。留坑,以后再来好好总结一下。以下代码直接粘贴自[菜鸟教程](http://www.runoob.com/try/try.php?filename=trycss3_font-face_rule)。@font-face
{font-family: myFirstFont;src: url('Sansation_Light.ttf'),url('Sansation_Light.eot'); /* IE9 */
}div
{font-family:myFirstFont;
}

5.3 边框(border)(border-image IE11 )

outline和border类似,但是不占用布局空间。


border:1px solid red;  // 值分别为border-width、border-style和border-color
border-style:none/hidden/dotted/dashed/solid/double/groove/ridge/inset/outset/inherit;CSS3border-image:url() 30 30 stretch;(round为边框重复,stretch为边框拉伸)

5.4 填充和边距(padding/margin)

垂直方向的margin会合并,水平方向的不会。实际显示的margin是两者中较大的那个。


padding:1px 2px 1px 2px;(top/right/bottom/left)

六、滤镜(filter)(notIE,-webkit-)

以下作为参考手册。


* 透明 filter:opacity(50%);
* 阴影 filter:drop-shadow(10px 10px 5px red);
* 模糊 filter:blur(5px);
* 对比度 filter:contrast(200%);
* 饱和度 filter:saturate(800%);
* 灰度 filter:grayscale(100%);
* 深褐色 filter:sepia(100%);
* 亮度 filter:brightness(200%);
* 色相旋转 filter:hue-rotate(90deg);
* 反转输入 filter:invert(100%);
* 多值空格隔开 filter:filter:opacity(50%) blur(5px);

七、补充

7.1 自定义鼠标指针(cursor)


cursor:pointer/help/wait/text/move/crosshair;

7.2 Canvas

待到总结js的时候,再一并总结。

7.3 SVG

SVG全称为可缩放矢量图像(Scalable Vector Graphics),参考教程有W3School和W3CPlus。成熟的库有D3.js,常用来进行数据可视化。以后学习,留坑。

7.4 WebGL

WebGL全称为网页图像库(Web Graphics Library)。成熟的库有three.js,常用来基于web的3D制作。以后学习,留坑。

总结

本文主要参考W3School,部分来自《CSS设计指南》和平常遇到问题时的一些总结,少部分来自菜鸟教程。GIF制作工具使用的是ScreenToGif 1.4.2。

码这篇文章码了好久啊,部分内容由于懒,就没有完整的写出来。

这是前端总结的第二篇文章,进度还是挺慢的。大概过了5天,才更新到第二篇。那我都在干啥呢?在总结JS啊。当然,只是做了大概的总结,并没有写成很详细的文档。因此,CSS基础篇的文档更新奇慢,接下来要做的事情就是提升更新的速度(保证质量的前提下)。Fighting。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【kindle笔记】之 《浪潮之巅》- 2018-1-

《浪潮之巅》 这本书推荐自最爱的政治课老师。 政治课老师张巍老师。我会一直记得你的。 以这样的身份来到这个学校&#xff0c;他人的质疑&#xff0c;自己的忐忑&#xff0c;老板的不公。犹犹豫豫谨小慎微地前进。 第一次听到这样的话是从您口中&#xff1a; 在座的诸位&…

Secure CRT 自动记录日志log配置

SecureCRT8.0的下载地址下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1i5q09qH 密码&#xff1a;4pa2 配置自动log操作如下&#xff1a; 1.options ---> Session Options 2. 设置log 文件属性 点击 日志 &#xff0c;在选项框中 Log file name中填入路径和…

禁用mysql的sleep函数_MySQL的sleep函数的特殊特现象

MySQL中的系统函数sleep&#xff0c;实际应用的场景不多&#xff0c;一般用来做实验测试&#xff0c;昨天在测试的时候&#xff0c;意外发现sleep函数的一个特殊现象。如果在查询语句中使用sleep函数&#xff0c;那么休眠的时间跟返回的记录有关。如下测试所示&#xff1a;mysq…

amoeba mysql读写分离_Mysql 实现读写分离的详细教程(amoeba)

Mysql 实现读写分离的详细教程(amoeba)发布时间&#xff1a;2018-08-17作者&#xff1a;laosun阅读(2220)继上篇文章&#xff0c;mysql实现主从配置之后的读写分离实现方式&#xff0c;文章地址。amoeba是盛大架构师陈思儒独立完成&#xff0c;除此之外还有很多中间件&#xff…

十道海量数据处理面试题与十个方法大总结

1. 给定a、b两个文件&#xff0c;各存放50亿个url&#xff0c;每个url各占64字节&#xff0c;内存限制是4G&#xff0c;让你找出a、b文件共同的url&#xff1f; 方案1&#xff1a;可以估计每个文件安的大小为50G64320G&#xff0c;远远大于内存限制的4G。所以不可能将其完全加载…

Spring集成文件轮询和测试

我最近实施了一个小项目&#xff0c;在该项目中&#xff0c;我们必须轮询文件夹中的新文件&#xff0c;然后在文件内容上触发服务流。 Spring Integration非常适合此要求&#xff0c;因为它带有一个通道适配器 &#xff0c;该适配器可以扫描文件夹中的新文件&#xff0c;然后通…

Spark参数配置总结

转载于:https://www.cnblogs.com/lz3018/p/8128017.html

eclipse mysql生成实体类_Eclipse实现数据库反向生成实体类(pojo)-------(插件安装和实现步骤的说明)...

一、插件安装1.下载插件&#xff1a;http://jaist.dl.sourceforge.net/sourceforge/jboss/HibernateTools-3.2.4.Beta1-R200810311334.zip2.解压压缩包分别将其中的features和plugins放到Eclipse安装目录下对应的这2个文件里&#xff0c;重启Eclipse使其生效3.随便建个project&…

一些小技巧-重构

用box-shadow制造浮雕效果用box-shadow做简单的背景修饰长页面背景图不够用...... 01 用box-shadow制造浮雕效果 demo示例&#xff1a; src"http://demo.zhangruojun.com/static/demo/demo001/" frameborder"0" width"414" height"650&qu…

VM虚拟机显示不能铺满问题

关于使用虚拟机&#xff08;VMware&#xff09;时桌面显示不能铺满整个窗口时的设置操作&#xff1a; 步骤&#xff1a;虚拟机菜单下的&#xff1a;编辑-->首选项-->显示&#xff08;如下图&#xff09; 可以根据自己需求设置全屏下面的三个选项&#xff0c;确定后如果不…

Weex系列-项目工程

转载于:https://www.cnblogs.com/hacjy/p/8136460.html

MySQL索引效率对比_mysql下普通索引和唯一索引的效率对比

今天在我的虚拟机中布置了环境&#xff0c;测试抓图如下&#xff1a;抓的这几个都是第一次执行的&#xff0c;刷了几次后&#xff0c;取平均值&#xff0c;效率大致相同&#xff0c;而且如果在一个列上同时建唯一索引和普通索引的话&#xff0c;mysql会自动选择唯一索引。谷歌一…

spring以及json,fastjson和jackson

&#xff08;一&#xff09; RestController 以及 RequestBody spring的这两个注解都需要使用对应的 message-converters 实现 pojo到字符串的转换&#xff0c; 需要配置实现了 GenericHttpMessageConverter 接口的实现类GenericHttpMessageConverter 父接口为HttpMessageConve…

turtle 函数 方法_学python第十一节:turtle深入 了解

学python第十一节&#xff1a;深入分析turtleTurtle是一个直观有趣的图形绘制函数。这节课对turtle的以下几点进行补充&#xff1a;在蟒蛇绘制代码中提到过import 库引用保留字的函数&#xff0c;是补充python程序功能的方式&#xff0c;使用2种编写格式&#xff1a; 第一种引用…

intellij idea中解决java.lang.VerifyError: Expecting a stackmap frame at branch target的方法

【实习第三周&#xff0c;被生活逼成了全栈hhhh从开发写到测试】 报错如下&#xff1a; 经过查找各类资料博客&#xff0c;针对不同的情况有不同的解决办法&#xff1a;1. java源代码是用jdk1.6下开发的&#xff0c;后来环境上替换安装了jdk1.7编译运行。运行报错。我的错误不属…

ArrayList使用内存映射文件

介绍 内存中的计算由于负担得起的硬件而开始兴起&#xff0c;大多数数据保留在RAM中以满足延迟和吞吐量的目标&#xff0c;但是将数据保留在RAM中会增加垃圾收集器的开销&#xff0c;尤其是在您不预先分配的情况下。 因此&#xff0c;有效地我们需要一种无垃圾/无垃圾的方法来避…

JVM的内存区域划分(转载)

原文链接&#xff1a; http://www.cnblogs.com/dolphin0520/p/3613043.html JVM的内存区域划分 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段&#xff0c;数据段包括堆、栈以及静态数据区。那么在Java语言当中&#xff0c;内存又是如…

微抖动,繁忙的等待和绑定CPU

性能分析新机器 当我在新机器上工作时&#xff0c;我想了解它的局限性。 在这篇文章中&#xff0c;我将研究机器的抖动以及忙于等待本周末构建的新PC的影响。 机器的规格很有趣&#xff0c;但不是发布目的。 永远不要少&#xff1a; i7-3970X六核&#xff0c;运行频率为4.5 GH…

Python快速搭建HTTP服务器

<wiz_tmp_tag id"wiz-table-range-border" contenteditable"false" style"display: none;"> 来自为知笔记(Wiz)转载于:https://www.cnblogs.com/linux-wang/p/8142848.html

再见了古诺。 你好Drools工作台。

Drools 6.0发生了许多变化。 随着功能和功能的变化&#xff0c;我们对Guvnor github存储库进行了重组&#xff0c;以更好地反映我们的新架构。 历史上&#xff0c;Guvnor一直是Drools的Web应用程序。 它由Drools专用的编辑器&#xff0c;后端存储库和简化的资产管理系统组成。 …