Web基础之CSS3

概述:css3完全向后兼容,不需要改变已有设计。浏览器通常支持 CSS2。
CSS3被划分成模块,【-moz- , -o- , -webkit-】
有:
1)选择器
2)框模型
3)背景:
—>属性:
->:background-size:规定背景图片的尺寸。
->:background-origin: 规定背景图片的定位区域。
->:background-clip: 规定背景的绘制区域。背景图片可以放置于 content-box、padding-box 或 border-box 区域。

div{ #背景图片进行拉伸,使其完成填充内容区域
background:url(bg_flower.gif);
-moz-background-size:40% 100%; /* 老版本的 Firefox */
background-size:40% 100%;
background-repeat:no-repeat;}

div{ #在 content-box 中定位背景图片
background:url(bg_flower.gif);
background-repeat:no-repeat;
background-size:100% 100%;
-webkit-background-origin:content-box; /* Safari */
background-origin:content-box;}

body{  # 多重背景图片,为 body 元素设置两幅背景图片
background-image:url(bg_flower.gif),url(bg_flower_2.gif);}

4)边框:

—>属性:
->: border-radius :设置所有四个 border--radius 属性的简写属性。
->: box-shadow :向方框添加一个或多个阴影。
->: border-image :设置所有 border-image-
属性的简写属性。

div{ #圆角边框
border:2px solid;
border-radius:25px;
-moz-border-radius:25px; /* Old Firefox */}

div{ #方框阴影
box-shadow: 10px 10px 5px #888888;}

div{ #使用图片做边框
border-image:url(border.png) 30 30 round;
-moz-border-image:url(border.png) 30 30 round; /* 老的 Firefox */
-webkit-border-image:url(border.png) 30 30 round; /* Safari 和 Chrome */
-o-border-image:url(border.png) 30 30 round; /* Opera */}

5)文本效果:

—>属性:
->:hanging-punctuation:规定标点字符是否位于线框之外。
->:punctuation-trim: 规定是否对标点字符进行修剪。
->:text-align-last:设置如何对齐最后一行或紧挨着强制换行符之前的行。
->:text-emphasis:向元素的文本应用重点标记以及重点标记的前景色。
->:text-justify:规定当 text-align 设置为 "justify" 时所使用的对齐方法。
->:text-outline:规定文本的轮廓。
->:text-overflow: 规定当文本溢出包含元素时发生的事情。
->:text-shadow: 向文本添加阴影。
->:text-wrap:规定文本的换行规则。
->:word-break: 规定非中日韩文本的换行规则。
->:word-wrap: 允许对长的不可分割的单词进行分割并换行到下一行。
—>字体:可将使用的字体文件存放到 web 服务器上,它会在需要时被自动下载到用户的计算机上。您“自己的”的字体是在 CSS3 @font-face 规则中定义的。
->使用:新的 @font-face 规则中,您必须首先定义字体的名称(比如 myFirstFont),然后指向该字体文件。

@font-face{ #粗体字体
font-family: myFirstFont;
src: url('Sansation_Bold.ttf'),
     url('Sansation_Bold.eot'); /* IE9+ */
font-weight:bold;}

->CSS3字体描述符:

 > font-family:name,必需。规定字体的名称。
 > src:url,必需。定义字体文件的 URL。
 >font-stretch:normal,可选。定义如何拉伸字体。默认是 "normal"。
 >font-style:ormal,可选。定义字体的样式。默认是 "normal"。
 >font-weight:bold,可选。定义字体的粗细。默认是 "normal"。
 >unicode-range:可选。定义字体支持的 UNICODE 字符范围。默认是 "U+0-10FFFF"。

6)2D/3D效果:
—>转换属性:
->:transform:向元素应用 2D 或 3D 转换。
->:transform-origin:允许你改变被转换元素的位置。
->:transform-style:规定被嵌套元素如何在 3D 空间中显示。
->:perspective:规定 3D 元素的透视效果。
->:perspective-origin:规定 3D 元素的底部位置。
->:backface-visibility:定义元素在不面对屏幕时是否可见。
—>2D转换方法:
->:translate():元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标)
->:rotate():元素顺时针旋转给定的角度。允许负值,元素将逆时针旋转。
->:scale():元素的尺寸会增加或减少,根据给定的宽度(X 轴)和高度(Y 轴)
->:skew():元素翻转给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)
->:matrix():把所有 2D 转换方法组合在一起,需要六个参数,包含数学函数,允许您:旋转、缩放、移动以及倾斜元素。

div{ #移动
transform: translate(50px,100px);
-ms-transform: translate(50px,100px); /* IE 9 */
-webkit-transform: translate(50px,100px); /* Safari and Chrome */
-o-transform: translate(50px,100px); /* Opera */
-moz-transform: translate(50px,100px); /* Firefox */}
div{ #旋转
transform: rotate(30deg);
-ms-transform: rotate(30deg); /* IE 9 */
-webkit-transform: rotate(30deg); /* Safari and Chrome */
-o-transform: rotate(30deg); /* Opera */
-moz-transform: rotate(30deg); /* Firefox */}
div{ #缩放
transform: scale(2,4);
-ms-transform: scale(2,4); /* IE 9 */
-webkit-transform: scale(2,4); /* Safari 和 Chrome */
-o-transform: scale(2,4); /* Opera */
-moz-transform: scale(2,4); /* Firefox */}
div{ # 翻转
transform: skew(30deg,20deg);
-ms-transform: skew(30deg,20deg); /* IE 9 */
-webkit-transform: skew(30deg,20deg); /* Safari and Chrome */
-o-transform: skew(30deg,20deg); /* Opera */
-moz-transform: skew(30deg,20deg); /* Firefox */}
div{ #使用matrix方法将div旋转30度
transform:matrix(0.866,0.5,-0.5,0.866,0,0);
-ms-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* IE 9 */
-moz-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* Firefox */
-webkit-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* Safari and Chrome */
-o-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* Opera */}

—>3D转换方法:Chrome 和 Safari 需要前缀 -webkit-。Opera不支持
case>: rotateX/Y/Z():
case>: rotate3d(x,y,z,angle):元素围绕其 X/Y/Z 轴以给定的度数进行旋转。
case>: translateX/Y/Z():
case>: translate3d(x,y,z):元素以其 X/Y/Z 轴以给定的值移动。
case>: scaleX/Y/Z():
case>: scale3d(x,y,z):元素以其 X/Y/Z 轴以给定的值缩放。
case>: matrix3d(n…n):定义 3D 转换,使用 16 个值的 4x4 矩阵。
case>: perspective(n):定义 3D 转换元素的透视视图
7)过渡:是元素从一种样式逐渐改变为另一种的效果。
*必须规定两项内容:
规定您希望把效果添加到哪个 CSS 属性上
规定效果的时长
—>属性:
->:transition:简写属性,用于在一个属性中设置四个过渡属性。
->:transition-property: 规定应用过渡的 CSS 属性的名称。
->:transition-duration:定义过渡效果花费的时间。默认是 0。
->:transition-timing-function: 规定过渡效果的时间曲线。默认是 "ease"。
->:transition-delay: 规定过渡效果何时开始。默认是 0。

div{
transition-property: width;
transition-duration: 1s;
transition-timing-function: linear;
transition-delay: 2s;
/* Firefox 4 */
-moz-transition-property:width;
-moz-transition-duration:1s;
-moz-transition-timing-function:linear;
-moz-transition-delay:2s;
/* Safari 和 Chrome */
-webkit-transition-property:width;
-webkit-transition-duration:1s;
-webkit-transition-timing-function:linear;
-webkit-transition-delay:2s;
/* Opera */
-o-transition-property:width;
-o-transition-duration:1s;
-o-transition-timing-function:linear;
-o-transition-delay:2s;}
/* 使用简写方式 */
div{
transition: width 1s linear 2s;
/* Firefox 4 */
-moz-transition:width 1s linear 2s;
/* Safari and Chrome */
-webkit-transition:width 1s linear 2s;
/* Opera */
-o-transition:width 1s linear 2s;}

8)动画:@keyframes 规则用于创建动画。在 @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果。IE9之前的版本不支持

@keyframes myfirst{
from {background: red;}
to {background: yellow;}}
@-moz-keyframes / @-webkit-keyframes / @-o-keyframes myfirst /* Firefox */{
from {background: red;}
to {background: yellow;}}

from表示0%,动画的开始,to表示100%动画的结束,也可支持使用%:

@keyframes myfirst{
0%   {background: red;}
25%  {background: yellow;}
50%  {background: blue;}
100% {background: green;}}

—>绑定到选择器:规定动画的名称、时长

div{
animation: myfirst 5s;
-moz-animation: myfirst 5s; /* Firefox */
-webkit-animation: myfirst 5s; /* Safari 和 Chrome */
-o-animation: myfirst 5s; /* Opera */}

—>animation属性:

->:@keyframes:规定动画。
->:animation:所有动画属性的简写属性,除了 animation-play-state 属性
->:animation-name:规定 @keyframes 动画的名称。
->:animation-duration:规定动画完成一个周期所花费的秒或毫秒。默认是 0。
->:animation-timing-function:规定动画的速度曲线。默认是 "ease"。
->:animation-delay:规定动画何时开始。默认是 0。
->:animation-iteration-count:规定动画被播放的次数。默认是 1。
->:animation-direction:规定动画是否在下一周期逆向地播放。默认是 "normal"。
->:animation-play-state:规定动画是否正在运行或暂停。默认是 "running"。
->:animation-fill-mode:规定对象动画时间之外的状态。
9)多列布局
—>属性:-moz- -webkit- -o-
->:column-count:规定元素应该被分隔的列数。
->:column-fill:规定如何填充列。
->:column-gap:规定列之间的间隔。
->:column-rule:设置所有 column-rule-* 属性的简写属性。
->:column-rule-color:规定列之间规则的颜色。
->:column-rule-style:规定列之间规则的样式。
->:column-rule-width:规定列之间规则的宽度。
->:column-span:规定元素应该横跨的列数。
->:column-width:规定列的宽度。
->:columns:规定设置 column-width 和 column-count 的简写属性。
10)用户界面:包括元素尺寸、盒尺寸及轮廓等
—>属性:-moz- -webkit- -o-
->:appearance:允许将元素设置为标准用户界面元素的外观
->:box-sizing:允许以确切的方式定义适应某个区域的具体内容。
->:icon:为创作者提供使用图标化等价物来设置元素样式的能力。
->:nav-down:规定在使用 arrow-down 导航键时向何处导航。
->:nav-up:规定在使用 arrow-up 导航键时向何处导航。
->:nav-index:设置元素的 tab 键控制次序。
->:nav-left:规定在使用 arrow-left 导航键时向何处导航。
->:nav-right: 规定在使用 arrow-right 导航键时向何处导航。
->:outline-offset:对轮廓进行偏移,并在超出边框边缘的位置绘制轮廓。轮廓不占用空间;轮廓可能是非矩形
->:resize:规定是否可由用户对元素的尺寸进行调整。

div{ #规定 div 元素可由用户调整大小
resize:both;
overflow:auto;}
div{ # 两个并排的带边框方框
box-sizing:border-box;
-moz-box-sizing:border-box; /* Firefox */
-webkit-box-sizing:border-box; /* Safari */
width:50%;
float:left;}
div{#规定边框边缘之外 15 像素处的轮廓
border:2px solid black;
outline:2px solid red;
outline-offset:15px;
}

博客地址:Web基础之CSS3

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容

  • 1.CSS3 边框 border-radius CSS属性用来设置边框圆角。当使用一个半径时确定一个圆形;当使用两...
    garble阅读 627评论 0 0
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,299评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,723评论 0 2
  • CSS背景 background-color:red background-image:url('paper.gi...
    专注寒冰三千岁阅读 325评论 0 2
  • 选择器 CSS3中新添加了很多选择器,解决了很多之前需要用javascript才能解决的布局问题。· elemen...
    lovelydong阅读 471评论 0 2