上书房之CSS3

第一章 CSS3简介

CSS3是CSS最新的版本,它完全支持向下兼容,因为开发人员不必改变已有项目的样式。CSS3是由W3C开发,通常与HTML5结合进行移动互联网产品的研发。目前现代浏览器均已支持CSS3新语法。

CSS3

第二章 选择器

CSS选择器

第三章 边框

通过CSS3,您能够创建圆角边框、向矩形添加阴影以及使用图片来绘制边框,实现这些效果并不需要使用如PhotoShop的设计软件。

3.1 圆角边框

使用border-radius属性可以为块及元素的四个角添加圆角效果。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>CSS3样式</title>
        <style>
            .demo {
                background-color: orangered;
                padding: 10px;
                width: 200px;
            }
            .radius {
                border-radius: 15px;
            }
        </style>
    </head>
    <body>
        <div class="demo radius">
            <span>CSS3圆角效果</span>
        </div>
    </body>
</html>
CSS3圆角边框
浏览器支持

border-radius属性是一个简写属性,用于设置四个 border-*-radius 属性。
border-top-left-radius: 2em;
border-top-right-radius: 2em;
border-bottom-right-radius: 2em;
border-bottom-left-radius: 2em;

3.2 边框阴影

在CSS3中,box-shadow用于向方框添加阴影。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>CSS3样式</title>
        <style>
            .demo {
                background-color: orangered;
                padding: 10px;
                width: 200px;
            }
            .radius {
                border-radius: 2em;
            }
            .show{
                box-shadow: 10px 10px 5px #888888;
            }
        </style>
    </head>
    <body>
        <div class="demo radius show">
            <span>CSS3圆角效果</span>
        </div>
    </body>
</html>
CSS3圆角效果
浏览器支持

语法
box-shadow: h-shadow v-shadow blur spread color inset;

描述
h-shadow 必需。水平阴影的位置。允许负值。
v-shadow 必需。垂直阴影的位置。允许负值。
blur 可选。模糊距离。
spread 可选。阴影的尺寸。
color 可选。阴影的颜色。请参阅 CSS 颜色值。
inset 可选。将外部阴影 (outset) 改为内部阴影。

3.3 边框图片

通过CSS3的border-image属性,您可以使用图片来创建边框。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>CSS3样式</title>
        <style>
            .demo {
                padding: 10px;
                width: 200px;
            }
            .border-image{
                border-image: url(css/img/border.png) 30 30 round;
                -moz-border-image:url(css/img/border.png) 30 30 round; /* 老的 Firefox */
                -webkit-border-image:url(css/img/border.png) 30 30 round; /* Safari 和 Chrome */
                -o-border-image:url(css/img/border.png) 30 30 round; /* Opera */
            }
        </style>
    </head>
    <body>
        <div class="demo border-image">
            <span>图片铺满整个边框</span>
        </div>
    </body>
</html>
边框图片
浏览器支持

border-image 属性是一个简写属性,用于设置以下属性:
border-image-source
border-image-slice
border-image-width
border-image-outset
border-image-repeat

|值 | 描述 |
|: ------|:----|
|border-image-source | 用在边框的图片的路径。|
|border-image-slice | 图片边框向内偏移。|
|border-image-width | 图片边框的宽度。|
|border-image-outset | 边框图像区域超出边框的量。|
|border-image-repeat | 图像边框是否应平铺(repeat)、铺满(round)或拉伸(stretch)。|

第四章 文本效果

4.1 文本溢出处理

使用text-overflow属性规定当文本溢出包含元素时发生的事情。

描述
clip 修剪文本。
ellipsis 显示省略符号来代表被修剪的文本。
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>CSS3样式</title>
        <style>
            div.text1 {
                border: 1px solid red;
                margin: 10px;
                padding: 10px;
                width: 300px;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }
            div.text2 {
                border: 1px solid blue;
                margin: 10px;
                padding: 10px;
                width: 300px;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: clip;
            }
        </style>
    </head>
    <body>
        <div class="text1">
            <span>一二三四五六七八九十一二三四五六七八九十</span>
        </div>
        <div class="text2">
            <span>一二三四五六七八九十一二三四五六七八九十</span>
        </div>
    </body>
</html>
浏览器支持

4.2 文本添加阴影

使用text-shadow属性可以向文本设置阴影。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>CSS3样式</title>
        <style>
            header h1{
                text-shadow: 5px 5px 5px gray;
            }
        </style>
    </head>
    <body>
        <article>
            <header>
                <h1>看完这些神奇功能,你可能会爱上win10!</h1>
            </header>
            <p>
                文章内容文章内容文章内容文章内容
            </p>
        </article>
    </body>
</html>
文本阴影效果

语法
text-shadow: h-shadow v-shadow blur color;

描述
h-shadow 必需。水平阴影的位置。允许负值。
v-shadow 必需。垂直阴影的位置。允许负值。
blur 可选。模糊的距离。
color 可选。阴影的颜色。
浏览器支持

4.3 长单词分隔规则

使用word-wrap属性允许长单词换行到下一行。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>CSS3样式</title>
        <style>
            div.text{
                border: 1px solid red;
                width: 30rem;
                word-wrap: break-word;
            }
        </style>
    </head>
    <body>
        <div class="text">
            <p>
                This paragraph contains a very long word: thisisaveryveryveryveryveryverylongword. The long word will break and wrap to the next line.
            </p>
        </div>
    </body>
</html>
长单词分隔

第五章 2D转换

使用transform属性能够对元素进行移动、缩放、转动、拉长或拉伸。

5.1 translate()

通过CSS3中的transform属性中的translate()方法,根据给定的left(x坐标)和top(y坐标)位置参数,使元素从其当前位置移动。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>CSS3样式</title>
        <link rel="stylesheet" href="css/bootstrap.min.css" />
        <script type="text/javascript" src="js/jquery-2.1.0.js" ></script>
        <style>
            .content{
                border: 1px solid red;
                background-color: yellow;
                margin-top: 10px;
                width: 200px;
                height: 100px;
            }
            .translate{
                transform: translate(50px 100px);
                -ms-transform:translate(50px,100px); /* IE 9 */
                -moz-transform:translate(50px,100px); /* Firefox */
                -webkit-transform:translate(50px,100px); /* Safari and Chrome */
                -o-transform:translate(50px,100px); /* Opera */
            }
        </style>
    </head>
    <body>
        <button type="button" class="btn btn-info" id="btnTransform">2D转换</button>
        <div class="content">测试2D转换的div</div>
    </body>
    <script>
        jQuery(function($){
            $("#btnTransform").click(function(){
                $("div.content").addClass("translate");
            });
        });
    </script>
</html>

5.2 rotate()

通过rotate()方法,元素顺时针旋转给定的角度(deg)。允许负值,元素将逆时针旋转。

.rotate{
    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 */
}

5.3 scale()

通过scale()方法,根据给定的宽度(X轴)和高度(Y轴)参数,元素的尺寸会增加或减少。

.scale{
  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 */
}

值scale(2,4)把宽度转换为原始尺寸的2倍,把高度转换为原始高度的4倍。

5.4 skew()

通过skew()方法,根据给定的水平线(X轴)和垂直线(Y轴)参数将元素翻转给定的角度。

.skew{
  transform:skew(30deg,20deg);
  -ms-transform:skew(30deg,20deg); /* IE 9 */
  -moz-transform:skew(30deg,20deg); /* Firefox */
  -webkit-transform:skew(30deg,20deg); /* Safari and Chrome */
  -o-transform:skew(30deg,20deg); /* Opera */
}

值skew(30deg,20deg)围绕X轴把元素翻转30度,围绕Y轴翻转20度。

第六章 3D转换

CSS3允许您使用transform属性中的rotateX()和rotateY()方法对元素进行3D转换。

6.1 rotateX()

通过rotateX()方法,元素围绕其X轴以给定的度数进行旋转。

.rotateX{
  transform: rotateX(120deg);
  -webkit-transform: rotateX(120deg);   /* Safari 和 Chrome */
  -moz-transform: rotateX(120deg);  /* Firefox */
}

6.2 rotateY()

通过rotateY()方法,元素围绕其Y轴以给定的度数进行旋转。

.rotateY{
  transform: rotateY(130deg);
  -webkit-transform: rotateY(130deg);   /* Safari 和 Chrome */
  -moz-transform: rotateY(130deg);  /* Firefox */
}
浏览器支持

第七章 过度

通过CSS3的transition属性,我们可以在不使用Flash动画或JavaScript的情况下,当元素从一种样式变换为另一种样式时为元素添加效果。
CSS3过渡是元素从一种样式逐渐改变为另一种的效果。要实现这一点,必须规定两项内容:

  • 规定您希望把效果添加到哪个CSS属性上
  • 规定效果的时长
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>CSS3样式</title>
        <style>
            .content{
                background-color: yellow;
                margin: 10px;
                width: 100px;
                height: 100px;
                transition: width 2s;
                -moz-transition:width 2s; /* Firefox 4 */
                -webkit-transition:width 2s; /* Safari and Chrome */
                -o-transition:width 2s; /* Opera */
            }
            div.content:hover{
                width: 300px;
            }
        </style>
    </head>
    <body>
        <div class="content">
            
        </div>
    </body>
</html>

注释:当指针移出元素时,它会逐渐变回原来的样式。
如需向多个样式添加过渡效果,请添加多个属性,由逗号隔开。

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

推荐阅读更多精彩内容

  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 1,606评论 0 7
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,722评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,298评论 0 11
  • 转载请声明 原文链接 关注公众号获取更多资讯 这篇文章主要总结H5的一些新增的功能以及一些基础归纳,这里只是一个提...
    程序员poetry阅读 9,049评论 22 225
  • 1、HTML的标签及其属性 语法: 单标记:<标记名称 属性名称="属性值"/> 双标记:<标记名称 属性名称="...
    夜未殇阅读 729评论 0 0