简单了解CSS3的all属性

一、兼容性

一些CSS文章,或者CSS文档,兼容性什么的都是放在最后。

又不是什么见不得人的事情,来,直接开篇就亮刺刀。

兼容性还行, 除了IE不支持,其他浏览器基本上都绿油油,目前自娱自乐,内网项目什么的都是可以用用的。

二、all是干嘛用的

all属性实际上是所有CSS属性的缩写,表示,所有的CSS属性都怎样怎样,但是,不包括unicode-bidi和direction这两个CSS属性。

为什么会有这个CSS属性呢?

我们可能知道,有些CSS属性值基本上所有CSS属性都有,比方说继承inherit!

我们CSS reset输入框的时候,是不是有类似这样的代码(实际可能是具体值,作用类似):

input, textarea {
    color: inherit;
    font-size: inherit;
    font-family: inherit;
}

因为这类输入控件自身有内置的大小和字体,需要重置。

此时,大家就会发现,这些属性值都是inherit, 要是可以合并就好了!

哟哟哟,说到点子上了,CSS all属性就是用来合并的。

input, textarea { 
   all: inherit; 
}

喔噢,三合一,顿时一阵春风拂面之感。但是,这里仅仅是展示作用,实际上是不会这么用的,因为,all:inherit会让背景色什么的,都继承父级,相信这不是你希望看到的。

三、语法和区别

语法如下:

input, textarea { 
   all: inherit; 
}

支持三个CSS通用属性值,initial, inherit, unset. 这三个属性值分别表示什么意思呢?

您可以狠狠地点击这里:CSS3 all属性演示demo

默认的HTML和CSS是这样的,一个传统的标签内容,有标题有列表:

<article>
    <h6>标题</h6>
    <p>p变文字</p>
    <ol>
        <li>有序列表1</li>
        <li>有序列表2</li>
        <li>有序列表3</li>
    </ol>
    <textarea>文本域</textarea>
</article>
article {
    background-color: #f0f3f9;
    color: green;
}
article > textarea {
    border: 1px solid #34538b;
    background-color: #ffffe0;
    color: red;
}

这盛世,如你所见:

颜色啊,间距啊,以及文本域状态都是我们认为的样子显示。

现在,点击demo的下拉,选择对应的all属性值,实现下面CSS效果:

.initial > * {
    all: initial;
}
.inherit > * {
    all: inherit;
}
.unset > * {
    all: unset;
}

结果:

initial

initial是初始值的意思,也就是,article元素下面所有的第一级子元素都除了unicode-bidi和direction以外的CSS都使用初始值。

例如,

,

元素浏览器内置的display:block直接拜拜了,都变成了inline元素,因此在一行显示:

font-size也使用了浏览器软件本身设置的大小16px,color颜色也变成了浏览器软件本身的黑色。例如,在浏览器设置中改变字号,从中变成大:

会看到显示的文字内容也变大了:

由于我们只是对相邻层级子元素进行了initial设置,因此,

元素不受影响,但是,由于在父元素不明的情况下,

元素的默认是打点,因此,这里从数字变成了点,list-style-type和list-style-position都变化了。

inherit

inherit是继承的意思,也就是,article元素下面所有的相邻子元素都除了unicode-bidi和direction以外的CSS都继承了元素的CSS。

因此,

,

元素还是块状的,background-color都是元素的背景色,color颜色也跟一样,是绿色(文本域的红色被干掉了)。

不仅上面这些CSS,padding/margin也都继承了,只是默认是0, 看不出来,我们稍微修改下,例如给元素来个margin值:

结果,那些子元素都开花了:

unset

unset是取消设置的意思,也就是,article元素下面所有的相邻子元素除了unicode-bidi和direction以外的CSS都干掉都不要,不要了那用什么呢?unset值的特性如下,当前元素浏览器或用户设置的CSS忽略,然后如果是具有继承特性的CSS,如color,
则使用继承值;如果是没有继承特性的CSS属性,如background-color, 则使用初始值。

因此,元素的display属性值使用了initial初始值,因此变成了inline元素,两个同一行显示了;而这些元素的color颜色使用了inherit继承值,因此都是绿色,的背景色background-color不具有继承特性,因此使用的是initial初始值,也就是transparent透明,因此,就是截图所示效果。

三、结语

动手写文章之前,还以为这个CSS属性会有意想不到的妙用,最后结果是,表现确实意想不到,至于妙用,我只能科科一下。

all所牵扯的CSS实在是太多了,我目前还是想不出有什么场景,就是要用这个CSS属性。或者说什么时候,希望特殊的元素一下子变成普通元素,例如,input输入框外面一个div,来个input{all:inherit;},貌似还真有这样的场景,输入框不需要border不需要background不需要padding不需要margin,
恩,不错,不枉写此文了!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索css
, 浏览器
属性
html5 css3简单的动画、css3简单动画、css3简单特效大全代码、简单的css3动画效果、css3 动画 简单 demo,以便于您获取更多的相关知识。

时间: 2024-08-17 18:22:59

简单了解CSS3的all属性的相关文章

CSS3展现精彩的动画效果 css3的动画属性

文章简介:因为CSS3,动画将一切皆有可能. 热火朝天的css3无疑吸引了很多前端开发者的眼球,然而在css3中的动画属性则是新功能中的主打招牌,说到css3的动画属性不得不让人想起这三个属性:Transform﹑Transition﹑Animation. transform属性虽然看起来可以实现动画的效果,但本质其实是静态的,说白一点其实就是一个图形的变形工具:而transition属性是一个简单 的动画属性,操作起来非常的简单:在这里主要为大家介绍Animations属性,这是个名副其实的动

图解css3:核心技术与案例实战. 3.5 CSS3盒子阴影属性

3.5 CSS3盒子阴影属性 box-shadow也是CSS3新增的一个重要属性,用来定义元素的盒子阴影.本节主要介绍CSS3的box-shadow的属性以及如何使用. 3.5.1 box-shadow属性的语法及参数 在具体学习box-shadow使用方法之前,我们必须先知道box-shadow使用的语法规则. box-shadow:none | [ <length> <length> <length>?<length>? || <color>

图解css3:核心技术与案例实战. 3.4 CSS3圆角边框属性

3.4 CSS3圆角边框属性 在Web页面上圆角效果很常见.圆角给页面增添曲线之美,让页面不那么生硬,但是为了设计圆角效果,Web设计师们要花费更多的时间与精力. 3.4.1 border-radius属性的语法及参数 CSS3中专门针对元素的圆角效果增加了一个圆角属性border-radius.Web设计师不会为Web页面中的圆角效果纠结了. 语法: border-radius: none | <length> {1,4}[/<length>{1,4}] ? border-rad

图解css3:核心技术与案例实战. 3.3 CSS3图片边框属性

3.3 CSS3图片边框属性 border-image效果在CSS2中,只有使用背景图片来制作,而且制作过程非常复杂,做完后也很难维护.如今CSS3中增添了一个图片边框的属性,能够模拟出background-image属性的功能,功能比background-image强大,我们可以使用border-image属性给任何元素( 除border-collapse属性值为collapse的table元素之外)设置图片效果边框,还可以使用这个来制作圆角按钮效果.渐变的Tabs效果等. 3.3.1 bor

图解css3:核心技术与案例实战. 3.2 CSS3边框颜色属性

3.2 CSS3边框颜色属性 border-color属性早在CSS1中就已经定义了.不过,CSS3增强了这个属性的功能,使用它可以为元素边框设置更多的颜色,从而方便Web设计人员设计出更为绚丽的边框效果,例如渐变的边框效果.多颜色的边框效果等. 3.2.1 border-color属性的语法及参数 border-color的语法看上去和CSS1中的完全相同,但为了避免与border-color属性的原功能(也就是在CSS1中的定义边框颜色功能)发生冲突,CSS3在这个属性上做出一定的修改.语法

css3中opacity属性学习与实践

css3中opacity属性是如何使用的呢:<length> inherit length:由浮点数字和单位标识符组成的长度值0到1.不可为负值.默认值为:1 . 此标签的作用是声明一个元素的透明度,opacity取值为1的元素是完全不透明的,反之,取值为0是完全透明的,看不见的.1到0之间的任何值都表示该元素的透明程度. 兼容:Firefox 3.0.10 .Chrome 2.0.x.Opera 9.64..Safari 4.Firefox 3.5 目前较老的Firefox版本,我们需要使用

css3文本阴影属性text

css3文本阴影属性text-shadow的几点说明: css2的时候已经有了text-shadow这个属性,但是css2.1的又删除了这个属性,css3又重新使用了这个属性: text-shadow:阴影水平偏移值(可取正负值): 阴影垂直偏移值(可取正负值):阴影模糊值:阴影颜色 Firefox,webkit内核的Safari和Chrome,Opera支持Text Shadow(文本阴影):text-shadow:2px 2px 5px #333333 一个文本可以使用多个文本阴影 IE不支

css3文本阴影属性text-shadow说明

css3文本阴影属性text-shadow的几点说明: css2的时候已经有了text-shadow这个属性,但是css2.1的又删除了这个属性,css3又重新使用了这个属性: text-shadow:阴影水平偏移值(可取正负值): 阴影垂直偏移值(可取正负值):阴影模糊值:阴影颜色 Firefox,webkit内核的Safari和Chrome,Opera支持Text Shadow(文本阴影):text-shadow:2px 2px 5px #333333 一个文本可以使用多个文本阴影 IE不支

标准-css3的某些属性带webkit前缀

问题描述 css3的某些属性带webkit前缀 css3的某些新属性浏览器的支持最开始是带上类似 webkit- 这样的前缀然后再慢慢去掉前缀正式支持标准?为什么不一步到位?中间这个过渡过程有什么意义? 解决方案 使用这些前缀主要是为了兼容各浏览器:1)-webkit-: Safari内核 Chrome内核;2)-moz-: FF内核;3)-ms-: IE内核;4)-o-:opera(欧朋浏览器)内核.