CSS3新样式

简介: 一、transitiontransition是复合属性,可以改变元素数值类的属性,例如宽高、背景颜色等。 一个元素从一个样式过渡到另外一个样式需要的时间,transition可以设置过渡的时间速度等。

一、transition

transition是复合属性,可以改变元素数值类的属性,例如宽高、背景颜色等。
一个元素从一个样式过渡到另外一个样式需要的时间,transition可以设置过渡的时间速度等。
如下代码,当鼠标移入div1元素时,会从#div1的样式变到#div1:hover的样式。

<style>
    #div1{
        width:100px;
        height:100px;
        background:red;
        position:absolute;
        /*transition-duration:1s;过程时间
        transition-property:left;
        transition-timing-function:ease-in-out;改变速度
        transition-delay:1s;延时1s*/
        transition:1s width,2s 0.5s left,3s 2.5s background;
        left:10px;
        top:10px;


    }
    #div1:hover{
        width:200px;
        height:200px;
        left:100px;
        background:blue;
    }
</style>

transition-duration:1s;设置样式变化经历的时间(1秒);
transition-property:left;只改变某个属性的值(left);
transition-timing-function:ease-in-out;改变变化速度;
transition-delay:1s;变化延时时间(1秒)。
还可以把这些属性写在一起:
transition:1s width,2s 0.5s left,3s 2.5s background;
宽度变化经历1s;left 0.5s后开始变化,经历2s;背景2.5s后开始变化,经历3s。
补充:transform:rotate(720deg);旋转720度

二、border-radius圆角弧度

border-radius的写法:1-4个数字/1-4个数字 ;
1、“/”左右两边都可以写1-4个数字,并且左右两边的数字个数可以不同。
2、左边代表水平方向,右边代表垂直方向,没有“/”则水平垂直的弧度都一样,某个角的实际效果由左右两边共同决定。
3、某一边写1-4数字的效果为(左右两边同理):
4个值:没个值按顺讯分别控制左上,右上,右下,左下(顺时针方向)四个方向。
3个值:第一个值控制左上,第二个值控制右上和左下,第三个值控制右下 ;
2个值: 对角弧度一样,第一个值控制左上和右下,第二个值控制右上和左下。
1个值:4个角的弧度一样。
总结:4个值时,从左上开始顺时针每个值控制一个方向,每少一个值,原来对应位置的值就和对角线一样,一个值时当然全部一样。
4、弧度的值可以是像素px,也可以是百分百(表示原来宽或高的百分之几)。

三、box-shadow和text-shadow阴影效果

1、box-shadow和text-shadow可以设置多组值,每组可以代表不同方向的阴影,每组可以有2-5个值。
2、每组的5个值分别表示:水平偏移、垂直偏移、模糊半径、阴影的尺寸、阴影的颜色。
3、其中水平偏移和垂直偏移不可少,如果没有偏移也要设置为0;如果带像素单位的值少于2个则没有效果。
4、最后一个值代表颜色,用单位和其他值区分,颜色写到前面也没有效果,当颜色没有指定时,默认阴影为黑色
5、前面4个单位为px的值,每少些一个,后面的值就为0;写三个时代表水平偏移、垂直偏移、模糊半径;写两个时代表水平偏移、垂直偏移;
6、偏移值以右下为证,当水平偏移、垂直偏移为负数时,分别代表向左和向上偏移。

四、选择器

以下是未加入选择器时的代码;

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            #div1 p,#div1 div{
                height:30px;
                border:1px solid red
            }
        </style>
    </head>
    <body>
        <div id="div1">
            <p>123</p>
            <p>123</p>
            <div>456</div>
            <p>123</p>
            <p>123</p>
            <p>123</p>
            <p>123</p>      
        </div>
    </body>
</html>

结果图如下:
这里写图片描述
下面的代码都是加入到style中的,改变style后会给出相应的效果图;

1、nth-child() 用于父级下选择某一个元素。

a、括号内可以是自然数;表示查找第几个子元素,并改变该元素的样式,如果该元素不是声明的元素则不改变;

#div1 p:nth-child(3){
    background:blue;
    height: 50px;
}
#div1 p:nth-child(5){
    background:blue;
    height: 50px;
}

这里写图片描述
这里#div1 p:nth-child(3)先选中第三个元素<div>456</div>,但是由于不是声明的p元素,所以无效,不改变样式;而第五个元素符合条件,改变了样式。

b、nth-child()括号内的参数可以带变量n,n从0开始自动往上增加;

#div1 p:nth-child(2n+1){
    background:blue;
    height: 50px;
}

这里写图片描述
2n+1选中的有第1、3、5、7;由于第个不是声明的元素所以无效;

2、nth-of-type()在父级下指定类型查找元素

nth-of-type在查找的时候就已经指定类型了,对nth-of-type来说不是指定类型的元素的不编号查找,就当它们不存在;括号里参数的值和nth-child一样。

#div1 p:nth-of-type(3){
    background:red;
}
#div1 p:nth-of-type(3n){
    background:red;
}

这里写图片描述
nth-of-type(3)查找父级下的第三个p元素,实际上父级下的第三个元素是<div>456</div>,但不是P元素,所以不给它编号,直接跳过忽略,父级的第四个元素才是要找的第三个p元素,所以改变了样式。
nth-child是不管什么元素全部编号查出符合参数值的元素,再看看是否为声明元素,是则该编样式,不是则不改变。
nth-of-type是先筛选出声明的元素,再编号,再查出符合参数值的元素,然后改变样式。

五、渐变

以下是未加入渐变效果的代码;下面加入渐变效果的代码都是加在#div1的样式中的,加入后会给出效果图;

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <style>
            #div1{
                width:100px;
                height:100px;
                margin: 50px auto;
                border:1px solid red;
                }
        </style>
    </head>
    <body>
        <div id="div1"></div>
    </body>
</html>

效果图就是一个框,什么都没有:
这里写图片描述

radial-gradient()径向渐变:以弧度的形式扩散;

1、第一个参数可以写方向(也可以不写方向,线性渐变方向默认top从上到下,径向渐变默认在中心),径向渐变可以以像素为单位设置坐标的偏移量,后面的参数全部都是设置颜色的,每个参数之间用“,”隔开,颜色参数可以无数个。
2、当第一个参数写了方向时,要声明浏览器内核,否则会有兼容问题;
以下是主要浏览器的内核:
谷歌 -webkit-
火狐 -moz-
opera -o-
ie -ms-
例如要兼容谷歌浏览器要把linear-gradient改成-webkit-linear-gradient;
好了,写第一个样式来看看效果:background:radial-gradient(red,blue ,green)
这里写图片描述
默认渐变中心就是在元素的中心,每个颜色的空间默认平均分配。
第二个例子:background:-webkit-radial-gradient(30px 30px, red,blue ,green)
这里写图片描述
可以看到中心偏移了
第三个例子:
background:-webkit-radial-gradient(bottom,red,blue ,green)
这里写图片描述
中心在底部。

linear-gradient()线性渐变

线行渐变方向默认top从上到下,方向参数可以用度数deg来确定。
第四个例子:background:linear-gradient(red ,blue ,green);
这里写图片描述
第五个例子:background:-webkit-linear-gradient(30deg,red ,blue ,blue ,green);
这里写图片描述
第六个例子:background:-webkit-linear-gradient(90deg,red ,blue ,green);
这里写图片描述
倾斜90度就和background:-webkit-linear-gradient(bottom,red ,blue ,green);是一样的
3、颜色参数可以分为两个部分,第一部分为颜色,第二部分为颜色从哪里开始渐变,是个百分比值,表示占元素宽高的百分之几;

第七个例子:background:-webkit-linear-gradient(left,red 10%,blue 50%,green 50%);
这里写图片描述
前10%都是红色的,从10%-50%开始向蓝色渐变,50%-50%从蓝色到绿色渐变,由于50%=50%,所以这里蓝色到绿色没有渐变空间,直接变色。

六、css 2D

1、transform属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。
在操作元素的样式里加上transition:1s;然后#元素id:hover{transform: 方法();}就可以实现单鼠标移入该元素时产生动画的效果了。下面说说transform的方法。
rotate(n deg)旋转n度。
skew(x-angle,y-angle)定义沿着 X 和 Y 轴的 2D 倾斜转换。
skewX(angle) 定义沿着 X 轴的 2D 倾斜转换。
skewY(angle)定义沿着 Y 轴的 2D 倾斜转换。
scale(angle) 整体扩大 取值 正数 小数 负数 比原来的大小扩大几倍 为负数时先缩小到没有在扩大到负数的绝对值倍
scaleX(angle) 左右方向扩大
scaleY(angle) 垂直方向扩大
translate 改变位置 默认向右
translateX 横向位置 左负 右正
translateY 纵向位置 上负 下正

七、css 3D

要实现3D效果必须在相应元素创建3D环境和设置景深(3D效果是在多远的距离看到的);

/*创建3D 环境*/
transform-style: preserve-3d;
perspective:1500px;/*景深*/

下面介绍一些属性和方法的功能:
rotate旋转;
transform-origin 设置旋转基点;

补充:CSS3的特性还有很多,不可能全部在这里列出来,我只是把目前学到的内容尽量的写了进来,以后继续学到其他特性也会写到这里进来。想学习其他特性的同学可以去这里看看,深入了解 CSS3 新特性;写得真心不错。

目录
相关文章
|
前端开发
如何设置 CSS 盒子模型的边框样式?
CSS盒子模型的边框样式可以通过`border`属性设置,包括边框宽度、样式和颜色。例如:`border: 2px solid red;` 设置了2像素宽的红色实线边框。也可分别设置四边,如`border-top`、`border-right`等。
|
2月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
伪类:伪类这个叫法源自于它们跟类相似,但实际上并没有类会附加到标记中的标签上。 伪类分为两种(以及新增的伪类选择器): UI伪类:会在HTML元素处于某种状态时(例如:鼠标指针位于连接上),为该元素应用CSS样式。 :hover 结构化伪类:会在标记中存在某种结构上的关系时 例如: 某元素是一组元素中的第一个或最后一个,为该元素应用CSS样式。 :not和:target(CSS3新增的两个特殊的伪类选择器)
196 1
|
2月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
继承 我们的CSS中很多的属性也是可以继承的,其中相当一部分是跟文字的相关的,比如说颜色、字体、字号。 当然还有一部分是不能继承的。 例如边框、内外边距。 层叠 层叠是CSS的核心机制。 层叠的工作机制: 当元素的同一个样式属性有多种样式值的时候,CSS就是靠层叠机制来决定最终应用哪种样式。 层叠规则: 层叠规则一:找到应用给每个元素和属性的声明。 说明:浏览器在加载每个页面时,都会据此查找到每条CSS规则, 并标识出所有受到影响的HTML元素。
123 1
|
8月前
|
前端开发
|
JavaScript 前端开发
jQuery和CSS3斑马线样式range滑块特效
jQuery和CSS3斑马线样式range滑块特效
|
前端开发 JavaScript UED
|
前端开发 JavaScript
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
1614 1
|
编解码 前端开发 JavaScript
使用 CSS 打印样式为 Web 页面设置专业的打印机效果
使用 CSS 打印样式为 Web 页面设置专业的打印机效果
324 2
|
缓存 前端开发
css内部样式和外部样式的性能比较和使用规范
CSS 的内部样式和外部样式各有优缺点,适用于不同场景。
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
714 1

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    249
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    233
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    185
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    139
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    293
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    419
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    182
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    123
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    196
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    271