CSS和CSS3选择器

这一篇是对精通CSS:高级Web标准解决方案第二章的学习总结.
将会有以下内容:
(1).常用的选择器.
(2).高级选择器
(3).新的CSS3选择器

最常用的选择器类型是类型选择器和后代选择器.类型选择器用来寻找特定类型的元素,比如段落或者标题元素.有时候也被称为元素选择器或简单选择器.

p{color:black}
h1{font-weight:bold}

后代选择器可用了来寻找特定元素或元素组的后代.另外还有ID选择器和类选择器.ID选择器用#替代,类选择器用.替代.

#id{}
<p><span id="id">Harry Knowles</span></p>
.class{}
<p><span class="class">Harry Knowles</span></p>

通用选择器

可能是所有选择器中最强大却最少使用的.作用就像通配符,它匹配所有的元素.用型号代替.最常用的操作就是去除浏览器的padding和margin

*{
    margin: 0px;
    padding: 0px;
}

子选择器

后代选择器可以选择一个元素的所有后代,而子选择器只选择元素的直接后代,即子元素.

<div id="mu">
    <p>Harry Knowles</p>
    <div>
        <p>Harry Knowles</p>
    </div>
</div>

//对于以上的代码,写成子选择器则最终背景颜色变化的只有第一个p标签.
#mu>p{
    margin-top: 10px;
    background-color: #cccc00;
}
//但是写成这样,也就是后代选择器,两个都有效
#mu p{
    margin-top: 10px;
    background-color: #cccc00;
}

相邻同胞选择器 可以定位同一个父元素下某个元素之后的元素

直接看代码理解

<h2>这是一个标题</h2>
 <p>Harry Knowles</p>
<p>Harry Knowles</p>

对于以上的代码如何用相邻同胞选择器让第一个p标签变色呢.

h2 + p{
    margin-top: 10px;
    background-color: #cccc00;
}

属性选择器

根据某个属性是否存在或者属性的值来寻找元素.如果属性有多个值,用空格分开

<h2 title="标题">这是一个标题</h2>

//使用属性选择器改变h2的背景颜色
h2[title]{
    background-color: #cccc00;
}

—————————————————–华丽的分割线—————————————————————–

第二章能看的东西就这么多.我觉得内容太少了就把我看视频的笔记拿出来给大家看看

下面给出属性选择器另外一些写法.
*= 包含XXX
^= 首字母为xxx
$= 结束字符xxx

一个示例

<h2 title="a">这是一个标题</h2>
<h2 title="bba">这是一个标题</h2>
<h2 title="ab">这是一个标题</h2>

//比如这个会使第一个h2的标签背景变色,其他不变,另外两个可以试一下
h2[title~="a"]{
    background-color: #cccc00;
}

结构性伪类选择器

first-line 某个元素的第一行
first-letter:某个元素首个字母

<p>这是第一行的内容<br/>这是第二行</p>

//这里p元素的第一个标签背景会改变,第二个不变
p:first-line{
    background-color: #cccc00;
}

//这里第一个p元素的第一个字符会变成红色
p:first-letter{
    color: #dc143c;
}

x:before{ //在某元素之前添加
content:
}

<ul>
        <li>列表1</li>
        <li>列表2</li>
        <li>列表3</li>
    </ul>

//这里将会在ul列表的上方添加一个"加的内容"的文字
ul:before{
    content: "加的内容";
}

其他一些选择器

root:绑定到页面的根元素中 如果设置了root,那么body的作用域就只有内容区域,反之body沾满全屏()
not:如果想对某个结构元素使用样式,但想排除这个结构下面的子结构元素
empty:指定当前元素中内容为空白时使用的样式

x代表元素名称
x:first-child{}
x:last-child{}
x:nth-child(position){} 从上往下数 包括父级和子级 position可以是数字也可以是奇偶数等等可以表示位置的词语奇数(odd) 偶数(even)
x:nth-of-type(){}
x:nth-last-child(position){}从下往上数
nth-last-of-type 同上类似

这里写出root,not,x中的第三个,第四个示例.其他的一看便知.

root:

//以下的代码将会看到整个屏幕背景是黄色,body所设置的图片背景只会作用在<div>所占的空间
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        :root{
            background-color: fuchsia;
        }
    </style>
</head>
<body background="1.jpg">
    <div>哈喽,root</div>
</body>
</html>

not

    <div><p>哈喽,root</p></div>
    <div><h1>哈喽,root</h1></div>
    <div><h2>哈喽,root</h2></div>

 //以下代码将会使除了p标签之外的其他标签变色
div *:not(p){
            color: fuchsia;
        }

x:nth-child(position){}

 <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>

//以下代码将会使第二个li标签也就是2的文字变色.
//PS:一开始我以为X的部分要写ul,并且position从0开始.这里并不是,锁着这里是有先决条件的.必须是同一个父元素下.
li:nth-child(2){
            color: fuchsia;
        }

x:nth-of-type(){}

       <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
//以下代码将会使li标签中奇数li标签字体变色.偶数为even.这里括号的条件并不局限于奇数和偶数
li:nth-of-type(odd){
            color: fuchsia;
        }

选择器的内容大概就这些.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值