前端学习(十一):CSS性质

进击のpython


前端学习——CSS性质



那在CSS上还有一些很重要的性质:继承性,层叠性以及特殊性

那本小节就基于这三个性质进行展开... ...


继承性

在CSS的某些样式是具有继承性的,那什么是继承性呢?

在官方上说,继承是一种规则,他允许样式不仅应用于特定的html标签元素,而且应用于其后代元素

如果你父亲是双眼皮,你母亲也是双眼皮,那你是双眼皮你就继承了父亲的双眼皮

那拿到我们实际的代码中应用呢?

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>继承性</title>
  <style type="text/css">
    div{
      color: red;
    }
  </style>
</head>
<body>
  <div>
    百因<span>必</span>有果,你的<span>报应</span>就是我!
  </div>
</body>
</html>

你会发现该颜色不仅仅应用在了div标签上,还应用在与div标签中所有子元素文本

但是并不是所有的属性都可以继承下来,像常见的color、font系列的、text-系列的是可以继承的

而有些继承,比如border:1px solid green,就不可以被继承

如果给div设置一个border:1px solid green;你就会发现,div是有条实心边框线

但是子元素span包含的文本根本就没起到作用

应用上也很普遍,比如我们在去设计网站的时候,网站统一的字体颜色是red,字体大小为16px,那么我们就可以很好地利用CSS的继承来实现此效果:

body{
    color:gray;
    font-size:14px;
}

层叠性

在之前我们学习了那么多的选择器,也知道会所采用就近原则来处理CSS的样式

那要是多个样式又要怎么确定与划分呢?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
        p {
            color: red;
        }

        #wrap {
            color: green;
        }

        .box {
            color: yellow;
        }
    </style>
</head>
<body>
<p class='box' id="wrap">
    猜猜我是什么颜色
</p>
</body>
</html>

啊!是绿色的!那为什么呢?这就要介绍一下权重,权重高的就会优先显示

CSS权值的规则:

直接说可能不是很明白,我们可以用一个例子来研究:

<div class='wrap1' id='box1'>
    <div class="wrap2" id="box2">
        <p class='active'>MJJ</p>
    </div>
</div>
p{color:gray;}/*权值为1*/
div div p{color:yellow;}/*权值为1+1+1=3*/
.active{color:red;}/*权值10*/
div .active{color:black;}/*权值为11*/
div div .active{color:blue;}/*权值为12*/
.wrap #box2 .active{color:purple;}/*权值为120*/
#box1 #box2 .active{color:green;}/*权值为210*/

由此可以看出,其实对于权值的计算来说,首先它是不进位的,对于使用的选择器我们无非就是在数数,

数选择器的数量(按照顺序来,先是id再是class,再是元素),比如:

/*权值为 1  1  1*/
#box1 .wrap2 div{
    color:red;
}

注意:继承来的属性也有权值,不过它的权值非常低,有的文档提出它只有0.1,所以可以理解为继承的权值最低。


特殊性

这部分,不到万不得已,不要用!因为它破坏了继承规则!

我们在做网页代码的时候,有些特殊的情况需要将某些样式设置成最高权限,怎么办?

我们知道内联样式的权值是1000,比较大,那么我们可以使用!important来解决

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>!important的使用</title>
  <style type="text/css">
    div{
      color:green !important;
    }
  </style>
</head>
<body>
  <div id="box" style="color:red;">
    <span>么么哒</span>
  </div>
</body>
</html>

注意:!important要写在分号的前面

你就会发现文本变成了绿色!但!是!使!用!imporrtant是一个坏习惯

应该尽量避免,因为这严重破坏了样式表中固有的权值比较规则,使得在调试bug变得更加困难

当两条相互冲突的带有!important规则作用与同一个标签,那么拥有最大优先级的将会被采用

什么时候采用

  • 第一种

    • 你的网站上有一个设计了全站样式的css文件
    • 同时你或者你的小伙伴写了一些很差的内联样式
  • 第二种
    #box p { color: blue; }
    p.awesome { color: red; }

    怎样才能使得文本的颜色变为红色?这种情况下,如果不用!important.第一条规则永远大于第二条的规则


*****
*****

前端学习(十一):CSS性质

原文地址:https://www.cnblogs.com/jevious/p/11510148.html

时间: 2024-10-08 19:27:20

前端学习(十一):CSS性质的相关文章

前端学习之CSS(三)

九:浮动 浮动是css里面布局最多的一个属性,也是很重要的一个属性. float:表示浮动的意思. 属性值: none: 表示不浮动,默认 left: 表示左浮动 right:表示右浮动 例: html内容: <div class="box1">第一个div</div> <div class="box2">第二个div</div> <span>一个span</span> css内容: *左浮动*

前端学习html css js

html 第一章 :HTML模板 HTML是什么(超文本标记语言) HTML网页主体结构 doctype标签 head标签 meat标签 title标签 body标签 第二章:HTML标题 h1标题标签 h2标题标签 h3标题标签 h4标题标签 h5标题标签 h6标题标签 hr水平线标签 第三章:HTML 段落 p段落标签 br换行标签 第四章:HTML 样式 center定义居中内容 font和basefont定义HTML字体 s和strike定义删除线文本 u定义下划线文本 第五章:HTML

前端学习(13)~css学习(七):浮动

文本主要内容 标准文档流 标准文档流的特性 行内元素和块级元素 行内元素和块级元素的相互转换 浮动的性质 浮动的清除 浏览器的兼容性问题 浮动中margin相关 关于margin的IE6兼容问题 标准文档流 标准文档流的特性 (1)空白折叠现象: 无论多少个空格.换行.tab,都会折叠为一个空格. (2)高矮不齐,底边对齐: (3)自动换行,一行写不满,换行写. 行内元素和块级元素 学习的初期,我们就要知道,标准文档流等级森严.标签分为两种等级: 行内元素 块级元素 我们可以举一个例子,看看块级

前端学习 -- Html&amp;Css -- 条件Hack 和属性Hack

条件Hack 语法: <!--[if <keywords>? IE <version>?]> HTML代码块 <![endif]--> <keywords> if条件共包含6种选择方式:是否.大于.大于或等于.小于.小于或等于.非指定版本 是否: 指定是否IE或IE某个版本.关键字:空 大于: 选择大于指定版本的IE版本.关键字:gt(greater than) 大于或等于: 选择大于或等于指定版本的IE版本.关键字:gte(greater th

web前端学习笔记(CSS盒子的浮动)

Posted on 2013-09-18 09:00 Stephen_Liu 阅读(2205) 评论(6) 编辑 收藏 在标准流中,一个块级元素在水平方向会自动伸展,直到包含它的元素的边界:而在竖直方向和兄弟元素依次排列,不能并排.使用“浮动”方式后,块级元素的表现就会有所不同.      CSS中有一个float属性,默认为none,也就是标准流通常的情况.如果将float属性的值设置为left或right,元素就会向其父元素的左侧或右侧靠紧,同时默认情况下,盒子的宽度不在伸展,而是根据盒子里

前端学习(9)~css学习(三):样式表和选择器

本文主要内容 CSS概述 CSS和HTML结合的三种方式:行内样式表.内嵌样式表.外部样式表 CSS四种基本选择器:标签选择器.类选择器.ID选择器.通用选择器 CSS几种扩展选择器:后代选择器.交集选择器.并集选择器 CSS样式优先级 CSS 概述 CSS:Cascading Style Sheet,层叠样式表.CSS的作用就是给HTML页面标签添加各种样式,定义网页的显示效果.简单一句话:CSS将网页内容和显示样式进行分离,提高了显示功能. css的最新版本是css3,我们目前学习的是css

前端学习(14)~css学习(八):定位属性

CSS的定位属性有三种,分别是绝对定位.相对定位.固定定位. position: absolute; <!-- 绝对定位 --> position: relative; <!-- 相对定位 --> position: fixed; <!-- 固定定位 --> 相对定位 相对定位:让元素相对于自己原来的位置,进行位置调整(可用于盒子的位置微调). 格式: position: relative; left: 50px; top: 50px; 相对定位的举例: <!do

前端学习 -- Html&amp;Css -- 层级和透明度

层级 如果定位元素的层级是一样,则下边的元素会盖住上边的. 通过z-index属性可以用来设置元素的层级,可以为z-index指定一个正整数作为值,该值将会作为当前元素的层级,层级越高,越优先显示. 对于没有开启定位的元素不能使用z-index. 透明度 设置元素的透明背景opacity可以用来设置元素背景的透明,它需要一个0-1之间的值: 0 表示完全透明 1 表示完全不透明 0.5 表示半透明 opacity属性在IE8及以下的浏览器中不支持,IE8及以下的浏览器需要使用如下属性代替:alp

web前端学习笔记(CSS变化宽度布局)

Posted on 2013-09-30 09:03 Stephen_Liu 阅读(2406) 评论(6) 编辑 收藏 一.“1-2-1”单列变宽布局: 对于变宽度的布局,首先要使内容的整体宽度随浏览器窗口宽度的变化而变化.因此中间的container容器中的左右两列的总宽度也会变化,这样就会产生不同的情况.这两列是按照一定的比例同时变化,还是一列固定,另一列变化.这两种都是很常用的布局方式.然而对于等比方式而言,相对比较简单,和我上一篇博客中1-2-1的布局方式非常类似,因此这里只是介绍一列固

前端学习 -- Html&amp;Css -- ie6 png 背景问题

在IE6中对图片格式png24支持度不高,如果使用的图片格式是png24,则会导致透明效果无法正常显示 解决方法: 1.可以使用png8来代替png24,即可解决问题,但是使用png8代替png24以后,图片的清晰图会有所下降: 2.使用JavaScript来解决该问题,需要向页面中引入一个外部的JavaScript文件,然后在写一下简单的JS代码,来处理该问题. DD_belatedPNG_0.0.8a.js : http://www.dillerdesign.com/experiment/D