CSS3 常见新特性

1.圆角, 圆形
<body>

<div class="course1">Rounded corners!</div>

<div class="course2">Rounded corners!</div>

<div class="course3">Rounded corners!</div>

</body>

//css

*{margin: 0; padding: 0;}

div{

font-weight: 400;

text-align: center;

margin-bottom: 20px;

}

.course1{

width: 200px;

height: 150px;

padding-top: 20px;

border-radius: 25px;

background-color: #4CAF50 !important;

}

.course2{

width: 200px;

height: 150px;

padding-top: 20px;

border-radius: 25px;

border: 2px solid #4CAF50;

}

.course3{

width: 200px;

height: 150px;

padding-top: 20px;

border-radius: 25px;

/* border: 2px solid #4CAF50; */

background: url(http://img2.imgtn.bdimg.com/it/u=1574766993,2953465803&fm=23&gp=0.jpg);

background-position: center center;

background-repeat: no-repeat;

}

实例效果图
实例效果图

定义顺序是从左上角开始,顺时针开始,单位可以是px也可以是百分值,当然百分值是相对于作用的角的两条边,例如我这里写border-radius:10% 30% 50% 70%
,10%指的就是左上角的左边(高height)和上边(宽width)的10%,所以设置50%就能成为一个圆形的道理就在这里; border-radius – css-stricks
2.颜色透明度的支持:rgba和hsla
.foo{

background:rgba(253,208,91,0.5)

}

.foo2{

background:#fed163;

opacity:0.5;

}

.foo3{

background:#fed163;

}

.foo4{

background-color: hsla(43, 98%, 67%, 0.5);

}

图片标题

H:Hue(色相)
;0(或360)表示红色,120表示绿色,240表示蓝色,也可取其他数值来指定颜色。取值为:0 - 360; S
:Saturation(饱和度)。取值为:0.0% - 100.0%; L
:Lightness(亮度)。取值为:0.0% - 100.0%; A
:Alpha透明度。取值0~1之间; 兼容性依旧IE,要在IE9才能支持,上图是色相的表,这里有一个在线专门转换这些颜色的网站,就不继续深究了
3.外部引入字体@font-face
@font-face {

font-family: 'Roboto Slab';

src: url('../fonts/RobotoSlab-Regular-webfont.eot');

src: url('../fonts/RobotoSlab-Regular-webfont.eot?#iefix') format('embedded-opentype'),

url('../fonts/RobotoSlab-Regular-webfont.woff') format('woff'),

url('../fonts/RobotoSlab-Regular-webfont.ttf') format('truetype'),

url('../fonts/RobotoSlab-Regular-webfont.svg#roboto_slabregular') format('svg');

font-weight: normal;

font-style: normal;

}

可加载服务器端的字体文件,让客户端显示本地没有安装的字体; 里面有eot、woff、ttf、svf其实都是字体,只不过是为了兼容不同版本的和不同的浏览器都能正确显示; 但是由于老外用的都是26个字母,不比中国文字,所以要设定英文还好,如果通篇要设定中文的字体,将会使得字体文件很大,所以用@font-face实现效果的时候,可以用到youziku.com这个网站,就是按需要截取,根据文章所涉及的文字生成小字库,将流量开销减少到最低;
4.元素阴影
.foo{

box-shadow:5px 5px 5px #ccc;

}

很多时候,页面上能够用页面阴影做出来一些,立体的效果,例如鼠标上去之后,出现一个阴影搞得好想这一块浮出来了一样; 语法全称是:
box-shadow: h-shadow v-shadow blur spread color inset;

h-shadow
:必须、水平阴影的位置,允许负值; v-shadow
:必须、垂直阴影的位置,允许负值; blur
:可选,模糊距离,就是这团阴影能够化开多少; spread
:可选,阴影的尺寸, color
:可选,阴影的颜色, inset
:可选,将外部阴影(outset)改为内部,用的很少;
demo
5.背景色渐变
渐变,CSS3定义的时候分了两个类型: 线性渐变(Linear Gradients)

  • 向下/向上/向左/向右/对角方向 径向渐变(Radial Gradients)
  • 由它们的中心定义 而且,你使用的时候,必须定义至少两种颜色节点,要不然怎么变,这个颜色节点就是你想要呈现的平稳过渡的颜色; 并且,还可以设置一个起点和一个方向(也就是角度,deg);
    图片标题

    <style id="jsbin-css">

div{

height:200px;

width:100%;

margin-top:10px;

color:#fff;

line-height:200px;

text-align:center;

}

.foo{

background:linear-gradient(yellow,red,blue)

}

.foo2{

background:linear-gradient(to left,yellow,red,blue);

}

.foo3{

background:linear-gradient(to bottom right,yellow,red,blue);

}

.foo4{

background:linear-gradient(45deg,yellow,red,blue);

}

.foo5{

background:radial-gradient(yellow,red,blue);

}

</style>

</head>

<body>

<div class='foo'>默认渐变</div>

<div class='foo2'>设定方向渐变</div>

<div class='foo3'>设定对角渐变</div>

<div class='foo4'>使用角度渐变</div>

<div class='foo5'>径向渐变</div>

</body>

6.2D 转换:放大、缩小、偏移、旋转 2D转换:里面有很多方法: translate()
是让元素根据当前位置移动,类似在笛卡尔坐标系的第四象限中一样,里面的translateX多用来搭配负margin来调整position:absolute的元素的居中位置,例如transform:translate(100px,10px)
;就是在水平上向右跑了100px,在竖直上向下跑了10px; rotate()
就是可以让元素顺时针旋转到指定的角度,可以有负值,负值就逆时针旋转;例如transform: rotate(30deg)就是顺着时针转了30度; scale()
类似一个缩放,元素尺寸会增加或者减少,根据给定的宽度(X轴)和高度(Y轴)参数来变; skew()
元素去翻转给定的角度,根据给定的水平线(X轴)和垂直线(Y轴)参数; matrix
:(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY()):

box {

width: 100px;

height: 100px;

border: 1px solid tomato;

transform: translate(50px, 20px) rotate(45deg) scale(1.2, 2.1) skew(45deg);

}

7.过渡效果

box {

width: 50px;

height: 50px;

background-color: tomato;

transition: all .8s;

}

box:hover {

background-color: orange;

}

transition的属性
div {

transition-property: width;

transition-duration: 2s;

transition-timing-function: linear;

transition-delay: 1s;

}

可以合并成这个
div {

transition: width 2s linear 1s;

}

8.文字效果 text-shadow
,我用的很少,就是给字体加上阴影,和前面的box-shadow
很类似; word-wrap
倒是用过几次,允许长单词或 URL 地址换行到下一行,就是控制一旦文字内容(主要是英文)顶到父容器边界,如何去换行,是选择只在允许的断字点换行还是在长单词或 URL 地址内部进行换行 9.动画
/* The animation code */

@keyframes example {

0% {background-color: red; left:0px; top:0px;}

25% {background-color: yellow; left:200px; top:0px;}

50% {background-color: blue; left:200px; top:200px;}

75% {background-color: green; left:0px; top:200px;}

100% {background-color: red; left:0px; top:0px;}

}

/* The element to apply the animation to */

div {

width: 100px;

height: 100px;

position: relative;

background-color: red;

animation-name: example;

animation-duration: 4s;

}

animation
相关属性
div {

animation-name: example;

animation-duration: 5s;

animation-timing-function: linear; //或者ease,ease-in,ease-out,ease-in-out

animation-delay: 2s;

animation-iteration-count: infinite;//或者count

animation-direction: alternate; //或者reverse

}

可以合并成写成下面这样
div {

animation: example 5s linear 2s infinite alternate;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,344评论 0 11
  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,715评论 0 8
  • 1、垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,...
    kiddings阅读 3,208评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,810评论 0 2
  • 六月的别情 悄然在眉间滋生 瞳孔里烟火明灭的瞬间 墨染因你而生的华发 一缕一寸 你曾摩娑过的丝滑 印在唇彩里的吻 ...
    陌诺流年阅读 802评论 24 48