CSS3学习笔记(1)-CSS3选择器
p{
font-size: 15px; text-indent: 2em;
}
.alexrootdiv>div{
background: #eeeeee; border: 1px solid #aaa; width: 99%; padding: 5px; margin: 1em 0 1em 0;
}
.alexrootdiv>div>p:first-of-type{
font-size: 18px; font-weight: bold; color: red;
}
.alexrootdiv span{
color:blue;font-weight:bold;
}
.alexrootdiv table{
margin-top:10px;border-collapse:collapse;border:1px solid #aaa;width:100%;
}
.alexrootdiv table th{
vertical-align:baseline;padding:5px 15px 5px 6px;background-color:#d5d5d5;border:1px solid #aaa;text-align:left;
}
.alexrootdiv table td{
vertical-align:text-top;padding:6px 15px 6px 6px;background-color:#efefef;border:1px solid #aaa;
}
.attentationp{
font-size: 15px; text-indent: 2em; background: #ee0; color: red; font-weight: bold;
}
-->
CSS3与CSS2相比发生了很大的变化,CSS3的亮点功能包括实现圆角、阴影、新的flex伸缩布局模型、多列布局模型、填充色的渐变、2D变形(位移、缩放、旋转、倾斜)、3D变形、动画(transition过渡动画、animation关键帧动画)等。看到这些字眼,你实际上已经可以深深感受到CSS3的野心,通过这些东西基本上都可以做出很棒的多媒体演示了,flash、Powerpoint制作演示也无外乎这些东西而已!
确实如此,CSS从CSS3开始,已经从单纯的实现静态页面元素布局美化之中超脱出来,向静态页面元素的互动进军,我们可以不使用Javascript即可实现很多有意思的动画效果。接下来我将这一段时间以来所学CSS3的内容按模块整理出来,首先整理的部分是CSS3的选择器。
之所以首先整理选择器,是因为在CSS3中写入样式代码时,首先需要确定的就是选择什么标签进行格式设置。CSS的选择器非常丰富,它不仅可以被用在CSS中,还可以被应用到很多场合,比如JQuery、D3、Html Canvas绘图中。因而,使用好CSS的选择器,包括CSS3新增的选择器非常重要。CSS3的选择器可以大致分内五大类别:基本选择器、层次选择器、伪类选择器、伪元素以及属性选择器。
基本选择器
基本选择器是使用最频繁的选择器,早在CSS1版本就已经被定义。
| 选择器 | 类型 | 描述 | 实例 |
|---|---|---|---|
| * | 通配选择器 | 选择文档中所有的HTML元素 | *{margin:0;padding:0;} |
| div、p、span等标签名 | 元素选择器 | 选择指定标签对应的HTML元素 | div{float:left;} |
| #id | ID选择器 | 选择ID属性为"id"的任意HTML元素 | #firstDiv{background:gray;} |
| .classname | 类别选择器 | 选择class属性为"classname"的任意HTML元素 | .demo{border:1px solid #ccc;} |
| selector1,selector2 | 群组选择器 | 选择由selector1和selector2选择器选择元素的组合后的集合 |
多类选择器:该选择器是类选择器使用的一个特殊方法,我们可以为我们的页面元素设置一个多类class属性,其属性间用空格分割,代码参考如下:
<style>
.important{...}
.title{...}
.item{...}
.important.item.title{...}
</style> <ul class="clearfix demo">
<li class="important item title">important</li>
<li class="important itemeven">important</li>
<li class="important itemodd">important</li>
</ul>
以上代码中多个类选择器内部的设置我省略掉了,只是通过代码来说明多类选择器的应用场合及使用方法。
层次选择器
层次选择器通过HTMl的DOM元素间的层次关系获取定位页面元素,其层次关系分为后代、父子、兄弟关系,其中兄弟关系又分相邻兄弟、通用兄弟关系。
| 选择器 | 类型 | 描述 | 实例 |
|---|---|---|---|
| A B | 后代选择器 | 选择包含在A元素中所有的B元素,A元素是B元素的祖宗 | div p{text-indent:2em;} |
| A>B | 子选择器 | 选择A元素下一层中所有的B元素,A元素是B元素的父亲 | div>p{text-indent:2em;} |
| A+B | 相邻兄弟选择器 | 选择紧接在A元素后,与A元素同层次的一个B元素 | |
| A~B | 通用兄弟选择器 | 选择在A元素后,与A元素同层次的所有B元素 |
伪类选择器
伪类选择器又分为六种:动态伪类选择器、目标伪类选择器、语言伪类选择器、状态伪类选择器、结构伪类选择器和否定伪类选择器
| 选择器 | 类型 | 描述 | 实例 |
|---|---|---|---|
| A:link | 动态伪类选择器 | 选择所有A元素,且这些元素定义了超链接并且还未被访问过 | a:link{} |
| A:visited | 同上 | 选择所有A元素,且这些元素被定义了超链接并且已被访问过 | |
| A:active | 同上 | 选择所有A元素,且这些元素被激活 | |
| A:hover | 同上 | 选择所有A元素,且鼠标停留在当前A元素上 | |
| A:focus | 同上 | 选择所有A元素,且这些A元素当前获取了焦点 | |
| A:target | 目标伪类选择器 | 选择所有A元素,且A元素被相关的URL所指向 | |
| A:lang(language) | 语言伪类选择器 | 选择所有A元素,且A元素被指定了lang属性,其属性值为"language" | |
| A:checked | 状态伪类选择器 | 选择复选或单选按钮,且其处于被选中状态 | |
| A:enabled | 同上 | 选择所有被启用的表单元素 | |
| A:disabled | 同上 | 选择所有被禁用的表单元素 | |
| A:not(B) | 否定伪类选择器 | 找到不是B的所有A元素 |
结构伪类选择器比较多,以下我再用一个表格单独来显示:
| 选择器 | 描述 | 实例 |
|---|---|---|
| A:first-child | 选择一个A元素,且A元素是其父元素中的第一个子元素 | |
| A:last-child | 选择一个A元素,且A元素是其父元素中的最后一个子元素 | |
| A:root | 选择A元素所在文档的根元素,一般是<html>标签 | |
| A B:nth-child(n) | 选择A元素中的第n个子元素,且这个子元素是B元素 | |
| A B:nth-last-child(n) | 选择A元素中的倒数第n个子元素,且这个元素是B元素 | |
| A:nth-of-type(n) | 选择一个A元素,且A元素是父元素中所有A元素的第n个 | |
| A:nth-last-of-type(n) | 选择一个A元素,且A元素是父元素中所有A元素的倒数第n个 | |
| A:first-of-type | 选择一个A元素,且A元素是父元素中所有A元素的第1个 | |
| A:last-of-type | 选择一个A元素,且A元素是父元素中所有A元素的倒数第1个 | |
| A:only-child | 选择一个A元素,且A元素在父元素中是唯一的一个元素 | |
| A:only-of-type | 选择一个A元素,且A元素在父元素中是唯一的一个A元素 | |
| A:empty | 选择A元素,且A元素不包含任何子元素 |
伪元素
伪元素都带有2个冒号,其与伪类选择器存在差异,需要特别注意。
| 选择器 | 描述 | 实例 |
|---|---|---|
| A::first-letter | 选择A元素文字内容中第一个字母或文字 | |
| A::first-line | 选择A元素中第一行文字 | |
| A::before | 选择A元素的开始位置,使用时需要指定content属性 | |
| A::after | 选择A元素的结束位置,使用时需要指定content属性 | |
| A::selection | 选择A元素当前选择文字内容,只能指定background、color属性 |
属性选择器
属性选择器基于元素的属性进行查找。
| 选择器 | 描述 | 实例 |
|---|---|---|
| A[attr] | 选择具有属性"attr"的所有A元素 | |
| A[attr=val] | 选择"attr"属性值等于"val"的所有A元素 | |
| A[attr|=val] | 选择"attr"属性值含有"val"或者以"val-"开头的所有A元素 | |
| A[attr~=val] | 选择"attr"属性值含有"val"这个单词(单词与单词间以空格分开)的所有A元素 | |
| A[attr*=val] | 选择"attr"属性值任意位置含有"val"的所有A元素 | |
| A[attr^=val] | 选择"attr"属性值以"val"开头的所有A元素 | |
| A[attr$=val] | 选择"attr"属性值以"val"结尾的所有A元素 |
CSS3学习笔记(1)-CSS3选择器的更多相关文章
- CSS3学习笔记(3)-CSS3边框
p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...
- CSS3学习笔记(4)-CSS3函数
p{ font-size: 15px; text-indent: 2em; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid ...
- CSS3学习笔记1-选择器和新增属性
前言:之前自学了一些关于CSS3的知识,在学习过程中也遇到过坑,不过总算磕磕绊绊的学习完了关于CSS3的相关知识,于是最近把之前的笔记和代码整理了一下,也算是一个对CSS3知识的回顾复习吧,也希望能够 ...
- HTML5移动开发学习笔记之CSS3基础学习
CSS回顾 在学CSS3之前首先巩固下CSS的基础知识. 1.CSS框模型 举例子: #box { width: 70px; margin: 10px; padding: 5px; } 这个代码将出现 ...
- HTML5+CSS3学习笔记(一)
HTML5+CSS3概述 HTML5和CSS3不仅仅是两项新的Web技术标准,更代表了下一代HTML和CSS技术.虽然HTML5的标准规范还没有正式发布,但是未来的发展前景已经可以预见,那就是HTML ...
- CSS3学习笔记之linear-gradient
我觉得CSS3很不错,自己也稍微看过,并且尝试过一些属性.对我自己而言,我没有勇气说我学过CSS3,我觉得任何自己看来很小的事情,也只是站在自己的角度来评判.就算的是"简单的"HT ...
- css3学习笔记三
css3有些特殊的元素选择器这和jquery相似.效果图如下
- HTML5+CSS3学习笔记(一) 概述
HTML5+CSS3概述 HTML5和CSS3不仅仅是两项新的Web技术标准,更代表了下一代HTML和CSS技术.虽然HTML5的标准规范还没有正式发布,但是未来的发展前景已经可以预见,那就 ...
- CSS学习笔记之CSS3新特性
目录 1.边框 2.背景 3.文本 4.字体 5.转换 6.过渡 7.动画 8.多列 9.自定义尺寸 CSS 用于控制网页的样式和布局,而 CSS3 是最新的 CSS 标准,这篇文章将着重介绍 CSS ...
随机推荐
- STAR法则
现在相信大部分跳槽的朋友都已经将工作辞了,正在找工作的这个漩涡中,还没辞掉的可能也快了,找工作的这段时间是一个非常考验你的扛打击能力的时候.像网上投了几十家简历,只有几家邀请面试的,其他都是连面试阶段 ...
- RDLC系列(一)ASP.NET RDLC 报表自定义数据源
最近一段时间开发ERP系统中要用到不少报表打印,在网上找了一圈发现想些好用的报表控件大部分要收费,一些面免费要么不好用要么IE8不兼容,最后还是用了微软自带的RDLC报表,把自己遇到的坑和技巧整理分享 ...
- 每天一个Linux命令(05)--rm命令
自从学会了用mkdir创建目录之后,整个系统里就只能看到一堆空目录了,囧~ 那么今天我们来学一下如何清理这些空目录吧--rm命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录 ...
- Android中Handler使用浅析
1. Handler使用引出 现在作为客户,有这样一个需求,当打开Activity界面时,开始倒计时,倒计时结束后跳转新的界面(思维活跃的朋友可能立马想到如果打开后自动倒计时,就类似于各个APP的欢迎 ...
- 在Vue中通过自定义指令获取元素
vue.js 是数据绑定的框架,大部分情况下我们都不需要直接操作 DOM Element,但在某些时候,我们还是有获取DOM Element的需求的: 在 vue.js 中,获取某个DOM Eleme ...
- Cloud9vue&vux上传github小步骤
成功后创建出以下文件,再输入: git init 再输入:$ git remote add origin https://github.com/github用户名/vux1 然后:git add. 按 ...
- Linux 安装DenyHost防止ssh被暴力破解
DenyHosts介绍 当你的linux服务器暴露在外网当中时,服务器就极有可能会遭到互联网上的扫描软件进行扫描,然后试图连接ssh端口进行暴力破解(穷举扫描).如果遇到这个问题,一款非常有用的工具D ...
- java程序员入门:英语好不好对编程到底有没有影响
我想当码农,听说钱钱拿的多! 哦.是很有钱!么样? 可是我不会! 那你想么样?去学撒! 可是,我英语差-- 有多差??? 很差-- 那????? 关于英语水平对编程的影响,我们一起来看看啦!希望可以解 ...
- redux-form的学习笔记
redux是一种常用的与react框架搭配的一种数据流架构,而伴随着redux的出现,也出现了许多基于redux开源的第三方库,而redux-form就是其中之一的开源组件库,到今天我写下这篇笔记为止 ...
- ImportError: No module named cv2 解决方法
ImportError: No module named cv2 解决方法 import cv2时会出现这个问题 解决方法:将openCV安装目录里的python文件夹内的cv2.pyd复制到Py ...