css3能做什么

响应式开发的基础,然后能实现一些酷炫的效果咯。

以下案例纯css3实现,一点都没用js (入门简单,但是水很深)

叮当猫纯用css3做出         http://codepen.io/airen/pen/icFba

       

如果大家感兴趣,大家可以去慕课网上找大漠老师的课学习

边框

1.圆角效果 border-radius:border-radius: 5px 4px 3px 2px; /* 四个半径值分别是左上角、右上角、右下角和左下角,顺时针 */ border-radius: 100%;就是一个圆了。

border-radios:100px/10px  (水平100,垂直10)

2.阴影 box-shadow: X轴偏移量 Y轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式];(阴影模糊半径:只能是正值;阴影扩展半径:可以是正负值)(自带边框

外阴影x和y(正值)出现在右下;内阴影x和y(正值)出现在左上; 

3.为边框应用图片 border-image:

颜色相关

1.颜色之RGBA

语法:color:rgba(R,G,B,A) (A为透明度参数,取值在0~1之间,不可为负值)

2.渐变色彩

文字与字体

1.text-overflow   (clip:剪切;ellipsis:省略标记)

省略号效果:text-overflow:ellipsis; overflow:hidden;white-space:nowrap

2.嵌入字体@font-face

3.文本阴影text-shadow

text-shadow: X-Offset Y-Offset blur color;         x正向右,y正向下;Blur:是指阴影的模糊程度   (text-shadow: 2px 2px 0 red;)

与背景相关的样式

1.background-origin : border-box | padding-box | content-box;背景图片分别是从边框内边距(默认值)内容区域开始显示。背景需要设置no-repeat属性。

2.background-clip:默认值为border-box,其他同上

3.background-size:

background-size: auto | <长度值> | <百分比> | cover | contain

①.长度或百分比就设一个值时,图片等比缩放。

②.cover:顾名思义为覆盖,即将背景图片等比缩放以填满整个容器

③.contain:容纳,即将背景图片等比缩放至某一边紧贴容器边缘为止

4.multiple backgrounds

background:url(http://eg.png) no-repeat left top/200px 55%

CSS3选择器

1.属性选择器:

2.结构性伪类选择器:root (根元素为html)、:not 、:empty、:target、:first-child  、:last-child 、:nth-child(n)  (括号里可以是2n+1、-n+5、even、odd等)、:nth-last-child(n) (同上)

x:first-of-type 、x:nth-of-type(n) (括号里同上)、x:last-of-type、x:nth-last-of-type(n)、only-child (子元素只有唯一)、only-of-type (子元素类型唯一)

:enabled、:disabled

:checked(选择框加点变化示例)、::selection(改变用鼠标选择网页文本的样式)

:read-only(与html中readonly='readonly'配合使用)、:read-write (与“:read-only”选择器相反,主要用来指定当元素处于非只读状态时的样式。)

::before && ::after(作出如下效果图)

拓展:CSS3实现曲边阴影&&翘边阴影

    

曲边阴影                                                                        翘边阴影

曲边阴影方法:把直角阴影写在盒子上,在盒子内部插入两个曲线阴影,通过定位让曲线阴影和直角阴影重合,改变z-index,boarder-radios来达到效果。

翘边阴影方法:直角阴影加上两个阴影

以下为实现代码

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>CSS实现曲线阴影和翘边阴影</title>
  5. <meta charset="utf-8">
  6. <link rel="stylesheet" type="text/css" href="css/style.css">
  7. </head>
  8. <body>
  9. <div class="wrap effect">
  10. <h1>Shadow Effect</h1>
  11. </div>
  12. <ul class="box">
  13. <li><img src="data:images/photo1.jpg"></li>
  14. <li><img src="data:images/photo2.jpg"></li>
  15. <li><img src="data:images/photo3.jpg"></li>
  16. </ul>
  17. </body>
  18. </html>

index.html

  1. body{
  2. font-family: Arial;
  3. font-size: 20px;
  4. }
  5.  
  6. body,ul{margin:;
  7. padding:;
  8. list-style-type: none;
  9. }
  10.  
  11. .wrap{
  12. width: 70%;
  13. height: 200px;
  14. margin: 50px auto;
  15. background: #fff;
  16. }
  17.  
  18. .wrap h1{
  19. font-size: 20px;
  20. text-align: center;
  21. line-height: 200px;
  22. }
  23.  
  24. .effect{
  25. position: relative;
  26. box-shadow:0px 1px 4px rgba(0,0,0,0.3),0px 0px 40px rgba(0,0,0,0.1) inset;
  27. -webkit-box-shadow:0px 1px 4px rgba(0,0,0,0.3),0px 0px 40px rgba(0,0,0,0.1) inset;
  28. -o-box-shadow:0px 1px 4px rgba(0,0,0,0.3),0px 0px 40px rgba(0,0,0,0.1) inset;
  29. -moz-box-shadow:0px 1px 4px rgba(0,0,0,0.3),0px 0px 40px rgba(0,0,0,0.1) inset;
  30. }
  31.  
  32. .effect:after,.effect:before{ /*双重叠加*/
  33. content: '';
  34. background: #f00;
  35. position: absolute;
  36. z-index: -1;
  37. top: 50%;
  38. bottom: 0px;
  39. left: 30px;
  40. right: 30px;
  41. -webkit-box-shadow:0 0 20px rgba(0,0,0,0.8);
  42. -moz-box-shadow:0 0 20px rgba(0,0,0,0.8);
  43. -o-box-shadow:0 0 20px rgba(0,0,0,0.8);
  44. border-radius: 100px/10px;
  45. }body{
  46. font-family: Arial;
  47. font-size: 20px;
  48. }
  49.  
  50. body,ul{margin:;
  51. padding:;
  52. list-style-type: none;
  53. }
  54.  
  55. .wrap{
  56. width: 70%;
  57. height: 200px;
  58. margin: 50px auto;
  59. background: #fff;
  60. }
  61.  
  62. .wrap h1{
  63. font-size: 20px;
  64. text-align: center;
  65. line-height: 200px;
  66. }
  67.  
  68. .effect{
  69. position: relative;
  70. box-shadow:0px 1px 4px rgba(0,0,0,0.3),0px 0px 40px rgba(0,0,0,0.1) inset;
  71. -webkit-box-shadow:0px 1px 4px rgba(0,0,0,0.3),0px 0px 40px rgba(0,0,0,0.1) inset;
  72. -o-box-shadow:0px 1px 4px rgba(0,0,0,0.3),0px 0px 40px rgba(0,0,0,0.1) inset;
  73. -moz-box-shadow:0px 1px 4px rgba(0,0,0,0.3),0px 0px 40px rgba(0,0,0,0.1) inset;
  74. }
  75.  
  76. .effect:after,.effect:before{ /*双重叠加*/
  77. content: '';
  78. background: #f00;
  79. position: absolute;
  80. z-index: -1;
  81. top: 50%;
  82. bottom: 0px;
  83. left: 30px;
  84. right: 30px;
  85. -webkit-box-shadow:0 0 20px rgba(0,0,0,0.8);
  86. -moz-box-shadow:0 0 20px rgba(0,0,0,0.8);
  87. -o-box-shadow:0 0 20px rgba(0,0,0,0.8);
  88. border-radius: 100px/10px;
  89. }
  90.  
  91. .box{
  92. width: 980px;
  93. height: auto;
  94. clear: both;
  95. overflow: hidden;
  96. margin: 20px auto;
  97. }
  98.  
  99. .box li{
  100. width: 300px;
  101. height: 210px;
  102. position: relative;
  103. float: left;
  104. background: #fff;
  105. margin: 20px 10px;
  106. border:2px solid #efefef;
  107. box-shadow: 0 1px 4px rgba(0,0,0,0.27),0 0 60px rgba(0,0,0,0.1) inset;
  108. -webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.27),0 0 60px rgba(0,0,0,0.1) inset;
  109. -o-box-shadow: 0 1px 4px rgba(0,0,0,0.27),0 0 60px rgba(0,0,0,0.1) inset;
  110. -moz-box-shadow: 0 1px 4px rgba(0,0,0,0.27),0 0 60px rgba(0,0,0,0.1) inset;
  111. }
  112.  
  113. .box li img{
  114. display: block;
  115. width: 290px;
  116. height: 200px;
  117. margin: 5px;
  118. }
  119.  
  120. .box li:before{
  121. content:'';
  122. position: absolute;
  123. z-index: -2;
  124. width: 90%; /*这里需注意*/
  125. height: 80%;
  126. left: 20px;
  127. bottom: 8px;
  128. background: transparent; /*透明的*/
  129. box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  130. -webkit-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  131. -o-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  132. -moz-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  133.  
  134. -webkit-transform:skew(-12deg) rotate(-4deg);
  135. -o-transform:skew(-12deg) rotate(-4deg);
  136. -moz-transform:skew(-12deg) rotate(-4deg);
  137. -ms-transform:skew(-12deg) rotate(-4deg);
  138. }
  139.  
  140. .box li:after{
  141. content:'';
  142. position: absolute;
  143. z-index: -2;
  144. width: 90%; /*这里需注意*/
  145. height: 80%;
  146. right: 20px;
  147. bottom: 8px;
  148. background: transparent; /*透明的*/
  149. box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  150. -webkit-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  151. -o-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  152. -moz-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  153.  
  154. -webkit-transform:skew(12deg) rotate(4deg);
  155. -o-transform:skew(12deg) rotate(4deg);
  156. -moz-transform:skew(12deg) rotate(4deg);
  157. -ms-transform:skew(12deg) rotate(4deg);

css3中变形

transform

旋转--  :rotate(ndeg):n正值 顺时针;n负值 逆时针

扭曲--  :skew(x,y)  :skewX(x)  :skewY(y)

:skewX(x) :skewY(y)

缩放-- :scale(x,y)  :scareX()   :scareY()

位移--  :translate(x,y)  :translateX(x)  :translateY(y)     (不知道元素长和框的情况下也可以实现水平垂直居中)

:translateX(x):translateY(y)

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>变形与动画</title>
  6. <link href="style.css" rel="stylesheet" type="text/css">
  7. </head>
  8. <body>
  9. <div class="wrapper">
  10. 我不知道我的宽度和高是多少,我要实现水平垂直居中
  11. </div>
  12. </body>
  13. </html>

index.html

  1. .wrapper {
  2. padding: 20px;
  3. background:orange;
  4. color:#fff;
  5. position:absolute;
  6. top:50%;
  7. left:50%;
  8. border-radius: 5px;
  9. -webkit-transform:translate(-50%,-50%);
  10. -moz-transform:translate(-50%,-50%);
  11. transform:translate(-50%,-50%);
  12. }

style.css

矩阵--  :matrix(a,b,c,d,e,f) 6个属性的意思的:第一个宽度比例1就是原大小,第二个是上下倾斜1就是2倍,2就是3倍,第三个是左右倾斜,数字和第二个一样的意思,第四个是高度比例1就是原大小,第五个是X方向的像素位移,X方向就是左右,第六个是Y方向的像素位移,X方向就是上下

http://www.zhangxinxu.com/wordpress/2012/06/css3-transform-matrix-%E7%9F%A9%E9%98%B5/   到时用参考这

原点--   transform-origin:对元素进行原点位置改变

css3中动画

  1. CSS中创建简单的过渡效果可以从以下几个步骤来实现:
  2. 第一,在默认样式中声明元素的初始状态样式;
  3. 第二,声明过渡元素最终状态样式,比如悬浮状态;
  4. 第三,在默认样式中通过添加过渡函数,添加一些不同的样式。

transition:all .5s ease-in-out .2s;

transition-property:指定过渡或动态模拟的CSS属性

:常见过渡属性

transition-duration:指定完成过渡所需的时间

transition-timing-function:过渡函数

transition-delay:过渡延迟时间

连写:-webkit-animation:move 10s ease-in 0.5s infinite

关键帧:@Keyframes

  1. @Keyframes changecolor{
  2. %{
  3. background: red;
  4. }
  5. %{
  6. background:blue;
  7. }
  8. %{
  9. background:orange;
  10. }
  11. %{
  12. background:green;
  13. }
  14. %{
  15. background:yellow;
  16. }
  17. %{
  18. background: red;
  19. }
  20. }
  21. div {
  22. width: 300px;
  23. height: 200px;
  24. background: red;
  25. color:#fff;
  26. margin: 20px auto;
  27. }
  28. div:hover {
  29. animation: changecolor 5s ease-out .2s;
  30. }

style.css

调用动画  animation:name  要与@keyframes连用

设置动画播放时间  animation-duration:    完成从0%到100%一次动画所需时间

设置动画播放方式  animation-timing-function

设置动画开始播放的时间  animation-delay

设置动画播放次数  animation-iteration-count:infinate (无限次)

设置动画播放方向  animation-direction:normal(默认) / alternate(偶数次反方向播放)

设置动画的播放状态  animation-play-state:running(默认)/paused

设置动画时间外属性  animation-fill-mode:none/forwards/backwords/both       【解析:有些人可以一路走到底(forwards),有些人在遭受伤害后可以恢复到以前(none),甚至有些人可以从伤痛中快速的逃离(backwards),然而有些人已经回不去了,也不知道后面的路该如何走下去(both)】

属性值

效果

none

默认值,表示动画将按预期进行和结束,在动画完成其最后一帧时,动画会反转到初始帧处

forwards

表示动画在结束后继续应用最后的关键帧的位置

backwards

会在向元素应用动画样式时迅速应用动画的初始帧

both

元素动画同时具有forwards和backwards效果

布局样式相关

多列布局——columns:width count   (产生报纸的效果)

多列布局——column-width:auto(默认) | <length>

多列布局——column-count:auto | <integer>

列间距  column-gap:normal(默认) | <length>

列表边框column-rule:width style color

属性值

属性值说明

column-rule-width

类似于border-width属性,主要用来定义列边框的宽度,其默认值为“medium”,column-rule-width属性接受任意浮点数,但不接收负值。但也像border-width属性一样,可以使用关键词:medium、thick和thin。

column-rule-style

类似于border-style属性,主要用来定义列边框样式,其默认值为“none”。column-rule-style属性值与border-style属值相同,包括none、hidden、dotted、dashed、solid、double、groove、ridge、inset、outset。

column-rule-color

类似于border-color属性,主要用来定义列边框颜色,其默认值为前景色color的值,使用时相当于border-color。column-rule-color接受所有的颜色。如果不希望显示颜色,也可以将其设置为transparent(透明色)

跨列设置 column-span:none(默认) | all(元素跨越所有列)

盒子模型  box-sizing:content | border-box | inherit   (这地方了解清楚的话要知道W3C标准盒模型和IE传统下盒模型) 理解这是又多掌握了一个布局利器

属性值

属性值说明

content-box

默认值,其让元素维持W3C的标准盒模型,也就是说元素的宽度和高度(width/height)等于元素边框宽度(border)加上元素内距(padding)加上元素内容宽度或高度(content width/ height),也就是element width/height = border + padding + content width / height

border-box

重新定义CSS2.1中盒模型组成的模式,让元素维持IE传统的盒模型(IE6以下版本和IE6-7怪异模式),也就是说元素的宽度或高度等于元素内容的宽度或高度。这里的内容宽度或高度包含了元素的border、padding、内容的宽度或高度(此处的内容宽度或高度=盒子的宽度或高度—边框—内距)。

inherit

使元素继承父元素的盒模型模式

content-box的width是定义内容区域的宽度,然后border、padding什么的,都在内容区域外,导致整个盒子的宽度变大。
border-box的width是定义整个盒子的宽度,所以在border、padding相同的情况下,内容宽度会变小。

伸缩布局(Flexbox)

display:flex;

flex-direction:row(水平) | column(垂直);

align-items:flex-start | flex-end | center;(水平方向)

justify-content:flex-start | flex-end | center;(垂直方向)

Flex项目自动收缩:需要给每个flex项目设置flex属性设置需要伸缩的值。

.bigitem{ -webkit-flex:200; flex:200; }  .smallitem{ -webkit-flex:100; flex:100; }

Media Queries && Responsive设计

W3C总共列出了10种媒体类型,其中ScreenAllPrint为最常见的三种媒体类型。

设备类型

All

所有设备

Braille

盲人用点字法触觉回馈设备

Embossed

盲文打印机

Handheld

便携设备

Print

打印用纸或打印预览视图

Projection

各种投影设备

Screen

电脑显示器

Speech

语音或音频合成器

Tv

电视机类型设备

Tty

使用固定密度字母栅格的媒介,比如电传打字机和终端

引用方法:link标签、@import和CSS3新增的@media   具体参考http://www.imooc.com/code/1393

Media Queries使用方法:@media 媒体类型and (媒体特性){你的样式}

  1. @media screen and (min-width:600px) and (max-width:900px){
  2. body {background-color:#f5f5f5;}
  3. }

设备屏幕的输出宽度Device Width、not关键词、only关键词  (做响应式网站前必须过一遍)

Responsive设计

1.流体网格  2.弹性图片  3.媒体查询 4.屏幕分辨率 5.主要断点

这次先整理到这了,下回再学习整理响应式部分的知识点,和大家一起进步!

CSS3知识点整理&&一些demo的更多相关文章

  1. CSS3知识点整理(一)----基本样式

    (一) 在编写CSS3样式时,不同的浏览器可能需要不同的前缀.它表示该CSS属性或规则尚未成为W3C标准的一部分,是浏览器的私有属性,虽然目前较新版本的浏览器都是不需要前缀的,但为了更好的向前兼容前缀 ...

  2. CSS3知识点整理(二)----CSS3选择器

    总结各种CSS3选择器的介绍及具体语法 (一)属性选择器 在CSS2中引入了一些属性选择器,而CSS3在CSS2的基础上对属性选择器进行了扩展,新增了3个属性选择器,使得属性选择器有了通配符的概念,这 ...

  3. CSS3知识点整理(三)----变形与动画

    一.CSS3中的变形 1)旋转 rotate() rotate()函数通过指定的角度参数使元素相对原点进行旋转. 它主要在二维空间内进行操作,设置一个角度值,用来指定旋转的幅度. 如果这个值为正值,元 ...

  4. CSS3知识点整理(四)----布局样式及其他

    包括CSS3多列布局样式.Flexbox伸缩布局.盒子模型等.重点介绍了Flexbox伸缩布局的各种属性用法. 一.多列布局 为了能在Web页面中方便实现类似报纸.杂志那种多列排版的布局,W3C特意给 ...

  5. CSS3知识点整理(五)----响应式设计及其他属性

    介绍Media Queries与Responsive设计以及外轮廓属性.resize属性.CSS3生成内容等 学会如何使用CSS3中的Media Queries模块来让一个页面适应不同的终端(或屏幕尺 ...

  6. web前端面试知识点整理

    一.HTML5新特性 本地存储 webStorage websocket webworkers新增地理位置等API对css3的支持canvas多媒体标签新增表单元素类型结构标签:header nav ...

  7. Flutter教程- Dart语言规范-知识点整理

    Flutter教程- Dart语言知识点整理 Dart语言简介 Dart语言介绍 ① 注释的方式 ② 变量的声明 ③ 字符串的声明和使用 ④ 集合变量的声明 ⑤ 数字的处理 ⑥ 循环的格式 ⑦ 抛异常 ...

  8. ACM个人零散知识点整理

    ACM个人零散知识点整理 杂项: 1.输入输出外挂 //读入优化 int 整数 inline int read(){ int x=0,f=1; char ch=getchar(); while(ch& ...

  9. Android 零散知识点整理

    Android 零散知识点整理 为什么Android的更新试图操作必须在主线程中进行? 这是因为Android系统中的视图组件并不是线程安全的.通常应该让主线程负责创建.显示和更新UI,启动子线程,停 ...

随机推荐

  1. python 使用__neg__和__iter__

    __neg__ python中 __neg__ 方法对应于 符号 - 可见 str 没有__neg__,定义 strnew 好吧,无法再简化了 __iter__ 看看 list 的 __iter__: ...

  2. ThinkPHP5 助手函数

    对于ThinkPHP5.0以前的版本,助手函数全部是单字母函数,但到ThinkPHP5之后,使用如下函数来代替单字母函数: 最常用: /** * 实例化Model * @param string $n ...

  3. Java概念性问题

    一.变量命名的五个要素 由字母.数字.“_”和“$” 组成 首字母不能为数字 大小写敏感 不能使用Java的保留字和关键字 可以使用中文命名,但是不建议 二.java的基本数据类型 整数类型:byte ...

  4. 在SharePoint 2010中,如何找回丢失的服务账号(Service Account)密码

    背景信息: 通常在SharePoint环境中我们会使用很多的服务账号来运行各种不同的服务,尤其在企业环境中,由于权限管理条例严格,这些服务账号更是只能多不能少.面对如此多的服务账号,各个企业都会有自己 ...

  5. 测试MailUtils,作用是发邮件

    package cn.itcast.test; import java.io.IOException; import javax.mail.MessagingException; import jav ...

  6. Wishart distribution

    Introduction In statistics, the Wishart distribution is generalization to multiple dimensions of the ...

  7. 【读书笔记】Asp.Net MVC 上传图片到数据库(会的绕行)

    之前上传图片的做法都是上传到服务器上的文件夹中,再将url保存到数据库.其实在MVC中将图片上传到数据库很便捷的事情,而且不用去存url了.而且这种方式支持ie6(ie6不支持jquery自动提交fo ...

  8. iOS开发系列--C语言之预处理

    概述 大家都知道一个C程序的运行包括编译和链接两个阶段,其实在编译之前预处理器首先要进行预处理操作,将处理完产生的一个新的源文件进行编译.由于预处理指令是在编译之前就进行了,因此很多时候它要比在程序运 ...

  9. DDD领域驱动设计之领域服务

    1.DDD领域驱动设计实践篇之如何提取模型 2.DDD领域驱动设计之聚合.实体.值对象 3.DDD领域驱动设计之领域基础设施层 什么是领域服务,DDD书中是说,有些类或者方法,放实体A也不好,放实体B ...

  10. JavaScript学习笔记之string

    字符串定义: 1,var myString=“内容”:or var myString=‘内容’ 2,var myString= new String(“内容”)           ---〉创建对象, ...