css

盒子阴影

  • div的阴影

    • box-shadow:左右,上下,模糊程度,颜色;
      
      • 第一个值是控制的是左右 ,负值是往左,正值是往右
      • 第二个值是控制上下 ,赋值向上,正值向下
    • box-shadow: 15px 15px 5px rgba(0,0,0,0.5);
      

渐变

  • **线性渐变 **

    • background: linear-gradient(渐变方向,颜色1 占比例%,颜色2 占比例%)
      
    • background: linear-gradient(to right, #565c5c, #e6e6e6 100%);
      
      • to right 渐变的方向

      • **颜色 50% 这个颜色占整个div的50% **

      • 背景与渐变

        • 背景重复问题

          • background-repeat:no-repeat /*背景不重复*/
            background-size:100% | cover /*调整图片大小*/
            background-position:center center /*背景图的位置*/
            
          • 全屏缩放背景图

          • body {
                position: relative;
                width: 100%;
                height: 100vh;
                margin: auto;
                background: url(./000.jpg) no-repeat 50% 50%;
                top: 0;
                display: table;
                background-size: cover;
                overflow: hidden;
            }
            

字体样式font

    font-size: 50px;        /*字体大小*/
    line-height: 30px;      /*行高*/
    font-family: 幼圆,黑体;     /*字体类型:如果没有幼圆就显示黑体,没有黑体就显示默认*/
    font-style: italic ;        /*italic表示斜体,normal表示不倾斜*/
    font-weight: bold;  /*粗体*/
                {
                100 ,200 ,300 ,400 ,500 ,600    
                }
    font-variant: small-caps;  /*小写变大写*/

line-height行高

利用软件进行量取行高的方法

20170808_2220.png

**为了能让他更好的居中,一般在设置行高,字号,一般是偶数,可保证他们 的差一定是偶数,就能够被2整除 **

  1. 多行文本的垂直居中vertical-align: middle; 属性
    1. vertical-align属性可用于指定行内元素(inline)、行内块元素(inline-block)、表格的单元格(table-cell)的垂直对齐方式。主要是用于图片、表格、文本的对齐。
vertical-align: middle; /*指定行级元素的垂直对齐方式。*/

主要是用在图片,表格,文本对齐

文本属性

  1. letter-spacing: 0.5cm ; 单个字母之间的间距
  2. word-spacing: 1cm; 单词之间的间距
  3. text-transform: lowercase; 单词字体大小写。uppercase大写、lowercase小写

模糊filter

  1. filter: none;去掉模糊
  2. filter: grayscale(80%);将图片转换成灰度图像
filter: grayscale(80%);
  1. filter: blur(5px);图片模糊度
  2. filter: brightness(40%);线性乘法
    1. 可以让图片看起来更亮或者更暗

背景 background

  1. background-color:背景颜色
  2. background-image:url() 设置背景图片
  3. background-size: ()px 设置背景图的尺寸
    /* 宽、高的具体数值 */
    background-size: 500px 500px;

    /* 宽高的百分比(相对于容器的大小) */
    background-size: 50% 50%;   // 如果两个属性值相同,可以简写成:background-size: 50%;

    background-size: 100% auto;  //这个属性可以自己试验一下。

    /* cover:图片始终填充满容器,且保证长宽比不变。图片如果有超出部分,则超出部分会被隐藏。 */
    background-size: cover;

    /* contain:将图片完整地显示在容器中,且保证长宽比不变。可能会导致容器的部分区域为空白。  */
    background-size: contain;
  • !!注意,在这里设置背景图片这条属性,可以综合其他是属性值一起使用,写在一条上例如
background-image:url(images/01.png) no-repeat center center / 30px 30px;
  • 解释

    • 上面的代码里面包含了图片是否平铺background-repeat: no-repeat;

    • 还有就是背景图的位置 background-position:center center他的属性值可以是像素值,正常值是居中(center)左(left) 上(top) 下(bottom) 右边 (right) ,这个属性很重要哦,在制作精灵图的时候需要,在制作二倍精灵图,这个属性很重要,是设置图片在什么位置显示,所以要牢记这个属性

      描述左右的词:left、center、right

      描述上下的词:top 、center、bottom

  1. background-attachment 属性,设置背景图是否固定,不随着浏览器上下滚动

    1. 属性值fixed,背景图固定不在随着浏览器滚动
    2. scroll,与上一个属性值相反,为默认值;
  2. background-image这个 属性值也可以设置背景渐变

    1. 属性值:linear-gradient(方向,起始颜色,终止颜色)
    2. 方向可以是:to leftto rightto topto bottom、角度30deg(指的是顺时针方向30°).
/* 不写方向,表示默认的方向是:从上往下 */
/* 0%的位置开始出现黄色,40%的位置开始出现红色的过度。70%的位置开始出现绿色的过度,100%的位置开始出现蓝色 */
        div{
            background-image: linear-gradient(to right,
            yellow 0%,
            red 40%,
            green 70%,
            blue 100%);

        }

过渡与动画

本文主要内容:

  • 过渡:transition

  • 2D 转换 transform

  • 3D 转换 transform

  • 动画:animation

过渡:transition

transition 包括以下属性:

  • transition-property: all; 如果希望所有的属性都发生过渡,就使用all。

  • transition-duration: 1s; 过渡的持续时间。

  • transition-timing-function: linear; 运动曲线。属性值可以是:

    • linear 线性
    • ease 减速
    • ease-in 加速
    • ease-out 减速
    • ease-in-out 先加速后减速
  • transition-delay: 1s; 过渡延迟。多长时间后再执行这个过渡动画。

上面的四个属性也可以写成综合属性

    transition: 让哪些属性进行过度 过渡的持续时间 运动曲线 延迟时间;

    transition: all 3s linear 0s;

转换是 CSS3 中具有颠覆性的一个特征,可以实现元素的位移、旋转、变形、缩放,甚至支持矩阵方式。

转换再配合过渡和动画,可以取代大量早期只能靠 Flash 才可以实现的效果。

在 CSS3 当中,通过 transform 转换来实现 2D 转换或者 3D 转换。

  • 2D转换包括:缩放、移动、旋转。

我们依次来讲解。

1、缩放:scale

格式:

    transform: scale(x, y);

    transform: scale(2, 0.5);

参数解释: x:表示水平方向的缩放倍数。y:表示垂直方向的缩放倍数。如果只写一个值就是等比例缩放。

取值:大于1表示放大,小于1表示缩小。不能为百分比。

2、位移:translate

格式:

    transform: translate(水平位移, 垂直位移);

    transform: translate(-50%, -50%);

参数解释:

  • 参数为百分比,相对于自身移动。
  • 正值:向右和向下。 负值:向左和向上。如果只写一个值,则表示水平移动。

应用:让绝对定位中的盒子在父亲里居中

我们知道,如果想让一个标准流中的盒子在父亲里居中(水平方向看),可以将其设置margin: 0 auto属性。

可如果盒子是绝对定位的,此时已经脱标了,如果还想让其居中(位于父亲的正中间),可以这样做:

    div {
        width: 600px;
        height: 60px;
        position: absolute;  绝对定位的盒子
        left: 50%;           首先,让左边线居中
        top: 0;
        margin-left: -300px;  然后,向左移动宽度(600px)的一半
    }

现在,我们还可以利用偏移 translate 来做,这也是比较推荐的写法:

    div {
        width: 600px;
        height: 60px;
        background-color: red;
        position: absolute;       绝对定位的盒子
        left: 50%;               首先,让左边线居中
        top: 0;
        transform: translate(-50%);    然后,利用translate,往左走自己宽度的一半【推荐写法】
    }

3、旋转:rotate

格式:

    transform: rotate(角度);

    transform: rotate(45deg);

参数解释:正值 顺时针;负值:逆时针。

3D 转换

1、旋转:rotateX、rotateY、rotateZ

3D坐标系(左手坐标系)
伸出左手,让拇指和食指成“L”形,大拇指向右,食指向上,中指指向前方。拇指、食指和中指分别代表X、Y、Z轴的正方向,这样我们就建立了一个左手坐标系。

浏览器的这个平面,是X轴、Y轴;垂直于浏览器的平面,是Z轴。

旋转的方向:(左手法则)

左手握住旋转轴,竖起拇指指向旋转轴的正方向,正向就是其余手指卷曲的方向

从上面这句话,我们也能看出:所有的3d旋转,对着正方向去看,都是顺时针旋转。

格式:

    transform: rotateX(360deg);    //绕 X 轴旋转360度

    transform: rotateY(360deg);    //绕 Y 轴旋转360度

    transform: rotateZ(360deg);    //绕 Z 轴旋转360度

2、移动:translateX、translateY、translateZ

格式:

    transform: translateX(100px);    //沿着 X 轴移动

    transform: translateY(360px);    //沿着 Y 轴移动

    transform: translateZ(360px);    //沿着 Z 轴移动

3、透视:perspective

电脑显示屏是一个 2D 平面,图像之所以具有立体感(3D效果),其实只是一种视觉呈现,通过透视可以实现此目的。

透视可以将一个2D平面,在转换的过程当中,呈现3D效果。但仅仅只是视觉呈现出 3d 效果,并不是正真的3d。

格式有两种写法:

  • 作为一个属性,设置给父元素,作用于所有3D转换的子元素

  • 作为 transform 属性的一个值,做用于元素自身。

格式举例:

perspective: 500px;

4、3D呈现(transform-style)

3D元素构建是指某个图形是由多个元素构成的,可以给这些元素的父元素设置transform-style: preserve-3d来使其变成一个真正的3D图形。属性值可以如下:

    transform-style: preserve-3d;     /* 让 子盒子 位于三维空间里 */

    transform-style: flat;            /* 让子盒子位于此元素所在的平面内(子盒子被扁平化) */

动画

动画是CSS3中具有颠覆性的特征,可通过设置多个节点 来精确控制一个或一组动画,常用来实现复杂的动画效果。

1、定义动画的步骤

(1)通过@keyframes定义动画;

(2)将这段动画通过百分比,分割成多个节点;然后各节点中分别定义各属性;

(3)在指定元素里,通过 animation 属性调用动画。

之前,我们在 js 中定义一个函数的时候,是先定义,再调用:

    js 定义函数:
        function fun(){ 函数体 }

     调用:
        fun();

同样,我们在 CSS3 中定义动画的时候,也是先定义,再调用

    定义动画:
        @keyframes 动画名{
            from{ 初始状态 }
            to{ 结束状态 }
        }

     调用:
      animation: 动画名称 持续时间;

其中,animation属性的格式如下:

            animation: 定义的动画名称 持续时间  执行次数  是否反向  运动曲线 延迟执行。(infinite 表示无限次)

            animation: move1 1s  alternate linear 3;

            animation: move2 4s;

2、动画属性

我们刚刚在调用动画时,animation属性的格式如下:

animation属性的格式如下:

            animation: 定义的动画名称  持续时间  执行次数  是否反向  运动曲线 延迟执行。(infinite 表示无限次)

            animation: move1 1s  alternate linear 3;

            animation: move2 4s;

可以看出,这里的 animation 是综合属性,接下来,我们把这个综合属性拆分看看。

(1)动画名称:

    animation-name: move;

(2)执行一次动画的持续时间:

    animation-duration: 4s;

备注:上面两个属性,是必选项,且顺序固定。

(3)动画的执行次数:

    animation-iteration-count: 1;       //iteration的含义表示迭代

属性值infinite表示无数次。

(3)动画的方向:

    animation-direction: alternate;

属性值:normal 正常,alternate 反向。

(4)动画延迟执行:

    animation-delay: 1s;

(5)设置动画结束时,盒子的状态:

    animation-fill-mode: forwards;

属性值: forwards:保持动画结束后的状态(默认), backwards:动画结束后回到最初的状态。

(6)运动曲线:

    animation-timing-function: ease-in;

属性值可以是:linear ease-in-out 。

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

推荐阅读更多精彩内容

  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 1,610评论 0 7
  • 欢迎访问我的博客https://qqqww.com/,祝所有码农同胞们早日走上人生巅峰,迎娶白富美~~ 详细请移步...
    这里王工头阅读 1,581评论 0 16
  • 盒子模型(CSS重点) 其实,CSS就三个大模块: 盒子模型 、 浮动 、 定位,其余的都是细节。要求这三部分,...
    xlystar阅读 1,494评论 0 1
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,297评论 2 66
  • 课程目标: 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握C...
    兰为鹏阅读 521评论 0 1