CSS3学习

2018-01-12  本文已影响0人  我是胡汉三
//首先CSS3的简介,过渡。
-webkit-transition: all 2s;/*低版本chrome和safie*/
            -moz-transition: all 2s;/*低版本火狐*/
            -o-transition: all 2s;/*低版本欧朋*/

            /*JS里面不支持 -- ,横杠去掉,字母变大写MoZtransition*/


//CSS3属性选择器
//CSS3新增自定义属性,aa是自定义属性。也可以替换成class

p[aa]//选中p元素并且类名为aa的元素

p[aa='k']//P元素类名为aa,类值为kk

p[a~='old']//指定类名,类值是一个词列表,且包含old

p[aa^='g']//类名开头为g

p[aa$='d']//类名结束为d

p[aa*='n']//属性只要包含n字符就会被选中

p[aa|='n']//类名是n||类名是 n-XX格式
//CSS3结构选择器
//even偶数,add奇数。也可以用2n来表示偶数。选择器是从0开始计数

p:nth-child(i)//找到p标签第i个子元素,并且元素类型为p

div>p:nth-of-type(odd)//计算方式为同类型

p:nth-last-child(1)//last

p:first-child{//=== nth-child(1)
 p:last-child

p:first-of-type//=== nth-child(1)
h1:last-of-type

p:empty//p元素不包括任何子节点,包括文本节点

h3:only-of-type//h3父元素仅有一个子节点,且类型为h3.

h4:only-child//h4的父元素仅为一个子节点,且类型为h4.
//下面是伪类和伪元素
//这段代码很奇怪,现在不理解

        div{
            width: 200px;
            height: 200px;
            background-color: black;
            color: whitesmoke;
            font-size: 66px;
            line-height: 200px;
            text-align: center;
            display: none;

        }
        div:target{/*target代表点击a的时候,上面产生的哈希值*//*表示突出显示活动的 HTML 锚*/
            display: block;
        }

<a href="#div1">div1</a>
<a href="#div2">div2</a>
<a href="#div3">div3</a>
<div id="div1">div1</div>
<div id="div2">div2</div>
<div id="div3">div3</div>
input:enabled//表示选中可输入状态的元素

input:disabled//表示选中不可输入状态的元素

input:checked//表示选中状态的元素

p~h1//选中p元素后面的h1[同级元素]

p:first-letter//选中p元素内第一个文字

P:first-line//选中p元素内第一行文字

p::selection/按下鼠标选择文字的时候会激活。使用的属性只有bg与color

p:before{//p文字最前面
    content:'秒味';
    background-color:red;
    border:1px solid #000;

}

p:after//p元素最后面

h1:not(.h2)//选中!(class==='h2')的h2元素
//还有rgba属性
direction:rtl; ||ltr;//设置文字排版
unicode-bidi://设置文字排列方向
box-shadow: 水平偏移 垂直偏移 模糊度 阴影扩展 阴影颜色 内外阴影;
/*box-shadow: 10px 10px 10px 10px skyblue inset;*/

text-shadow: 0px 2px 10px red,5px 5px 10px green;
            /*左右偏移量 上下偏移量 模糊距离 模糊颜色*/
-webkit-text-stroke:2px red ;//文字描边,只有webkit浏览器才支持
/*文本强制不换行,默认是换行的*/
            white-space: nowrap;
            /*超出边框隐藏*/
            overflow: hidden;
            /*文字溢出显示省略号*/
            /*这个是省略的意思*/
            text-overflow: ellipsis;

盒模型响应式布局

box-sizing:border-box;

background: -webkit-linear-gradient(right,red 0, blue 100%);//渐变属性

/*这个是倒影属性  目前只支持webkit内核的浏览器*/
            /*第一个参数有above|below|left|right 第二个参数是两者之间的距离*/
            -webkit-box-reflect: right 10px -webkit-linear-gradient(bottom,rgba(0,0,0,1) 0, rgba(0,0,0,0) 100%);

//-webkit-box-reflect:方向 倒影间隔 倒影样式设置
//结合背景图像生成可拖拽文档
resize:both;属性规定可由用户调整元素大小的属性
overflow: auto;//需要两条结合在一起使用

新的UI方案课件

/*圆角半径*/
            border-radius: 10px 20px;/*指的是对角*/
            /*
            如果是一个值,那么 top-left、top-right、bottom-right、bottom-left 四个值相等。

如果是两个值,那么 top-left和bottom-right相等,为第一个值,top-right和bottom-left值相等,为第二个值。

如果是三个值,那么第一个值是设置top-left,而第二个值是 top-right 和 bottom-left 并且他们会相等,第三个值是设置 bottom-right。

如果是四个值,那么第一个值是设置 top-left, 而第二个值是 top-right 第三个值 bottom-right 第四个值是设置 bottom-left
            */

/*x轴半径,y轴半径。比较常见的椭圆*/
        border-radius: 100px/150px;
            //边框背景
            width: 200px;
            height: 200px;
            border: 20px solid #000;
            /*图片地址,
             border-image-slice: 20 20 20 20; //指定边框图像上,右,下,左内测偏移量。作用就是把边框图像切成9个区域:4个角、4边区域和一个中间部位,前辈们都谦虚称作9宫格,但是我悄悄跟你说哦

            */

            /*对于这个元素来说,其实也是分为了九个格子。而图片也是分为了九个格子*/
            border-image: url("../border.png");
            border-image-slice: 27 27 27 27 ;
            border-image-width: 20px;
            /*border-image-repeat: repeat;*/

            /*stretch 拉伸
            repeat 重复
            round 平铺
            */

            /*
            三种包括
            border-image-source: ; //引入图片
            border-image-slice: ; // 切割图片
            border-image-width: ; //边框背景宽度
            border-image-repeat: repeat; //图片排列方式


            */


            /*
            border-image-slice: 27;指定了上,右,下,左图片内容的偏移量。(偏移的是图片)
            关于这个元素的详尽解释: 他的作用是将边框分割为九宫格的形式,而图片也是被分为了九宫格。然后就匹配啦
            */


/*多边框颜色只支持在火狐下面实现*/
            -moz-border-left-colors: red pink green;
            /*线性渐变*/
            background-image: -webkit-linear-gradient(left ,pink 0%,red 100%);
            // -webkit-linear-gradient(渐变方向[方向||deg],pink 0%,red 100%);
            background-image: -webkit-linear-gradient(left ,pink 0%,red 100%);
background-image:-webkit-linear-gradient(left,red 0%,red 30%,green 30%,green 70%,blue 70%);//设置无偏差的颜色
            background-image: -webkit-repeating-linear-gradient(left,red 0px,blue 30px) ;//表示颜色平铺渐变
颜色平铺渐变
//还有多重背景,加逗号就可以啦
            /*ellipse表示椭圆*/
            /*circle表示圆*/
background: -webkit-radial-gradient(/*50px*/ top,circle,red,black);//径向渐变
background: -webkit-radial-gradient(50px 100px,red,black);//径向渐变
//设置背景图的大小。cover:width&&height都铺满,contain:只满足一个
background-size: 100px 200px;//cover[覆盖],contain[包含]
//背景基点设置。
background-origin: content-box;//参数:padding-box||content-box||border-box;
//背景裁切
background-clip: border-box;//设置从哪个地方开始显示,区域的都变成了白色
其中,有一个非常好玩的属性
-webkit-background-clip:text;//文字后面显示background,其余是白色[webkit,firefox,opera都已支持]

//此外还有一个遮罩效果
-webkit-mask: url(../mask.png) no-repeat;//设置背景图片都取反 n== 透明||不透明。使用mast的图片===(!n);//主流浏览器已实现
遮罩效果

过渡和2D变换

transition:过渡属性 过渡时长 运动速度 延迟时间;
transition:width 2s, height 2s,background-color 5s;//经常与hover连用
**可以使用贝塞尔曲线**

//过渡没完成一条属性,就会触发 一次事件transition

    function addEnd(obj,fn){
        /*发生在过度完成之后*/
        obj.addEventListener('WebkitTransitionEnd',fn,false);/*在chrome下*/
        obj.addEventListener('transitionend',fn,false);/*在标准浏览器*/
    }
//2D变换
transform: rotateY(300deg);//rotateX||rotateY||rotateZ//旋转

transform: skew(30deg,90deg);//表示斜切 (X,Y)。父元素切过来,子元素还需要再切过去。

transform: scale(1.3,0.5);//X轴与Y轴缩放

transform: translate(100px,200px);//位移(X轴,Y轴,3D变换中还有Z轴)

transform-origin:0px 100px;//这个是变化基点。参数可以是方向和数值

-webkit-transform: matrix(1,0,0,1,100,200);//martix

3D变换笔记

-webkit-transform-style: preserve-3d;//建立3D空间
-webkit-perspective: 800px;//建立景深

perspective-origin: center center;//从哪个方向观看。参数是数值或者方向[X轴,Y轴]
/*运动总时间 延迟时间  关键帧的名字 运行状态 重复次数 */
            /**/
            animation: 2s 1s move ease-in infinite;

            animation-play-state: paused;//设置播放模式running

            animation-direction:alternate;/*alternate 倒序播放。[偶数次是倒回来]。normal是正常播放*/

          animation-fill-mode
        none: 不做任何改变
            forwards: 让元素结束状态保持动画最后一帧的样式
            backwards: 让元素等待状态的时候显示动画第一帧的样式
            both: 让元素等待状态显示动画第一帧的样式, 让元素结束状态保持动画最后一帧的样式

//动画执行结束会触发一个动画事件

function addEnd(obj,fn)
    {
        obj.addEventListener('webkitAnimationEnd',fn, false);
        obj.addEventListener('animationend',fn, false);
    }


a:link{*/
            /*color: green;*/
        /*}*/
        /*a:visited{*/
            /*color: green;*/
        /*}*/
        a:hover{
            color: orange;
        }
        a:active{
            color: pink;
        }


//江哥

/*a:link{*/
            /*color: green;*/
        /*}*/
        /*a:visited{*/
            /*color: green;*/
        /*}*/
        a:hover{
            color: orange;
        }
        a:active{
            color: pink;
        }

transition:过渡属性 过渡时长 运动速度 延迟时间;

transform:rotate(45deg);//代表旋转 translate(100px, 0px);//代表平移 scale(1.5,0.5)//代表缩放 (X,Y)


transform-origin: 200px 0px; //表示形变中心点

perspective: 500px;

box-shadow: 水平偏移 垂直偏移 模糊度 阴影扩展 阴影颜色 内外阴影;
/*box-shadow: 10px 10px 10px 10px skyblue inset;*/

animation
animation-fill-mode
        none: 不做任何改变
            forwards: 让元素结束状态保持动画最后一帧的样式
            backwards: 让元素等待状态的时候显示动画第一帧的样式
            both: 让元素等待状态显示动画第一帧的样式, 让元素结束状态保持动画最后一帧的样式

背景尺寸属性:background-size: 具体px 与% contain宽或者高填满内容  cover高和宽分别填满内容


background-origin: padding-box;border-box;content-box;
background-image: url("images/animal1.png"),url("images/animal2.png"),url("images/animal3.png");
上一篇下一篇

猜你喜欢

热点阅读