博客列表 >css元素样式表的来源

css元素样式表的来源

朝与同歌暮同酒
朝与同歌暮同酒原创
2020年10月10日 11:07:56786浏览

简介

css层叠样式表为HTML或XML等标记语言提供了一种样式描述,定义了其中元素的显示方式。css中的“层叠”表示,css样式单中的样式形成一个层次结构,更具体的样式覆盖通用样式。样式规则的优先级由css根据这个层次结构决定,从而实现级联效果。

CSS样式表的来源

css样式表的来源主要有两大类,分别是用户自定义样式和用户代理样式。
用户自定义样式
顾名思义,就是用户自己定义的样式。在此大类中,样式表的来源又分为3个小项

  1. style=属性,style属性作为元素的属性,直接写在元素标签内。
    1. <h1 style="color: red">Hello World!</h1>
  2. <style>标签,style标签作为HTML的一个元素,可用于控制其它元素的样式。但是由于,它是写在具体的HTML文档内,因此它只能控制当前文档的样式,因此也称为内部样式。<style>标签一般放在<head>标签内。
    1. <head>
    2. <meta charset="UTF-8">
    3. <title>Title</title>
    4. <style>
    5. h1 {
    6. color: brown;
    7. }
    8. </style>
    9. </head>
  3. 引用外部样式,顾名思义,就是引用外部的样式表。何为外部样式表?就是样式作为一个单独的文件,被保存在.css文件中。保存在此文件中的样式,具有通用性比较强的特点。只要HTML文件中的元素,可以被该样式表中的选择器选中。那么该外部样式,就可以控制相应的元素的样式。引用外部样式,一般使用HTML中的<link>标签。
    <link rel="stylesheet" href="style.css">
    用户代理样式
    还有一种样式来源,被称为用户代理样式。在使用中,用户代理其实就是浏览器。因此也可以理解为浏览器默认样式。既然被称为默认样式,就是浏览器自动添加的样式,无需用户管理。例如,HTML中的h1标签,显示在浏览器时字体自动加大并加粗,a标签默认添加下划线等

    CSS优先级冲突的解决方案

    css中的优先级一般为 id > class > tag。我们可以将id的权重设为100,class的权重设为10,tag的权重设为1。这样就可以通过选择器的权重,确定选择器的优先级。举例:
    1. <style>
    2. body h1.title{
    3. color: red;
    4. }
    5. h1.title{
    6. color: yellow;
    7. }
    8. #head{
    9. color: blue;
    10. }
    11. </style>
    12. <h1 class="title" id="head">Hello World!</h1>
    h1.title的权重是 10×1+1=11
    body h1.title的权重是 10×1+1×2=12
    #head的权重是 100×1=100
    那么在这三个选择器中,最后一个选择器的权重是最大的,那么它所设置的各种样式优先级也是最高的,标题的颜色也就被设置成了蓝色。
    需要注意的几点:
  • 不同优先级,优先级高的属性有效
  • 同优先级,代码顺序在后面的属性有效
  • 行内样式优先级最高,但在css样式属性后加上!important则该属性优先级最高
  • 使用选择器时,尽量不用!important和id,这样的选择器优先级太高,会使代码失去灵活性和通用性。也要少使用tag选择器,这样的选择器则是优先级太低,让样式表失去了减少代码量,达到样式复用的作用。
  • 最后一点是,id唯一性是靠我们自己保证的。即使有多个相同的id,浏览器也能渲染出正确的结果。但我们要把id当成元素的身份证,确保它的唯一性,减少代码出莫名其妙的错误的概率。
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议