【html学习】CSS继承性、层叠性和特殊性


CSS样式具有3个基本特性:继承性、层叠性和特殊性。
继承性说明样式可以相互传递,层叠性说明样式可以相互覆盖,而特殊性则说明样式也可以特殊化处理。

CSS继承性

继承性的介绍

CSS继承性就是CSS允许结构的外围样式不仅可以应用于某个特定的元素,还可以应用于它包含的、可匹配的标签。
通俗说就是在HTML文档结构中,包含在内部的标签将拥有外部标签的某些样式。
就像java语言的继承一样。子类可以使用父类的方法和属性。

继承性的优点

CSS继承性最典型的应用就是在body元素中定义整个页面的字体大小、字体颜色等基本页面属性,这样包含在body元素内的其他元素都将继承该基本属性,以实现页面显示效果的统一。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /*继承性是指被包在内部的标签将拥有外部标签的样式性,即子元素可以继承父元素的属性*/
        /*在CSS中以text-、font-、line- 开头的属性都是可以继承的。*/
        div{
            width: 80%;
            height:80%;
            /* color: red; */
            font-size: 32px;
            background-color: burlywood;
        }
        /*子元素也可以定义自己的样式*/
        span{
            font-style: italic;
            font-size: 12px;
            color: black;
        }
           </div>
</body>
</html>

并不是所有的属性都是可以继承的,

以下的元素都不能继承

边框属性
边界属性
补白属性
背景属性
定位属性
布局属性

不能继承的原因

:CSS继承性给网页设计带来很多便利,当然并不是每个CSS属性都可以继承的。为了防止继承性对网页设计的破坏性影响
示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /*继承性是指被包在内部的标签将拥有外部标签的样式性,即子元素可以继承父元素的属性*/
        /*在CSS中以text-、font-、line- 开头的属性都是可以继承的。*/
        div{
            width: 80%;
            height:80%;
            /* color: red; */
            font-size: 32px;
            background-color: burlywood;
        }
        /*子元素也可以定义自己的样式*/
        span{
            font-style: italic;
            font-size: 12px;
            color: black;
        }
        /*超链接标签带有默认的字体颜色,不会继承父级的颜色样式*/
        div a{
            color: red;
        }
        /*h1-6标题标签的大小也是不能继承的*/
        h6{
            /* font-size: 3em; */
        }

使用继承的注意事项

继承是非常重要的,使用它可以简化代码,降低CSS样式的复杂度。
但是,如果在网页中所有元素都大量继承样式,那么判断样式的来源就会变得很困难,因此用户应该注意:对于字体、文本类属性等涉及网页中通用属性可以使用继承性。
例如,网页显示字体、字号、颜色、行距等可以在body元素中统一设置,然后通过继承影响文档中所有文本。其他属性就不要使用继承性来实现。

CSS层叠性

层叠性的介绍

CSS层叠性是指CSS能够对同一个元素或者同一个网页应用多个样式或多个样式表的能力

注意事项

CSS层叠性也会带来样式的冲突,如果多个样式声明的属性相同,但是样式效果不同,并且它们都被应用到同一个对象上,则这种层叠效果就会发生矛盾

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /*继承性是指被包在内部的标签将拥有外部标签的样式性,即子元素可以继承父元素的属性*/
        /*在CSS中以text-、font-、line- 开头的属性都是可以继承的。*/
        div{
            width: 80%;
            height:80%;
            /* color: red; */
            font-size: 32px;
            background-color: burlywood;
        }
        /*子元素也可以定义自己的样式*/
        span{
            font-style: italic;
            font-size: 12px;
            color: black;
        }
         </div>
</body>
</html>

css特殊性

CSS特殊性是指不同类型的选择器,
它们的优先级别的权重比是不同的。

常规选择器权重比值和计算方法。

标签选择器:权重值为1。
伪元素或伪对象选择器:权重值为1。
类选择器:权重值为10。 属性选择器:权重值为10。
ID选择器:权重值为100。
其他选择器:权重值为0,如通配选择器等。

计算方法
然后,以上面权值数为起点来计算每个样式中选择
器的总权值数。则计算规则是:
统计选择器中ID选择器的个数,然后乘以100。
统计选择器中类选择器的个数,然后乘以10。
统计选择器中的标签选择器的个数,然后乘以1。
以此方法类推,最后把所有权重值数相加,即可得到当前选择器的总权重值,最后根据权重值来决定哪个样式的优先级大。

特殊选择器

一般情况下,常规选择器已经够用了,但是对于很复杂的页面样式来说,可能你想讲之前的所有样式都覆盖,那么就需要使用特殊手段了。
比如说CSS2.1称之为重要声明的!important标志
如果!important放在声明的任何其他位置,整个声明都将无效
示例全部代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        /*继承性是指被包在内部的标签将拥有外部标签的样式性,即子元素可以继承父元素的属性*/
        /*在CSS中以text-、font-、line- 开头的属性都是可以继承的。*/
        div{
            width: 80%;
            height:80%;
            /* color: red; */
            font-size: 32px;
            background-color: burlywood !important;
        }
        /*子元素也可以定义自己的样式*/
        span{
            font-style: italic;
            font-size: 12px;
            color: black;
        }
        /*超链接标签带有默认的字体颜色,不会继承父级的颜色样式*/
        div a{
            color: red;
        }
        /*h1-6标题标签的大小也是不能继承的*/
        h6{
            /* font-size: 3em; */
        }
        /*若有多个选择器都作用于同一元素时,即多个选择器的范围发生了重叠,CSS该怎样处理?
         (1)若多个选择器定义的样式不发生冲突,则元素应用所有选择器定义的样式
          (2)若多个选择器定义的样式发生冲突(比如:同时定义了字体颜色属性),则CSS按选择器的优先级,
          让元素应用优先级高的选择器样式。
       */
        /*优先级:行内样式>ID样式>类选择器>标签选择器>继承样式>浏览器默认的样式*/
        /*!important可以提升优先级*/
         #div1{
            background-color:red;
            color:wheat;
        } 
        div div{
            color: darkorchid ;
        } 
         .d1{
           color: coral;
        } 
        /*1.内联样式,如: style=””,权值为1000。

2.ID选择器,如:#content,权值为100。

3.类,伪类和属性选择器,如.content,权值为10。

4.标签选择器和伪元素选择器,如div p,权值为1。 

5.继承样式,权值为0
*/
/*数标签:  
先数id,如果id相等再数类如果id不相等id多的选择器权重高,权重越高,优先级越高。如果id选择器数量相同,再数类选择器,最后数标签。
 
 (0,0,0,0)分别对应(行内式个数,id选择器个数,类选择器个数,标签选择器个数)
两个选择器通过对比4个数的大小,确定权重关系
怎么理解呢?
例如:#box ul li a.cur    1个id  1个类 3个标签  (0,1,1,3)
例如:.nav ul .active .cur  (0,0,3,1)

怎么比较大小呢:
先比较第一个数,两个都是0,所以对比第二个数,因为第一个选择器第二个数是1,而后一个选择器权重是0所以前面的选择器权重大。
*/

    </style>
</head>
<body>
    <div>
        <h6>CSS</h6>
        <a href="#">百度</a>
        <p>特性
            <span>继承</span>
        </p>
        <div id="div1" class="d1" style="color: yellowgreen;">你好</div>
    </div>
</body>
</html>

初学者一枚,大家多多关照,有错误可以在下面说出来
谢谢大家

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: vc2020 cdhtmldialog是继承自MFC中的CDHtmlDialog类的。CDHtmlDialog类是MFC框架提供的一个用于创建基于HTML和脚本的自定义对话框的类。 CDHtmlDialog类可以让开发者使用HTML和脚本语言(如JavaScript)来创建对话框上的控件、界面和交互行为。它基于IE浏览器引擎,能够支持HTML和脚本语言的强大功能,使得开发者能够以更灵活和可扩展的方式来构建用户界面。 继承自CDHtmlDialog类的vc2020 cdhtmldialog可以根据具体需求来定制化自己的对话框。通过继承CDHtmlDialog类,可以在自己的对话框上添加各种HTML控件,如按钮、文本框、下拉框等,并通过JavaScript脚本来实现它们的交互行为。 CDHtmlDialog类提供了一系列重要的成员函数和事件处理函数,用于处理HTML控件的事件、脚本的执行和数据传递等。开发者可以根据需要重写这些函数,实现自己对控件和脚本的处理逻辑。 与传统的MFC对话框相比,vc2020 cdhtmldialog具有更高的扩展和灵活。通过使用HTML和脚本语言,开发者可以实现更复杂和动态的用户界面,以及更强大的交互功能。同时,CDHtmlDialog类的封装也简化了开发过程,降低了开发难度。 综上所述,vc2020 cdhtmldialog继承自MFC的CDHtmlDialog类,通过HTML和脚本语言来构建自定义对话框,具有高度的灵活和扩展,能够实现复杂的界面和交互功能。 ### 回答2: vc2020 cdhtmldialog是一个可以用来创建基于HTML的对话框的类。它使用CDHtmlDialog类作为基类,通过继承该类,我们可以方便地创建自己的HTML对话框。 继承是面向对象编程的一个重要概念,通过继承,我们可以从已有的类派生出新的类,新的类将拥有原有类的属和方法。对于vc2020 cdhtmldialog来说,继承可以让我们自定义HTML对话框的行为和外观,以满足我们的特定需求。 继承vc2020 cdhtmldialog时,我们可以重写其父类的方法,实现自己的逻辑。例如,我们可以重写OnInitDialog方法,在对话框初始化时执行一些自定义操作;或者重写OnDocumentComplete方法,当HTML文档加载完成时执行一些需要的操作。 另外,我们还可以通过继承来添加新的属和方法,以扩展vc2020 cdhtmldialog的功能。我们可以在新的类中添加新的成员变量和成员函数,并在代码中使用它们。 总之,通过继承vc2020 cdhtmldialog,我们可以根据自己的需求创建出功能丰富、个化的HTML对话框。继承的优势在于代码的复用和扩展,使得我们可以更加灵活地定制和开发HTML对话框应用程序。 ### 回答3: vc2020的cdhtmldialog是基于CDHtmlDialog类的,它允许我们创建使用HTML和脚本的用户界面。继承是一种面向对象编程的概念,它允许我们从已有的类中派生出新的类,并继承它的属和方法。 继承CDHtmlDialog类有几个好处。首先,我们可以利用CDHtmlDialog已有的功能来构建我们自己的用户界面。CDHtmlDialog类已经集成了许多常用的HTML和脚本控件,比如按钮、文本框、下拉列表等,我们可以直接使用它们来设计我们的界面,而无需从头编写这些控件的样式和行为。 此外,通过继承CDHtmlDialog类,我们可以重写其函数以实现我们的逻辑。CDHtmlDialog类提供了一些虚函数,比如OnInitDialog()、DoDataExchange()和OnDocumentComplete()等,通过重写这些函数,我们可以在特定的事件发生时执行我们自己的代码。例如,在OnInitDialog()函数中,我们可以初始化一些数据或者执行一些必要的操作;在OnDocumentComplete()函数中,我们可以处理网页加载完成后的逻辑。 另外,继承CDHtmlDialog类还使得我们能够对话框进行更加灵活的自定义。我们可以通过添加新的成员函数和成员变量来实现我们自己的功能,或者通过重写基类的函数来改变原有的行为。这种灵活使得我们可以根据具体需求对对话框进行定制,满足项目的特殊要求。 总之,通过继承CDHtmlDialog类,我们可以构建基于HTML和脚本的用户界面,并且能够对其进行进一步的定制和自定义。这样,我们能够更加方便地开发出功能强大且美观的用户界面,提升用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值