组合使用css选择器
今天看到有网站使用.classA.classB类似的选择器,不知道是否有人和我一样没有用过,所以了解一下,以下记录。
一、用法介绍
在css中.classA.classB指的是一个元素,同时满足classA和classB,即(class="classA classB")
<style>
.classA.classB{
border:1px solid red;
}
.classa .classb{
border:1px solid blue;
}
</style>
------------------------------------------------
<body>
<input type="text" class="classA classB" value="选择器为.classA.classB"/>
<div class="classa">
<input class="classb" type="text" value="选择器为.classa .classb" />
</div>
</body>

id选择器也是类似的:
<style>
#id.class{
width:150px;
height:50px;
background-color: red;
}
#id .class{
width:150px;
height:50px;
background-color: green;
}
</style>
--------------------------------------------------------
<body>
<div id="id" class="class">选择器#id.class</div>
<br/>
<div id="id">
<div class="class">
选择器#id .class
</div>
</div>
</body>

同时使用多个选择器的组合同理。
<style>
#one.two.three{
color:red;
}
</style>
------------------------------------------------------------
<body>
<p id="one" class="two three">选择器是 #one.two.three</p>
</body>

二、什么场合下使用?
类似#id.class这样的写法真的可取吗?id选择器本来就是独一无二的,为什么还要和class选择器组合使用呢?
这种写法在有些场合确实是有它的用武之地的。
1、覆盖已有样式时可以使用:
举个例子:
<style>
#header{
color:red;
}
</style>
</head>
<body>
<p id="header" >什么场合使用?</p>
</body>

现在的文章颜色为红色,想将其变为黑色怎么办?
使用!import当然可以做到。
<style>
#header{
color:red;
}
.override{
color:black !important;
}
--------------------------------------
</head>
<body>
<p id="header" class=" override" >什么场合使用?</p>
</body>
但是!import能不用就不要用,此时使用#header.override更好一点。
<style>
#header{
color:red;
}
#header.override{
color:black;
}
-------------------------------------------------
</head>
<body>
<p id="header" class=" override" >什么场合使用?</p>
</body
“百度一下”就是用这种组合使用css的方法实现的。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>starof test demo</title>
<style type="text/css">
input {
border: 0;
padding: 0;
}
.s_btn {
width: 100px;
height: 36px;
color: white;
font-size: 15px;
letter-spacing: 1px;
background: #3385ff;
border-bottom: 1px solid #2d78f4;
outline: medium;
*border-bottom: 0;
-webkit-appearance: none;
-webkit-border-radius: 0
}
.s_btn.btnhover {
background: #317ef3;
border-bottom: 1px solid #2868c8;
*border-bottom: 0;
box-shadow: 1px 1px 1px #ccc
} </style>
</head>
<body>
<input type="submit" value="百度一下" class="bg s_btn"> hover效果为
<input type="submit" value="百度一下" class="bg s_btn btnhover">
</body>
</html>

2、 oocss样式
还有一种情况,就是下面这种oocss样式。
<style>
.box {
width: 100px;
height: 100px;
float: left;
margin:0 10px 10px 0;
}
.red{
color:red;
background-color: #f0C1C1;
}
.blue{
color: blue;
background-color: #6FADF8;
}
.green{
color: green;
background-color: #75C372;
}
.border{
border: 5px solid black;
}
</style>
---------------------------------------------------------
<body>
<div class="red border box">red border box</div>
<div class="blue border box">blue border box</div>
<div class="green border box">green border box</div>
<div class="red box">red box</div>
<div class="blue box">blue box</div>
<div class="green box">green box</div>
<div class="border box">border box</div>
</body>

如果现在有一个需求说:黑色的边框并不适合红色的盒子,需要把红色盒子的边框改为红色,这时候就可以使用.red.border选择器了。
.red.border{
border-color:red;
}

实际上,类似.classA.classB这样的用法之所以能覆盖原有样式,就是因为它改变了优先级。
关于优先级了解更多可参考:css优先级
资源链接:
https://css-tricks.com/multiple-class-id-selectors/
组合使用css选择器的更多相关文章
- css选择器四大类:基本、组合、属性、伪类
什么是选择器?选择器的作用是通过它可以找到元素,把css样式传递给元素!css选择器主要分为:基本选择器.属性选择器.组合选择器与伪类选择器四个大类! css基本选择器 基本选择器又分为:*通配符.标 ...
- from表单、css选择器、css组合器、字体样式、背景属性、边框设置、display设置
目录 一.form表单 1.form表单功能 2.表单使用原理 二.前端基础之css 1.关于css的介绍 2.css语法 3.三种编写CSS的方式 3.1.style内部直接编写css代码 3.2. ...
- 前端知识之CSS(1)-css语法、css选择器(属性、伪类、伪元素、分组与嵌套)、css组合器
目录 前端基础之css 1.关于css的介绍 2.css语法 3.三种编写CSS的方式 3.1.style内部直接编写css代码 3.2.link标签引入外部css文件 3.3.标签内直接书写 4.c ...
- js,jq,css选择器
js获取节点: var chils= s.childNodes; //得到s的全部子节点 var par=s.parentNode; //得到s的父节点 var ns=s.nextSbiling; / ...
- CSS选择器小结
在CSS3中是提倡使用选择器来将样式与元素直接绑定在一起的. 网页开发过程中,我们需要定义很多class来应用到不同的元素上,由于class本身是没有语义而且是可以复用的,所以过度使用class会使得 ...
- CSS系列:CSS选择器
选择器(selector)是CSS中很重要的概念,所有HTML语言中的标记样式都是通过不同的CSS选择器来控制的.用户只需要通过选择对不同的HTML标签进行选择,并赋予各种样式声明,即可实现各种效果. ...
- CSS选择器 转
来自于:http://www.cnblogs.com/webblog/archive/2009/08/07/1541005.html 最近在研究jQuery的选择器,大家知道jQuery的选择器和cs ...
- CSS选择器优先级总结
CSS三大特性-- 继承. 优先级和层叠. 继承:即子类元素继承父类的样式; 优先级:是指不同类别样式的权重比较; 层叠:是说当数量相同时,通过层叠(后者覆盖前者)的样式. css选择符分类 首先来看 ...
- CSS和CSS选择器
一:CSS CSS有三种书写形式(优先级从高到低) 1)行内样式:(内联样式)直接在标签style属性中书写 2)内页样式:在本网页的style标签中书写 3)外部样式:在单独的CSS文件中书写,然后 ...
随机推荐
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- web性能优化——代理(nginx)
简介 一个很好的原则是调优时每次只个性一个配置.如果对配置的个性不能提高性能的话,改回默认值 优化必须要通过性能测试.不能意淫,需要前后对比,真实说明问题. 场景 优化nginx. 确保每次请求控制一 ...
- knowing abstract,virtual,override,new
If a class has at least one member which modified by "abstract",this class is an abstract ...
- ENVI软件操作【数据显示操作——Overlay菜单操作】
一.注记层(Annotation) 注记层是ENVI的一个数据类型,它的后缀名是.ann.往往作为栅格数据层,矢量数据层.三维场景会绘图图表的附加数据叠加在上面,还可以作为镶嵌图像时候的裁剪线.注记数 ...
- TwentyTwenty – 使用 jQuery 实现图片对比功能
这是一款非常棒的图片对比工具,能够方便的应用到你的网站中.其基本思路是把两张图片层叠在一起,当你拖动滑竿的时候,利用 CSS clip 裁剪图片,进行形成视觉对比效果. 您可能感兴趣的相关文章 Met ...
- 前端优秀作品展示,JavaScript 版水果忍者
<水果忍者>是一款非常受喜欢的手机游戏,刚看到新闻说<水果忍者>四周年新版要上线了.网页版的切水果游戏由百度 JS 小组开发,采用 vml + svg 绘图,使用了 Rapha ...
- 简单两句话解释下prototype和__proto__
先上两句代码: var Person = function () {}; var p = new Person(); 把new的过程拆分成以下三步: <1> var p={}; 也就是说, ...
- 微信不支持Object.assign
微信不支持Object.assign,让我Vue怎么用QAQ... 解决方法: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refe ...
- JavaScript MVC框架和语言总结[infoq]
infoq关于javascript的语言和框架的总结,非常全面,值得一读. http://www.infoq.com/minibooks/emag-javascript Contents of the ...
- [Android]AndroidInject增加sqlite3数据库映射注解(ORM)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3623050.html AndroidInject项目是我写的一 ...