从0开始学习HTML5CSS3(二)

css3新增内容

1 伪类选择器

特点: 都是以:开头,连在一起的写法其实是交集选择器

以下这些主要是给a标签用的(hover除外)
        :hover   鼠标悬停
        :active  点击a标签时的样式
        :link    尚未访问的样式
        :visited 访问后的样式

1.1 xxx-child

:first-child:找到第一个子元素
:last-child:找到最后一个子元素
:nth-child:找到某一个子元素
写几就代表找到第几个
写n代表找到所有
写odd代表找到所有奇数
写even代表找到所有偶数
写mn: m是一个数字,代表m的倍数 3n 代表 3的倍数
写n+m:m是一个数字,代表找到从m开始到最后 例:n+6 从6开始
xxx-child:必须满足是在父元素中也是第几个子元素

<body>
    <ul>
        <span>我是span</span>
        <li>隔壁老王1</li>
        <li>隔壁老王2</li>
        <li>隔壁老王3</li>
        <li>隔壁老王4</li>
        <li>隔壁老王5</li>
        <li>隔壁老王6</li>
        <li>隔壁老王7</li>
        <li>隔壁老王8</li>
        <li>隔壁老王9</li>
        <li>隔壁老王10</li>
        <span>最后的span</span>
    </ul>

</body>
//第一个子元素是span li:nth-child(1)找不到,因为li不是第一个子元素

1.2 xxx-of-type

xxx-of-type:用法和特点几乎跟xxx-child是一样的
xxx-of-type就是直接找到第几个,不用管在父元素中是第几个子元素,但是xxx-child要管
注意:不是说找到整个文件里的第几个,而是找到自己所在的盒子的第几个

 <ul>
        <span>我是span</span>
        <li>隔壁老王1</li>
        <li>隔壁老王2</li>
        <li>隔壁老王3</li>
        <li>隔壁老王4</li>
        <li>隔壁老王5</li>
        <span>我是最后的span</span>
    </ul>

    <ul>
        <li>隔壁老周1</li>
        <li>隔壁老周2</li>
        <li>隔壁老周3</li>
        <li>隔壁老周4</li>
        <li>隔壁老周5</li>
    </ul>
///* 找到第一个li,不用管在父元素中是第几个 */
         li:first-of-type{
             color:red;
         }
老王1和老周一都会变红色

2 伪元素选择器

伪元素选择器:前面有两个冒号
::before
在不改变html的情况下,给元素内容的前面加一个子元素
::after
在不改变html的情况下,给元素内容的后面加一个子元素
默认都是行内元素,哪怕没有内容,也要写content,只不过content为空就行了
因为它们的应用场景主要只是用来清除浮动带来的影响

::first-letter 匹配首字母
::first-line 匹配第一行
::selection匹配选中的部分
::placeholder 匹配占位符

3 transition

transition:过渡. 让你的样式变化的时候具有动画效果
/*
参数1:参与过渡的属性,写一个all代表所有属性都参与过渡,一般写的是all,有默认值,默认值就是all
参数2:过渡的持续时间
参数3:延迟时间
参数4:运动曲线:linear,steps() 分步骤动画
顺序其实可以打乱,随便写都行,但是先写的是动画时间,后写的时间是延迟时间
/
/
transition:all 2s 1s steps(3); /
/
以下是顺序打乱写法 /
/
transition: 1s all steps(2) 2s; /
/
代表所有属性参与过渡,并且动画时间为2s /
/
transition: 2s; /
transition: all 1s;
/
transition其实也个是复合属性,由下面四个子属性组成 /
/
transition-property: 参与过渡的属性 /
/
transition-duration: 持续时间 /
/
transition-delay: 延迟时间 /
/
transition-timing-function: 运动曲线 */

4 box-shadow(盒子阴影)

box-shadow:盒子阴影 所有元素都可以加阴影

参数1:阴影水平偏移位置
参数2:阴影处置偏移位置
参数3:阴影模糊度
参数4:阴影的宽度 阴影默认跟盒子一样大,如果给正的数,在盒子的基础上四边加多少
参数5:阴影的颜色
参数6:是否为内阴影,默认为外阴影 如果加一个inset就是内阴影,不加就是外阴影
多个阴影之间用逗号隔开,先写的阴影层级更高
实例:box-shadow:0px 0px 20px 10px green,0px 0px 20px 10px gold;

5 box-sizing

box-sizing:它可以设置边框是外扩还是内聚

设置后盒子宽高不用再加上边框

//加上后盒子宽高为100px
.box{
             width: 100px;
             height: 100px;
             background-color: #f00;
             border: 10px solid black;

             /* 让边框内聚
                border-box代表内聚
                content-box代表外扩,它也是默认值
              */
             box-sizing: border-box;
         }

6 text-shadow

text-shadow:文字阴影,给文字加阴影
参数1:水平偏移,正数往右边
参数2:垂直偏移,正数往下边
参数3:模糊度
参数4:阴影的颜色
多个阴影之间用逗号隔开,先写的层级更高
实例:text-shadow: -5px -5px 10px green,-10px -10px 10px yellow,-15px -15px 10px red;

7 background

参数1:图片路径,路径里可以写引号也可以不写
参数2:是否平铺,默认值是repeat:水平和垂直都平铺
no-repeat 用的多,代表不平铺
repeat-x:代表水平平铺
repeat-y:代表垂直平铺
参数3:图片偏移位置,默认在左上角
第一个数给的是水平方向,值越大越往右,越小往左
第二个数给的是垂直方向,值越大越往下,越小往上
除了可以给数字具体数据外,还可以给单词,如果你要居中,写一个center就够了
还可以给百分比50%代表居中
参数4:图片的大小,默认用的是图片自身大小
参数4前面必须加 /
两个单词:
cover: 覆盖的意思。图片最终一定要覆盖整个盒子
contain:包含的意思。图片一定会被盒子包含住
它们两都是等比例缩放
参数5:背景颜色
如果要放多个背景图片,用逗号隔开,如果多张背景图片,那么背景颜色,一定只能写在最后
先写的层级更高!
代码示例:background: url(images/pl.png) no-repeat 0 0 / 300px 200px, url(images/lq.png) no-repeat 0 200px/300px 200px red;

background也是一个复合属性

background-image: 路径
background-repeat: 是否平铺
background-position: 位置
background-position-x:x轴位置
background-position-y:y轴位置
background-size: 大小
background-color: 背景颜色

8 线性渐变

参数1:渐变的方向 可以写 to 单词
还可以写角度,单位是deg,0deg从下开始,值越大顺时针转
参数2:渐变的颜色1
参数3:渐变的颜色2
每个颜色后面还可以写百分比,第一个颜色写百分比代表它到哪结束,后面的颜色写百分比代表从哪开始,如果要指定它在哪结束,就再写一个相同的颜色再来一个百分比,这时候百分比就是结束位置
渐变颜色可以写N多个,至少2个
但其实C3是把它当图片处理的,所以你赋值是给background-image赋值
代码: background-image: linear-gradient(to right,red 30%,blue 30%,blue 60%,yellow 60%)

9 径向线变

参数1:圆的大小和圆心的位置
后面接颜色,颜色至少2个,多了可以N个
它除了渐变方式不一样以外,其他跟线性渐变都是一样的
background-image: radial-gradient(100px at center,red 30%,blue 30%,blue 60%,yellow 60%);

10 二维变换

二维:就是指只有x轴和y轴
变换:旋转、平移、缩放、扭曲
以上变换,改的都是同一个属性:transform
旋转:rotate
平移:translate
缩放:scale
扭曲:skew

li:nth-child(1):hover {

        /* 传入角度,正为顺时针旋转,负为逆时针旋转 */
         transform: rotate(-45deg);

             /* 
                参数1:x轴方向,值越大越往右,越小越往左
                参数2:y轴方向,值越大越往下,越小越往上
                只写一个只移动x轴
            */
            transform: translate(-500px, 200px);

 /* 传入的是缩放的倍数
                如果只写一个代表宽高都缩放
                参数1:代表宽的缩放(x轴方向)
                参数2:代表高的缩放(y轴方向)
            */
            transform: scale(1.5,0.5);
        }
/* 传入角度 */
            transform: skew(15deg);

多个变换使用空格隔开,先旋转后平移会改变方向

/* 空格隔开,只有改transform的时候是空格隔开 */
transform: translate(500px) rotate(45deg);

11 三维变换

三维变换要给父盒子加一个视距perspective: 600px;这样看起来才会有3d效果

三维旋转,transform:rotateX(45deg) x轴
transform:rotateY(45deg) y轴
transform:rotateZ(45deg) z轴
三维平移
x轴:transform: translateX(200px);
y轴:transform: translateY(200px);
z轴:transform: translateZ(200px);
设置旋转固定点,默认值是center center
trasnform-origin:left top;
开启3D层次显示,默认情况下浏览器没有开启元素的层次显示
transform-style: preserve-3d;

12 animation动画

transition动画的局限:
1.必须要满足一定条件才会触发,无法自动开始
2.不能设置动画播放的次数
animation属性就是一套用来做动画效果的属性,可以自动开始,可以设置动画的次数

1 使用
首先要写一个剧本

@keyframes swimming{
          //from一般不写
            from{}
            to{
          //要变成的样子
                background-position-y: -1386px;
            }
        }

调用
animation: swimming 1s steps(11) infinite;
详解:

参数1:剧本名字
参数2:动画持续时间
参数3:延迟时间
参数4:运动曲线 linear匀速 steps分步骤
参数5:动画次数,默认为1,不要加单位 infinite代表无限次
参数6:默认情况下动画完成后会复原,加一个属性叫forwards就不会复原了
加了代表停在动画结束的最终效果
参数7:默认情况下多次动画的时候,每次动画完成会闪现回最初的样子,如果我希望用动画效果回到最初样子
就加一个属性叫alternate,但是注意回去的那次动画也算一次动画
参数8:是播放还是暂停
running:默认值 播放
paused:暂停
这些参数没有顺序之分,想到哪个就写哪个就行了,后写的时间是延迟时间
*/
animation: bigger 1s .1s linear 3 forwards alternate paused;

13百分比动画

之前的from,to这种动画,它无法达到想先做什么动画,再做什么动画,然后又做什么动画的效果.它只能同时去做某一种动画,这时候需要写百分比动画,先做什么,再做什么,然后做什么

 @keyframes ani2{
            /* 从动画一开始,到动画总时长的百分之50,干下面这件事 */
            /* 从0到百分之40的时间做平移 */
            40%{
                transform: translateX(800px);
            }

            /* 从40%以后到80%用来放大 */
            80%{
                /* 在已经到800的基础再放大 */
                transform: translateX(800px) scale(1.5);
            }

            /* 80%到90%做旋转 */
            90%{
                
                transform: translateX(800px) scale(1.5) rotate(45deg);
            }

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

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,278评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,689评论 0 2
  • CSS参考手册 一、初识CSS3 1.1 CSS是什么 CSS3在CSS2.1的基础上增加了很多强大的新功能。目前...
    没汁帅阅读 3,487评论 1 13
  • 1.CSS3 边框 border-radius CSS属性用来设置边框圆角。当使用一个半径时确定一个圆形;当使用两...
    garble阅读 588评论 0 0
  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 1,540评论 0 6