CSS使用方式及选择器

CSS概述

  • 1.CSS,全称“Cascading Style Sheets”,用于设置HTML标签的样式,它的基本结构如下:
基本结构

div{width: 480px; height: 320px; }

包含:选择符div;样式属性:width和height;样式属性值
  • 2.Css使用方式

样式表主要有4种方式,即,

  1. “内嵌样式”:写在style标签对里面。
举例
<style>
div{
    color: red;
}
</style>
  1. “行内样式”:直接写在标签行上面。
举例
<div style="color: red;">hello</div>
  1. “外链样式”:单独写一个css文件,通过link标签引入。
    举例
“导入式”:单独写一个css文件,通过@import导入。
举例
<style>
@import url("./index.css");
</style>

导入式可以同时导入多个样式,但导入每个文件时要如同写内嵌样式时,在每个属性值的末尾加上一个分号结尾。

四种方式的选择:

1.在开发中关于css样式一般或多或少都会使用一些行内样式与内嵌样式,但是主体还是通过引入单独的css文件进行使用的。

2.Link与@import两种方式都可以引入单独的css文件,我们一般选择link标签,即外链式。

3.Link与@import一些区别

(1)<link>除了加载CSS文件以外,它还能加载其它类型文件,如“icon”,而“@import”只能加载CSS文件

给网页加上图标:<link rel="shortcut icon" href="oa.jpg">

(2)<link>在现代的浏览器中是多线程加载的,也就是说在通过该标签加载一个文件的时候<body>标签内的DOM也在执行同步的加载。加载效率高于@import

(3)<link>作为一个标签,也就是一个DOM元素,是可以通过JavaScript进行操作的(如增加、删除<link>标签,修改<link>的属性值等)。而“@import”写在<style>标签内部或CSS文件内(写在<style>标签内和CSS文件内的写法一致),是无法通过JavaScript进行操作的。

  • 3.常用css选择器

    Css选择器常用类型
  1. CSS的基础选择器主要有三个:“标签选择器”、“类选择器”和“ID选择器”。
标签选择器
<style>
        div {
            font-size: 32px;
            color: brown;
            width: 300px;
            height: 100px;
            background-color: antiquewhite;
            border: 1px solid red;
            text-align: center;
            line-height: 100px;
        }
    </style>
类选择器
.sle{
        font-size: 32px;
        color: brown;
        width: 300px;
        height: 100px;
        background-color: antiquewhite;
        border: 1px solid red;
        text-align: center;
        line-height: 100px;
    }
    </style>
 <style>
        #sle {
            font-size: 32px;
            color: brown;
            width: 300px;
            height: 100px;
            background-color: antiquewhite;
            border: 1px solid red;
            text-align: center;
            line-height: 100px;
        }
    </style>
  1. 一个完整的HTML页面是有很多不同的标签组成,而标签选择器,则是决定哪些标签采用相应的CSS样式。
  • 后代选择器

后代选择器是对某元素所嵌套的指定元素进行选择,每个选择符之间用空格进行分割,多个嵌套层次应该以多个空格进行分割

后代选择器
 <style>
        div p {
            font-size: 32px;
            color: brown;
            width: 300px;
            height: 100px;
            background-color: antiquewhite;
            border: 1px solid red;
            text-align: center;
            line-height: 100px;
        }
        div .son{
            color: blue;
        }
    </style>
  • 子选择器

子选择器区别与后代选择器的地方就是,后代选择器可以选择嵌套在标签内部任意层级的标签元素,而自选择器只能选择当前标签往内一层的元素。每个选择符之间用“>”进行分割。

 <style>
        div>p {
            font-size: 32px;
            color: brown;
            width: 300px;
            height: 100px;
            background-color: antiquewhite;
            border: 1px solid red;
            text-align: center;
            line-height: 100px;
        }

        div>span {
            display: inline-block;
            width: 400px;
            height: 100px;
            border: 1px solid red;
            border-radius: 10px;
            text-align: center;
            line-height: 100px;
        }
    </style>
  • 伪类选择器

伪类选择器和其它选择器有所不同,它是通过触发一定的“事件”来实现效果,也就是说如果不进行任何操作是看不到该选择器的CSS样式设置的。
通用伪类选择器如下(如果要同时生效,顺序不能变):

作用于a标签上的伪类选择器如下:
a:link {color: #FF0000}     /* 未访问的链接 */
a:visited {color: #00FF00}  /* 已访问的链接 */
a:hover {color: #FF00FF}    /* 鼠标移动到链接上 */
a:active {color: #0000FF}   /* 选定的链接 */
  • 群组选择器

群组选择器的使用范畴是,多个选择器使用同一个样式或者同一组样式。这在做CSS样式初始化,CSS框架设计以及后期CSS代码优化时会经常使用。

群组选择器
p,div,h1,.mydiv,#par{
    color:red;
}

作用于“,”分隔的所有标签,类选择器,ID选择器。

  • 同级元素选择器

选定当前标签同级的其它指定标签。
同级元素有两种,即“+”和“~”,
“+”只能选择该标签相邻的下一个标签

“~”能选择该标签后的所有同级标签。

  p ~ div{
            color: brown;

        }
 <body>
   <a href="https://www.baidu.com/">点击一下</a>
   <div>hello style!</div>
   <p>hello</p>
   <div>hello stye!</div>
   <h1>hello hello</h1>
   <h1>hello hello</h1>
   <div>hello</div>
</body>
  • 属性选择器

    1. [属性名]{...样式设置内容...}
    
    举例:[title]{
               color;red;
        
    }
    
    2.[属性名="属性值"]{...样式设置内容...}
    
    
    3.[type^="datetime"]{...样式设置内容...}
    
    举例:[title^="iam"]{
             color;red;
    }
    4.[title$="picture"]{...样式设置内容...}
    
     举例:[title$="h1"]{
             color;red;
    }
    5.[title*="is"]{...样式设置内容...}
    
    将标签中的一个属性名名为“title”,属性值含有“is”的属性名值对作为一个选择器
    
    举例:[title*="h1"]{
             color;red;
    }
    
    6.[title~="a"]{...样式设置内容...}
    
    将标签中的一个属性名名为“title”,属性值含有空格分隔的词为“a”的属性名值对作为一个选择器
    这个规则会选择 title 文本包含 "a" 的所有图像
    
     举例:[title~="a"]{
             color;red;
    }
    
    7.[title|="this"]{...样式设置内容...}
    
    将标签中的一个属性名名为“title”,属性值等于“this”或以“this”开头的属性名值对作为一个选择器。以连字符(-)连接的如lang ="this-us",也算以this开头
    
    上面这个规则会选择  title 属性等于 this 或以 this- 开头的所有元素
    
    举例:[title|="this"]{
             color;red;
    }
    
  • 4.权重

当样式冲突时,将根据【权重+就近原则】来判断以谁的样式为准。

  • 基本类型选择器权重
行列样式:1000

Id选择器: 100

Class选择器:10【属性选择器】

标签选择器:1

*任意符选择器:0 (大于默认样式与继承验样式)
  • 组合选择器权重

群组选择器: 单独计算
后代,子代,兄弟等选择器:权重相加

  • 就近原则

当权重值相同时,谁和要设置的html标签隔得近,谁的权重就高。

  • 先比较权重,权重相同依据就近原则
  • 继承比默认的大,但是比赋予的权重小;
  • 后代,子代,兄弟等选择器,权重相加(.name>p,权重为10+1=11)
  • 群组选择器: 单独计算(div,p,h1,.name ,#pra 权重分别为:1,1,1,10,100)

猜你喜欢

转载自blog.csdn.net/weixin_43748812/article/details/84555031