CSS3新增特性

39 篇文章 0 订阅

目录

CSS概述

CSS3现状

浏览器的私有前缀

新盒模型

  CSS3新增选择器

 属性选择器

CSS3新增的属性选择器

兼容性

常用属性选择器列表:

 结构伪类选择器

css3 新增的结构性伪类

总结child一组与of-type一组的区别

兼容性

​ 

表单相关选择器(状态伪类选择器 ) 

css3新增

兼容性

 常用元素状态、用户行为伪类列表

伪元素选择器

 :before

:after

before与after 兼容性

::placeholder

兼容

​ 

其他选择器

 如何修改复选框或者单选框css样式


CSS概述


CSS3是CSS(层叠样式表)技术的升级版本,最新的 CSS 标准。 在CSS2.1的基础上增加了很多强大的新功能,以帮助开发人员解决一些问题,例如圆角、多背景、透明度、阴影等。 CSS2.1是单一的规范,而CSS3被划分成几个模块组,每个模块组都有自己的规范。这样的好处是整个CSS3的规范发布不会因为某部分而影响其他模块的推进。

CSS3按模块化进行了全新设计,主要的 CSS3 模块:包括:选择器、框模型、背景和边框、文本效果、2D/3D 转换、动画、多列布局、用户界面

CSS3现状

现代浏览器已经实现了相当多的 CSS3 属性,CSS3将完全向后兼容

浏览器的私有前缀

概述:CSS3的浏览器私有属性前缀是一些浏览器生产商经常使用的一种方式,用于对新属性的提前支持,暗示该CSS属性或规则尚未成为W3C标准的一部分。当一个属性成为标准,并且被Firefox、Chrome等浏览器的最新版普遍兼容的时候我们可以去掉前缀。

各个主流浏览器的私有前缀

  • WebKit内核 -webkit- Chrome、Safari

  • Gecko内核 -moz- 火狐浏览器

  • Presto内核 -o- Opera(欧朋)

  • Trident内核 -ms- IE

  • 内核 私有前缀 浏览器

    /* 私有前缀属性 */
            -webkit-transform:translate(100px,100px) ;
            -o-transform:translate(100px,100px) ;
            -ms-transform:translate(100px,100px) ;
            -moz-transform:translate(100px,100px) ;
            /* css3动画 新增的属性 只有高版本浏览器支持  */

            /* 标准属性!! */
            transform: translate(100px,100px);

新盒模型

 /* 不用内减! 浏览器自动内减!! */

            box-sizing: border-box;

/* 传统和模型 一定要内减 % 内减不可能的!!! */

            box-sizing:content-box;

          padding: 0px 30px;

  CSS3新增选择器


 属性选择器

通过元素属性和属性值选择元素

用属性的名字或者是值去挑选元素

 [attr] 匹配的是拥有attr属性的标签

注意:

          (1)属性选择器权重值和类一样 属性选择器= 结构伪类选择器= 类选择器10

          (2)属性值 一定不要包含空格

          (3)用途 属性选择器全局性质的选择器 (公共样式) 一般用于挑一些特征一致的元素

             (位置不连续 性质相同的元素!!!)精灵图 字体图标!!

CSS3新增的属性选择器

  • [attr^=value] 选择指定属性名且属性值【以value开头】的每个元素

  • [attr=value] 选择带有指定属性名且属性值【以value开头】所有元素

  • [attr*=value] 选择指定属性名且属性值【包含value】的每个元素

  • [attr$="value"] 匹配的是拥有attr属性 且值以value字符作为结尾的元素!!

   /* 文本框 */
        input[type="text"]{
            outline:2px solid deeppink;

        }
        /* 单选框 */
        input[type="radio"]{
            opacity: 0;

        }
        /* 复选框 */
        input[type="checkbox"]:checked{
            
        }

 

兼容性

 

常用属性选择器列表:

 结构伪类选择器

通过结构关系选择元素

css3 新增的结构性伪类

:first-child :匹配属于其父元素的第一个子元素的每个元素

:last-child 选择器:匹配属于其父元素的最后一个子元素的每个元素

:nth-child( n ) 选择器:匹配属于其父元素的第 n 个子元素

:nth-last-child( n ) 选择器:匹配属于其元素的倒数第 n 个子元素的每个元素

:first-of-type(n) 选择其父元素的特定类型的首个子元素的每个元素

:last-of-type(n) 选择其父元素的特定类型的最后一个子元素的每个元素。

:nth-of-type(n):选择器匹配属于父元素的特定类型的第n 个子元素。

:nth-last-of-type(n):选择器匹配属于父元素的特定类型的倒数第 n 个子元素的每个元素

  • 说明

    • n 可以是数字、关键词或公式

    • 关键词

      • odd奇数,even偶数 3n 5n

    • 2n 偶数 2n+1奇数

    • -n+i 前i个 后i个

    • max指的是元素总个数 max-i+n+1

总结child一组与of-type一组的区别

  • nth-child强调结构 关系,优先确定是否是父元素的子元素,在其中找第几个

  • nth-of-type强调类型,选择父元素中指定类型中的第几个

兼容性

 

表单相关选择器(状态伪类选择器 ) 

css3新增

  • :enabled

    • 作用:选择器匹配每个已启用的元素

    • 主要适用于:表单元素

  • :disabled

    • 作用:选择器匹配每个被禁用的元素

    • 主要适用于:表单元素

  • :checked

    • 作用:选择器匹配每个已被选中的 input 元素

    • 适用于:只用于单选按钮和复选框

  • :focus 匹配的是当前被聚焦的表单元素

  • ::placeholder 匹配的是默认的提示文本

兼容性

 常用元素状态、用户行为伪类列表

 

伪元素选择器

 :before

  • 作用:在元素内部最开始位置生成内容

  • 语法:元素:before{content:"内容"}

:after

  • 作用:在元素内部最后位置生成内容

  • 语法:元素:before{content:"内容"}

注:必须定义content属性

before与after 兼容性

 

::placeholder

  • 设置对象文字占位符的样式

  • ::placeholder 伪元素用于控制表单输入框占位符的外观,它允许开发者/设计师改变文字占位符的样式,默认的文字占位符为浅灰色。

注:除了Firefox是 ::[prefix]placeholder,其他浏览器都是使用 ::[prefix]input-placeholder

 

<input type="text" placeholder="占位符" />

input::-webkit-input-placeholder {
	color: #999;
}
input:-ms-input-placeholder { // IE10+
	color: #999;
}
input:-moz-placeholder { // Firefox4-18
	color: #999;
}
input::-moz-placeholder { // Firefox19+
	color: #999;
}

兼容

 

  • IE10-11、firefox低版本支持前缀写法

其他选择器

         (1) :not()  除了。。。

         (2) :empty {} 匹配的是空元素(没有内容的元素)

         (3) ::selection 匹配的是鼠标选中的文本!!!

        (4):root 匹配的是Html根元素(了解!!!)

         (5) :after :before 单冒号 ie8-支持  ::after ::before ie9+支持

         (6) :target 选中被激活的锚点!!!

 如何修改复选框或者单选框css样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            padding: 0;
            margin: 0;
            box-sizing: border-box;
        }
        div {
            position: relative;
            margin: 100px 0px 0px 100px;
            width: 300px;
            height: 300px;
            border:1px solid #ccc;
        }
        input {
            position: absolute;
            left: 50px;
            top: 50px;
            width: 50px;
            height: 50px;
            z-index: 6;
            /* 看不见 但是我还能点!! */
            opacity: 0;
        }
        span {
            position: absolute;
            left: 50px;
            top: 50px;
            z-index: 4;
            width: 50px;
            height: 50px;
            background-color: red;
            border-radius: 50%;
        }
        input:checked + span {
            background-color: yellowgreen;
        }
    </style>
</head>
<body>
    <div>
        <label for="">男: 
        </label>
        <input type="radio">
        <!-- 单选按钮效果 样式功能-->
        <span></span>
    </div>
   
</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值