首页 > 其他分享 >如何取消从父级元素继承下来的CSS样式呢?

如何取消从父级元素继承下来的CSS样式呢?

时间:2024-12-02 09:59:24浏览次数:3  
标签:元素 父级 样式 initial 重置 继承 font CSS

要取消从父级元素继承下来的 CSS 样式,你可以使用以下几种方法:

1. 使用 all: unset;

这是最简单粗暴的方法,它会将所有继承的属性重置为它们的初始值,包括fontcolorline-height等。 相当于同时使用了inherit: initial;all: initial;

.child {
  all: unset; 
}

2. 使用 all: revert; (推荐)

all: revert; 会将元素的样式重置为浏览器默认样式表中定义的样式。 这通常是 preferred 的方法,因为它能更好地保留用户代理样式表的样式,提供更一致的跨浏览器体验。 如果浏览器默认样式表中没有定义该属性的样式,则效果等同于 unset

.child {
  all: revert;
}

3. 针对特定属性重置

如果你只想重置特定的继承属性,可以直接设置它们的值为它们的初始值。 你可以使用 initial 关键字:

.child {
  color: initial;       /* 重置颜色 */
  font-size: initial;   /* 重置字体大小 */
  line-height: initial; /* 重置行高 */
}

4. 使用继承的值 inherit (谨慎使用)

inherit 关键字会强制元素继承父元素的属性值。 这在想要恢复继承,或者确保某个属性继承父元素的值时有用。 但是,如果你想取消继承,这并不是你想要的。

/*  这会继承父元素的颜色,而不是取消继承 */
.child {
  color: inherit; 
}

5. 更具体的覆盖

有时,你不需要完全重置继承,只需要更具体地覆盖父元素的样式。 例如,如果父元素设置了 font-size: 16px;,而你想将其设置为 14px,可以直接设置 font-size: 14px; 即可。

.child {
  font-size: 14px;
}

选择哪种方法?

  • 对于完全重置所有继承样式,all: revert; 通常是最佳选择,因为它尊重浏览器默认样式。
  • 对于重置特定属性,使用 property: initial;
  • 避免使用 all: unset;,除非你明确知道它的行为并希望所有属性都回到初始值,而不是浏览器样式。
  • 避免使用 inherit,除非你明确希望继承父元素的值。

示例:

假设父元素设置了 color: blue;font-size: 20px;

<div class="parent">
  <div class="child">Child Element</div>
</div>
.parent {
  color: blue;
  font-size: 20px;
}

.child {
  all: revert; /* 子元素将拥有浏览器默认的文字颜色和大小 */
}

通过以上方法,你可以有效地控制 CSS 继承,并创建你想要的样式。 选择哪种方法取决于你的具体需求。

标签:元素,父级,样式,initial,重置,继承,font,CSS
From: https://www.cnblogs.com/ai888/p/18581080

相关文章

  • 如何解决css加载字体跨域的问题?
    CSS加载字体跨域问题通常是因为服务器没有配置正确的CORS(Cross-OriginResourceSharing)头信息。浏览器出于安全考虑,会限制跨域加载资源,包括字体文件。以下几种方法可以解决这个问题:1.服务器端配置CORS:这是最推荐的解决方案,从根本上解决了跨域问题。你需要在提供字体文件的......
  • 你所理解的css高级技巧有哪些?
    CSS高级技巧涵盖了许多方面,目的在于提升代码质量、页面性能和开发效率。以下是一些我理解的CSS高级技巧,并根据类别进行划分:布局与定位:Grid布局:比Flexbox更强大,适合复杂的二维布局,能够轻松实现各种网格布局,包括不规则的和重叠的。Flexbox布局:用于一维布局,快速灵......
  • 如何将元素的所有css属性恢复为初始化状态?
    要将元素的所有CSS属性恢复为初始化状态,最有效的方法是移除所有内联样式,并移除所有自定义的class和id选择器,从而让浏览器应用默认的样式。以下几种方法可以实现:移除内联样式:这是最直接的方法,特别是当样式是直接通过JavaScript的element.style属性添加的时候。ele......
  • 用CSS实现tab切换
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Tab切换</title>&......
  • 用CSS实现一个轮播图
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>CSSCarousel</title>......
  • css中的baseline,你知道吗?
    是的,我知道CSS中的baseline。它指的是文本基线,是排列文本行的一个重要概念。更具体地说,它是字母“x”的下边缘所在的线。理解baseline对于垂直对齐元素,尤其是文本元素至关重要。以下是一些关于CSSbaseline的关键点:默认对齐方式:在没有明确指定对齐方式的情况下,i......
  • 使用纯css实现一个rate评分的功能
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>CSSRating</title>......
  • 使用css3画一个扇形
    Youcancreateapie-chart-likesector/segmentusingpureCSSinseveralways.Hereareacoupleofcommontechniquesandhowtheywork:1.Usingclip-path(Moststraightforwardforsinglesectors):Thisisgenerallythecleanestandmostrecommendedappr......
  • 使用css3绘制一个QQ小企鹅的LOGO
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>QQPenguin</title>......
  • PbootCMS 织梦搜索结果页分页条样式修改
    编辑 /include/arc.searchview.class.php 文件,将532行左右的代码:$this->dtp->Assign($tagid,$this->GetPageListDM($list_len));修改为:$listitem=$ctag->GetAtt("listitem")==""?"index,pre,pageno,next,end,option":$ct......