CSS生僻问题一网打尽
CSS生僻问题一网打尽
伪类和伪元素
伪类
何为伪类? 像类不是类,不是自己声明的类(不写样式也存在).
对伪元素的认识在早期网页上的超链接.链接(锚啊)用下划线标出来,点击后链接变紫色,鼠标悬上去变色.
链接伪类
css2.1 定义了两个只应用于超链接(拥有 href 属性的所有 a 元素)的伪类.
| 伪类名 | 描述 |
|---|---|
| :link | :visited |
| 指示作为超链接(href)并指向一个*未访问*地址的所有的锚(注意不是所有的锚,是未访问过的,但是有的浏览器可能不是这么做的) | 指示已访问过的所有的锚 |
动态伪类
| 伪类名 | 描述 |
|---|---|
| :focus | 当前拥有焦点(可用tab切换)的元素,能接受输入或能被激活的元素 |
| :hover | 鼠标正停留在上面的元素(不只限于超链接) |
| :active | 指示被输入或激活的元素(不只限于超链接) |
动态伪类可以应用到任何元素,对非链接的样式应用很有用.
选择第一个子元素
还有另外一个静态伪类 :first_chilid 来选择元素的第一个子元素.
<div>
<p></p>
<ul>
<li href='abc'></li>
<li></li>
</ul>
</div>
所以
div:first_child 的第一个子元素是 <p></p>
ul:first_child 的第一个子元素是 <li href='abc'></li>
结合伪类
在 CSS2.1 中,可以在同一个选择器中结合使用伪类.
a:link:hover { }
a:visited:hover { }
a:hover:visited { }
顺序是不重要的,效果是一样的.
伪元素
伪元素选择器
就像伪类为锚指定幻像类一样,伪元素能够在文档中输入假想的元素.从而得到某种效果.
CSS2.1 中弄了四个伪元素, 设置首字母样式的(:first-letter),设置第一行的(:first-line),设置之前(:before),设置之后(:after)的.
说到,:after,:before,在content属性"自是必不可少的".
而且,在CSS3中,伪元素由一个 : 升为 ::,意在与伪类进行区分,但是目前还在兼容单冒号,官方推荐用俩冒号.
属性选择器
h1[class] { color:red; }
a[href][title] { font-weight:bold; }
根据具体属性值进行选择
a[href="http:a.com"]
planet[moons="1"]
这货对这种简单的属性值进行匹配尚可.
诸如对
<p class="urgent warning "> </p>
使用时要小心,它的属性匹配没有多类选择那样自然, 它实际上就是一个完全串匹配.所以,该有的空格还得有.
如果用的不不方便,可以用下面这个
根据部分属性值进行选择
对上面的例子就可这样用:
p[class~="warning"]
相信你已经发现了,这货可以替代类选择器啊.
单类选择没必要这么矫情,对于多类选择是很有必要的,
你可知,在IE7之前的版本中,IE是不能正确处理多类选择器的.
<p class="urgent warning "> </p>
p.warning.help {}
通常可以认为,这个选择器只将匹配class包含warning和help的那些p元素.
可是在IE7之前的版本中,p.warning是可以用的,但是p.waring.help是会匹配class为help的所有p元素的,因为help在选择器中最后出现的,完全没有warning什么事.
所以,用属性选择器,可以绕开这问题.
选择器的特殊性
选择器的特殊性由选择器本身的组件确定. 特殊性值表述为4个部分,形如 0.0.0.0, 虽不是数,以数看待.
一个选择器的特殊性如下:
- 对于选择器中给定的各个 # ID属性值,加分 0,1,0,0;
- 对于选择器中给定的类属性值(.class),属性选择(xxx [atr=’’])或者伪类,加分 0,0,1,0
- 对于选择器中给定的各个元素(htm body div span)和伪元素,加 0,0,0,1. 据文档显示,伪元素加分从CSS2.1开始
- 结合符(+,,>,且完全没有特熟悉) 和 通配符(\*,对特殊性的贡献值为0,0,0,0).
说多了浪费,上例子
| 选择器 | 特殊性获值 |
|---|---|
| h1 { } | 0,0,0,1 |
| p em {} | 0,0,0,2 |
| .grap { } | 0,0,1,0 |
| *.grap { } | 0,0,1,0 |
| p.bright em.dark { } | 0,0,2,2 |
| #id { } | 0,1,0,0 |
| div#header *[attr] { } | 0,1,1,1 |
看过了这些,这四位中的第一位还未曾谋面,有谁这么厉害? 内联样式,写在 html 行内的.
算这些,是用在多个选择器争夺相同的元素时,看谁的能力强.
未完,待续...
CSS生僻问题一网打尽的更多相关文章
- Matplotlib数据可视化(3):文本与轴
在一幅图表中,文本.坐标轴和图像的是信息传递的核心,对着三者的设置是作图这最为关心的内容,在上一篇博客中虽然列举了一些设置方法,但没有进行深入介绍,本文以围绕如何对文本和坐标轴进行设置展开(对图像 ...
- 只会CSS还不够,LESS、SASS、BootStrap、Foundation一网打尽!
有些人想学CSS,不知如何下手:有些人已经学会CSS的各种属性,却不知如何运用:有些人会平面设计,不知道如何与网页设计结合:有些人会HTML,就是学不会CSS.试问自己,图中的技术你都会了吗? 别总是 ...
- 超出区域文字显示为省略号或者剪切效果——CSS的生僻操作
每门语言总有那么一些不太常用,却又不可或缺的语法操作.下面说一下,在HTML文件中,如何设置用 "省略号" 和 "剪切" 代替大量文字的效果. 以下是HTML的 ...
- 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- 谈谈一些有趣的CSS题目(十一)-- reset.css 知多少?
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...
- 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- 谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
- 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit
开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...
随机推荐
- Java正则认识
一.为什么要有正则? 方便的对数据进行匹配 执行复杂的字符串验证.拆分.替换功能 举例:判断一个字符串是否由数字组成.(有以下两种方法对比) 不使用正则 String str = "1234 ...
- git版本控制管理实践-3
git -m 和git -a -m(-am) . 的区别? usally two steps to commit files to respository: first, git add somefi ...
- tyvj1106 登山
背景 在很久很久以前,有一个动物村庄,那里是猪的乐园(^_^),村民们勤劳.勇敢.善良.团结…… 不过有一天,最小的小小猪生病了,而这种病是极其罕见的,因此大家都没有储存这种药物.所以晴 ...
- 微信"附近的人"新增商家公众号入驻功能
微信近日升级了“附近的人”,新增商家公众号(认证的服务号和有卡券功能的公众号)可自入驻,这是微信在推出卡券和微信wifi功能后,又一加强连接线下商户能力的功能. 微信在“附近的人”中 增加搜索商户功能 ...
- css pre标签
浏览器:firfox49.0.2 在使用<pre>标签输出格式化文本的时候,遇到了一个小问题. 要在页面的底部输出两行文本,但是最后一行的文字总是距离屏幕的底部太大.下面图中的样子: 相关 ...
- Linux高并发机制——epoll模型
epoll是一个特别重要的概念,常常用于处理服务端的并发问题.当服务端的在线人数越来越多,会导致系统资源吃紧,I/O效率越来越慢,这时候就应该考虑epoll了.epoll是Linux内核为处理大批句柄 ...
- strcmp
C++ Code 123456789101112 int strcmp(const char *dest, const char *source) { assert((NULL != ...
- css content 如何自定义生成图标?
作者:仅愚链接:https://www.zhihu.com/question/22022905/answer/20585820来源:知乎著作权归作者所有,转载请联系作者获得授权. :before(或: ...
- Linux find 用法示例
Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数 ...
- 【XLL 框架库函数】 TempErr/TempErr12
创建一个包含了 Excel 工作表错误的临时 XLOPER/XLOPER12 原型 LPXLOPER TempErr(WORD err); LPXLOPER12 TempErr12(BOOL err) ...