天天看点

css属性选择器~= *=的区别

属性选择器是一个很偏的知识点,基本开发时用不到,但不代表开发时永远用不到

今天笔者来教你属性选择器里比较难区分的知识点

看代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            height: 40px;
            width: 200px;
            background: black;
        }
    </style>
</head>

<body>
    <div></div>
</body>

</html>           

效果图

css属性选择器~= *=的区别

大概是个长方形的黑体

现在进入正文

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            height: 40px;
            width: 200px;
            background: black;
        }

        div[class*="red"] {
            background: red;
        }
    </style>
</head>

<body>
    <div class="inter bg-red"></div>
</body>

</html>           
css属性选择器~= *=的区别

我们使用了*=  将背景改成红色

我们来看一下 *=的定义

选择属性值中包含子串 "red" 的所有元素

那如果我们使用~=会怎么样?

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            height: 40px;
            width: 200px;
            background: black;
        }

        div[class~="red"] {
            background: red;
        }
    </style>
</head>

<body>
    <div class="inter bg-red"></div>
</body>

</html>           
css属性选择器~= *=的区别

没有变化,那~=的定义到底是什么呢

定义如下

如果需要根据属性值中的词列表的某个词进行选择,则需要使用波浪号(~)

是的,必须某个词

我们改变下代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            height: 40px;
            width: 200px;
            background: black;
        }

        div[class~="bg-red"] {
            background: red;
        }
    </style>
</head>

<body>
    <div class="inter bg-red"></div>
</body>

</html>           
css属性选择器~= *=的区别

对,这样就可以了

因为   <div class="inter bg-red"></div>

class = "inter bg-red"

这里有2个词

接下来,使用*=

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            height: 40px;
            width: 200px;
            background: black;
        }

        div[class*="bg-red"] {
            background: red;
        }
    </style>
</head>

<body>
    <div class="inter bg-red"></div>
</body>

</html>           
css属性选择器~= *=的区别

现在你是不是发现*=可以代替~=的功能