css中哪些属性可以继承?

本文详细介绍了CSS中继承属性的特点及常见属性,并深入探讨了样式的权重计算规则,包括正常情况下的权重分配以及特殊情况下的权重优先级。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是前两天突然想到的一个问题,经常看见有的css样式中会出现XXX:inherit;自己模仿的时候也就跟着写了,但却不知道它的原理是什么。当然,留心的话多写几次也能总结出来,比如经常看见文本相关的会写inherit,表格类会写inherit,但不总结的话,知识就不会形成经证实的认知,不会完全吸收为自己的东西,所以还是查找了资料记录下来。 css中默认会继承的属性在上面已经提到了,一是文本相关的属性,具体有: font-family, font-size, font-style,font-variant, font-weight, font, letter-spacing,line-height,text-align, text-indent, text-transform,word-spacing 二是列表相关的属性,具体如下: list-style-image, list-style-position,list-style-type, list-style 还有一个属性比较重要的是color属性。
查找资料过程中发现另外一个小知识点,虽然之前也看到过,但那时候没有完全理解,也没有记录,以至于再次看到时竟感觉完全没接触过,这次理解了也记录下来。那就是css中样式的特性值,它代表了不同样式的权重,权重大的样式优先。比如一个元素同时具有几个类或id,并且样式之间具有冲突,则权重大的样式会覆盖权重小的样式。
<div class="classname" id="idname"></div> <style> .classname{ color:red; } #idname{ color:blue; } </style> 则这个div的文本颜色为为蓝色。因为id的权重比class大。那么权重的具体计算规则是怎样的呢?如下所示:
         h1 {color:blue;}                        特性值为:1
  p em{color:purple;}                    特性值为:1+1=2
  .apple {red;}                           特性值为:10
  p.bright {color:yellow;}                  特性值为:10+1=11
  p.bright em.dark {color:brown;}           特性值为:10+1+10+1=22
  #idname {color:yellow}                   特性值为:100

这是正常情况下的计算规则,那么有没有特例呢?我们需要更周密的思考,你想到了什么么?是的,内联样式呢?像这样: <div class="classname" id="idname" style="color:green"></div> 这时候谁的优先级更高呢?答案是内联样式的更高。 还有一种特殊情况,是的,!important.如果样式注明了important优先级呢?那么,不管是内联样式还是外链样式,!important的优先级都是最高的。 空口无凭的啊,是啊,必须拿出demo才行。这也是我现在给自己的要求,不能轻易的相信被人告诉我的经验,未经过自己证实的经验都不是自己的认知。

转载http://www.cnblogs.com/HUSTecho/archive/2013/03/26/3199538.html

<think>好的,我现在需要回答用户关于CSS中可继承与不可继承属性的问题。首先,我得回忆一下相关的知识,然后结合提供的引用资料来组织答案。用户明确提到要区分哪些属性可以被子元素继承,哪些不能,所以需要分两部分来回答。 首先,根据引用[1]和引用[4],可继承属性通常涉及文本和字体相关的样式,比如font-size、color、line-height等。这些属性如果设置在父元素上,子元素会自动继承,不需要重复设置。引用[3]也提到,这样可以减少代码量,便于维护。 然后是不可继承属性,比如display、盒模型相关的width、margin、padding,以及背景和定位属性。引用[4]详细列举了这些不可继承属性,例如background、border、float、position等。这些属性需要显式地在子元素上设置才会生效,否则不会继承父元素的值。 另外,用户可能对inherit关键字感兴趣,这在引用[2]中提到,即使用inherit可以强制继承父元素的值,即使该属性本身不可继承。这一点可以作为补充说明,帮助用户理解如何手动实现继承。 接下来需要检查是否有遗漏的信息。例如,引用[4]还提到列表布局属性如list-style是可继承的,而表格相关的属性如border-collapse是不可继承的。这些细节也需要包含在回答中,以确保全面性。 最后,要确保回答结构清晰,分点列出可继承和不可继承属性类别,并举例说明。同时,引用对应的资料来支持每个部分的内容,并在末尾添加引用标识。需要避免使用Markdown格式,保持自然的中文表达,并符合用户要求的格式。</think>CSS属性继承机制能够有效简化代码并保持样式一致性。以下是可继承与不可继承属性的分类说明: ### 一、可继承属性 1. **文本相关属性** - 字体类:$font-family$, $font-size$, $font-weight$, $font-style$ - 排版类:$text-align$, $line-height$, $text-indent$, $letter-spacing$ - 颜色类:$color$(文本颜色自动继承)[^3] 2. **列表属性** - $list-style$, $list-style-type$, $list-style-position$(子列表默认继承父级标记样式) 3. **表格布局属性** - $border-collapse$(仅在表格元素中可继承)[^4] 4. **其他特殊属性** - $visibility$(控制元素可见性) - $cursor$(鼠标指针样式) ### 二、不可继承属性 1. **盒模型属性** - 尺寸:$width$, $height$, $min-width$ - 边距:$margin$, $padding$ - 边框:$border$, $border-radius$(需单独设置子元素样式)[^4] 2. **定位与布局** - $display$, $position$, $float$, $top/right/bottom/left$ - $flex-direction$, $grid-template-columns$(现代布局属性继承) 3. **背景与图像** - $background$, $background-image$, $background-color$(防止意外覆盖) 4. **特殊文本效果** - $vertical-align$, $text-decoration$(如下划线需显式指定)[^4] ### 三、强制继承技巧 通过`inherit`关键字可强制继承继承属性,例如: ```css .child { background: inherit; /* 强制继承父级背景 */ } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值