css如何实现继承,css中的继承
创新互联是一家从事企业网站建设、成都做网站、成都网站制作、行业门户网站建设、网页设计制作的专业网站建设公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点上1000家。
1,css中的继承
font-family和color是继承的。 display、border、margin和padding属性是不继承的。用户可能会认为background-color是继承的,但实际上它不是。background-color没有设置时,它的默认值实际上昌特别值transparent,它的意思是“在它下面的”颜色可见,因此它与继承值不太相同。如果用户想从父元素继承属性,但是默认时它实际上没有那样做,那么用户就可以在所编写的规则中使用inherit的特殊值。假设用户想让类standout中所有具有蓝色边框,并且它里面的所有段落具有相同的边框,可以编写如下规则:div.standoutdiv.standout{ border:inherit;}
说白了就个财产一样,你爷爷的钱,你爸继承,你继承你爸的,你爷爷的钱也就是你的,所以,就是一层层的继承下来的,就这个意思, 1中如果设置了width:100,那么他下面的div 2,3都是这个宽度(前提是2,3都没有设置width) 继承有什么用? 如果你写过面向对象的程序的话, 应该知道"复用"这个词, 继承就是最大限度的复用.父级已经定义过的样式不用再子元素中重新再写一遍. 其它的 楼上基本上都已经答过了.2,Css如何继承
1简而言之就是受到父级或更上级样式元素的约束,2下面给一些样式供参考:font-family和color是继承的。 display、border、margin和padding属性是不继承用户可能会认为background-color是继承的,但实际上它不是。background-color没有设置时,它的默认值实际上昌特别值transparent,它的意思是“在它下面的”颜色可见,因此它与继承值不太相同。如果用户想从父元素继承属性,但是默认时它实际上没有那样做,那么用户就可以在所编写的规则中使用inherit的特殊值。假设用户想让类standout中所有具有蓝色边框,并且它里面的所有段落具有相同的边框,可以编写如下规则:div.standoutdiv.standout3其实很多样式,可以统一的,全部在集成,如字体颜色大小,图片宽高度,边框线,还有就是背景颜色等等 4.可以的,把C样式当作父级样式即可,AB二者为子级,最为简单和通俗的例子css样式(#style{color:#fff;})我把body的字体颜色设置为黑色,由于p标签是在body标签里所以它是黑色,这就是样式继承问题,p标签是body标签的子标签,所以继承了body的样式。你也可以单独对p标签进行设置,那时他就不再是黑色的啦。相同的样式就不用在写了,也可以写在另一个CSS中,用import引用3,如何实现CSS 类继承呢
所谓css的继承是指被包在内部的标签将拥有外部标签的样式性质。继承特性最典型的应用通常发挥在整个网页的样式预设,需要指定为其它样式的部份设定在个别元素里即可。这项特性可以给网页设计者提供更理想的发挥空间。。css是层叠样式表(cascading style sheets)的简称。 一、继承 css的一个主要特征就是继承,它是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代。例如一个body定义了的颜色值也会应用到段落的文本中。下面举例说明: 样式定义: body 应用举例代码: css的层叠和继承深入探讨
这段代码的应用结果是:“css的层叠和继承深入探讨”这段话是红颜色的,“层叠和继承”由于应用了strong元素,所以是粗体。这很符合制作者的意图,也是为什么继承是css的一部分的原因。 二、css继承的局限性 在css中,继承是一种非常自然的行为,我们甚至不需要考虑是否能够这样去做,但是继承也有其局限性。 首先,有些属性是不能继承的。这没有任何原因,只是因为它就是这么设置的。举个例子来说:border属性,大家都知道,border属性是用来设置元素的边框的,它就没有继承性。多数边框类属性,比如象padding(补白),margin(边界),背景和边框的属性都是不能继承的。 三、继承中容易引起的错误 有时候继承也会带来些错误,比如说下面这条css定义: body 在有些浏览器中这句定义会使除表格之外的文本变成蓝色。从技术上来说,这是不正确的,但是它确实存在。所以我们经常需要借助于某些技巧,比如将css定义成这样: body,table,th,td 这样表格内的文字也会变成蓝色。 四、多种样式混合应用 既然有了继承性,那么在样式表中的应用上可能会有些读者搞不清,多个样式表同时应用到一个对象上会发生什么情形呢?先举个简单的例子: 样式定义: .apple 应用举例代码: 这儿的苹果好红啊
应用举例效果:因为选择符h1和.apple都匹配上面的h1元素,那么到底浏览器会应用哪一个呢?通过在浏览器中观察,我们发现这段文字应用了.apple这个样式,所以它显示的是红色。这是因为两条规则的特殊性不一样,css规则必须这样进行处理。 样式表中的特殊性描述了不同规则的相对权重,它的基本规则是: 统计选择符中的id属性个数。 统计选择符中的class属性个数。 统计选择符中的html标记名格式。 最后,按正确的顺序写出三个数字,不要加空格或逗号,得到一个三位数。( 注意,你需要将数字转换成一个以三个数字结尾的更大的数)。相应于选择符的最终数字列表可以很容易确定较高数字特性凌驾于较低数字的。 以下是一个按特性分类的选择符的列表: h1 p em .apple p.bright p.bright em.dark #id316 从上表可以看出#id316具有更高的特殊性,因而它有更高的权重。当有多个规则都能应用于同一个元素时,权重越高的样式将被优先采用。 五、css继承的优先级问题 上面我们讨论了css的继承性和特殊性,在特殊性的框架下,被继承的特性值为0,这就意味着任何显示声明的规则将会覆盖其继承样式。因此,不管一条规则具有多高的权重,如果没有其他规则能应用于这个继承元素,那么它也只是个被继承的规则而已,举例说明。 样式定义: body li ul.white 应用举例代码: 有些读者可能认为除包含.white类的列表项显示为白色外,其余所有的列表项都应该是灰色的。然而情况并非如此。因为带选择符li的显式声明的权值比从ul.white规则那里继承过来的权值要大,所以每个列表项都是灰色的。 下面再来看一个例子,若给定如下所示的标记,则em强调文字将会是灰色的,而非黑色,因为em规则的权值要大于从h1元素继承来的权值: 样式定义: h1#id316 em 应用举例代码: 深入探讨css的继承性
这是因为第二条em规则的特性值(1)要比被继承的特性值(0)要大,事实上规定h1#id316的原始特性值(101)对其继承值没有影响,仍旧为0。 小技巧: 如果想让h1始终为黑色,而em文字在其他情况下红色,那么下面的样式表设置就是一个很好的方法: h1,h1 em em 给定这个规则后,除在h1元素内的任何em文字就都是红色,而h1内的em文字仍旧为黑色,由于其选择符分组,在第一条规则中就有两条有效的规则(一条是对h1的,另一条是对h1 em的)也就有两个特性值--每条规则一个。 六、人为定义css继承优先级 在制作网页的过程中,我们可能想要设置某个规则比其他的规则更重要,css中允许这样设置,它们被称为重要规则(important rule)。这是根据其声明的方式和它们的自然属性来命名的。通过在一条规则的分号前插入!important这样一个短语来标记一条重要规则,比如说: p.apple 颜色值#red被标记为!important,而背景色white未被标记,如果需要二条规则都是重要的话,那么每条规则都需要标上!important。 正确地放置!important的位置是很重要的,否则整条规则将为无效。!important总是放在规则声明的最后,在分号之前。 标记为!important的规则具有最高的权值,也就是说他没有具体的特性值,但是比其他的权值都要大。需要注意的是,虽然制作者定义的样式比用户定义的样式具有更高权值时,但!important规则恰恰相反:重要的用户定义规则要比制作者定义的样式具有更高权值,即使是标记为!important的重要规则也是如此。 看了这么多文字介绍后,我们来举个例子看一下: 样式定义: h1 应用举例代码: 看这儿!
应用举例效果:!important规则会覆盖内联style属性的内容,所以结果文字是灰色的而不是黑色的。 还有最后一种需要考虑的情况:继承值总是具有特性值0的特点,即使是从带有!important的规则继承的值也是如此,在匹配重要规则的元素之外,重要性也会随之消失我觉得你可能把CSS 的继承理解错了,css中的继承并不能像java语言或其他语言那样实现任意形式的继承,css的继承说白话就是css样式表内定的一些规则,那些css属性可以继承,哪些不可以继承,都是不可改变的,至于哪些属性可以继承,这里就不例举了,太多了,有兴趣可以上网查一查!干嘛要这样写? 你可以这样啊,这样就可以啊,省的多写一个样式名、
网页标题:css如何实现继承,css中的继承
新闻来源:
http://dzwzjz.com/article/isoscd.html