CSS⼀个元素同时使⽤多个类选择器(classselector)
⼀个元素同时使⽤多个类选择器
CSS中类选择器⽤点号表⽰。实际项⽬中⼀个div元素为了能被多个样式表匹配到(样式复⽤),通常div的class中由好⼏段组成,如<div class="user login">能被.user和.login两个选择器选中。如果这两个选择器中有相同的属性值,则该属性值先被改为.user中的值,再被改为.login中的值,即重复的属性以最后⼀个选择器中的属性值为准。测试如下:
<style>
.user
{
font-size: 30px;
background-color:red;
}
.
login
{
background-color:blue;
}
</style>
</head>
<body>
<div class='user'>你好。这是⼀个 DIV 元素,class='user'。</div>
<div class='login'>你好。这是⼀个 DIV 元素,class='login'。</div>
<div class='user login'>你好。这是⼀个 DIV 元素,class='user login'。</div>
</body>
第三个div元素的背景颜⾊以.login中的为准,效果如下图:
CSS类选择器的匹配规则
CSS中多个类选择器之间有没有空格是怎样的匹配规则?如.user.login和.user .login(中间有空格)的区别?
直接上例⼦。电商项⽬中的导航栏,包括⽤户的登录/注册/注销,以及购物车等信息。
Html:
<div class="nav">
<div class="w">
<div class="user-info">
<span class="user not-login">
<span class="link js-login">登录</span>
<span class="link js-register">注册</span>
</span>
<span class="user login">
<span class="link-text">
欢迎,
<span class="username"></span></span>
<span class="link">退出</span>
</span>
</div>
<!-- 右侧的导航链接 -->
<ul class="nav-list">
<li class="nav-item">
<a class="link" href="./cart.html">
<i class="fa fa-shopping-cart"></i>
购物车(<span class="cart-cont">0</span>)
</a>
</li>
<li class="nav-item">
<a class="link" href="./order-list.html">我的订单</a>
</li>
<li class="nav-item">
<a class="link" href="./user-center.html">我的MMall</a>cssclass属性
</li>
<li class="nav-item">
<a class="link" href="./about.html">关于MMall</a>
</li>
</ul>
</div>
</div>
CSS:
.
nav{
background: #eee;
height: 30px;
line-height: 30px;
}
/* ⽤户部分 */
.nav .user{
float: left;
}
.nav .user.login{
display: none;
}
.nav .user .link{
margin-right: 5px;
}
/* 导航链接部分 */
.nav .nav-list{
float: right;
}
.nav .nav-list .nav-item{
display: inline-block;
margin-left: 5px;
}
观察上⾯代码的运⾏结果可知:
.nav .user(中间有空格)匹配到class含有nav的元素下⾯的class含有user的元素,是<span class="user not-login">和<span class="user login">。
.user.login(中间没有空格)匹配到class同时含有user和login的元素,是<span class="user login">。
.nav .user.login(.nav和.user中间有空格,.user和.login中间没有空格)匹配到class含有nav的元素下⾯的class同时含有user和login 的元素,是<span class="user login">。
⼀个更⼩的例⼦
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>类选择器</title>
<style>
.user.login /* 匹配同时包含user和login的元素 */
{
font-size: 35px;
}
.user .login{ /* 匹配含user下的含login的元素 */
background-color:green;
}
</style>
</head>
<body>
<div class='user'>你好。这是⼀个 DIV 元素,class='user'。
<div class='login'>你好。这是⼀个 DIV 元素,class='user login'。</div>
</div>
<div class='login'>你好。这是⼀个 DIV 元素,class='login'。</div>
<div class='user login'>你好。这是⼀个 DIV 元素,class='user login'。</div>
</body>
</html>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。