CSS选择器详解(二)通用选择器和高级选择器

目录

  1. 通用选择器
  2. 高级选择器
    • 子选择器
    • 相邻兄弟选择器
    • 属性选择器

通用选择器

通用选择器可以选择页面上的所有元素,并对它们应用样式,用 * 来表示。

语法:

* { property1: value; property2: value; }

示例:

* { margin:0; padding:0;}

这行代码可以删除每个元素在浏览器中margin和padding的默认值。不同的浏览器对元素的默认margin和padding可能不同,用通用选择器把所有元素的margin和padding都设置为0方便我们精确地控制元素的margin和padding。

此处我们以IE11为例看一下实际效果:

当我们想要h1距离下一个元素的距离为20(此处假设下一个元素的margin-top, padding-top和border-weight都是0),可以通过设置padding-bottom为20px来实现,但观察效果却发现h1距离下一个元素远不止20px,这是由于IE11对h1有一个默认的margin值(可以观察到其实body也是有默认margin的),可以通过通用选择器来修复这个问题:

后代选择器子选择器

后代选择器

后代选择器选择一个元素的所有后代,而子选择器只选择元素的直接后来,即后代的后代不会受影响。

语法:

selector > child { property1: value; property2: value; }

示例:

<html>
    <head>
        <style type="text/css">
            #test>li{padding-left:30px;}
        </style>
    </head>
    <body>
        <ul id="test">
            <li>A</li>
            <li>B</li>
            <li>C
                <ul>
                    <li>C1</li>
                    <li>C2</li>
                    <li>C3</li>
                </ul>
            </li>
            <li>D</li>
        </ul>
    </body>
</html>

效果图:

#test>li{padding-left:30px;}

这行代码选择了id为test的子元素li,并将padding-left设置为30px,可以看到 li 标签内部的无序列表项目没有发生变化。若将以上代码改为

#test li{padding-left:30px;}

再来看一下效果图:

li中无序列表项的padding也发生了相应改变。

Note: 只有IE7机器更高版本浏览器才支持子选择器

相邻兄弟选择器

相邻兄弟选择器可以选择同一个父元素下某个元素之后的元素,并对其应用样式。

示例:

<html>
    <head>
        <style type="text/css">
            h1+p{color:Red;}
        </style>
    </head>
    <body>
        <h1>小胖搞IT</h1>
        <p>一个胖子从楼上掉下来...</p>
        <p>然后............</p>
        <p>奇迹发生了!</p>
        <p>他弹了起来!</p>
    </body>
</html>

效果图:

h1+p{color:Red;} 

这行代码选择了h1元素的下一个元素p,并将其设置为红色。

Note: 只有IE7机器更高版本浏览器才支持子选择器。

一个子选择器和相邻兄弟选择器结合使用的例子:

<html>
    <head>
        <style type="text/css">
            #test > h1 + p {color:Red;}
        </style>
    </head>
    <body>
        <div id="test">
            <h1>小胖搞IT</h1>
            <p>一个胖子从楼上掉下来...</p>
            <p>然后............</p>
            <p>奇迹发生了!</p>
            <p>他弹了起来!</p>
            <div>
                <h1>瘦子搞IT</h1>
                <p>一个瘦子从楼上掉下来...</p>
                <p>然后............</p>
                <p>奇迹没有发生!</p>
                <p>他摔死了!</p>
            </div>
        </div>
    </body>
</html>

效果图:

#test > h1 + p {color:Red;}

这行代码选择了id为test的元素的h1子元素,再找到它的下一个兄弟元素p,并设置为红色, <h1>瘦子搞IT</h1> 不是id为test的div的子元素,故没有变化。

属性选择器

属性选择器可以根据某个属性是否存在或根据属性的值来寻找元素,并对其使用样式。

语法:

示例:

<html>
    <head>
        <style type="text/css">
            a[title]{font-size:30px;}
            a[title="Fatty"]{color:Red;}
            a[title~="Fatty"] {font-weight:bold;}
            a[title|="FattyDoIT"] {font-style:italic;}
            a[title^="F"]{text-decoration:line-through; }
            a[title$="IT"]::before {content:url(star.png);}
            a[title*="Do"]::after {content:url(heart.png);}
        </style>
    </head>
    <body>
        <a href="http://www.cnblogs.com/fattydoit/">小胖搞IT</a><br>
        <a href="http://www.cnblogs.com/fattydoit/" title="FattyDoIT">小胖搞IT</a><br>
        <a href="http://www.cnblogs.com/fattydoit/" title="Fatty">小胖搞IT</a><br>
        <a href="http://www.cnblogs.com/fattydoit/" title="Fatty Do IT">小胖搞IT</a>
    </body>
</html>

效果图:

a[title]{font-size:30px;}

这行代码选择了所有具有title属性的a元素,并将字体大小设置为30px;

a[title="Fatty"]{color:Red;}

这行代码选择title值为Fatty的a元素,并将字体颜色设置为红色;

a[title~="Fatty"] {font-weight:bold;}

这行代码选择title所有属性值中包含Fatty的a元素,并将字体加粗;

a[title|="FattyDoIT"] {font-style:italic;}

这行代码选择title值以FattyDoIT开头且是一个单词的a元素,并将字体改为斜体;

a[title^="F"]{text-decoration:line-through; }

这行代码选择title属性值以F开头的所有a元素,并设置text-decoration为line-through;

a[title$="IT"]::before {content:url(star.png);}

这行代码选择title属性值以IT结尾的所有a元素,并在之前放置一张图片;

a[title*="Do"]::after {content:url(heart.png);}

这行代码选择title属性值中包含Do的所有a元素,并在之后放置一张图片。

原文网址:https://www.cnblogs.com/fattydoit/p/3494424.html

原文地址:https://www.cnblogs.com/cuteguru/p/9190208.html

时间: 2024-08-30 04:12:41

CSS选择器详解(二)通用选择器和高级选择器的相关文章

CSS系列(8) CSS后代选择器和子选择器详解

一.CSS后代选择器详解 1,  生动介绍基本概念 一个标签嵌B在另一个标签A内部,B就是A的后代. 而且,B的后代也是A的后代,这就叫“子子孙孙无穷尽也”. 比如: <div> <p>这个p标签是div的后代</p> <div> 后代选择器就是用来选择一个标签的后代的: 两个选择器中间添加一个[空格]就构成了后代选择器,空格后面的那个是后代. 例如: div p { color : red; } 它会选择一堆的p标签,只要这个p标签是嵌套在某个div标签内

CSS选择器详解

CSS选择器详解 选择器是CSS的核心,从最初的元素.class/id选择器,演进到伪元素.伪类,以及CSS3中提供的更丰富的选择器,定位页面上的任意元素开始变得愈发的简单. 1.元素选择器 这是最基本的CSS选择器,HTML文档中的元素本身就是一个选择器: p {line-height:1.5em; margin-bottom:1em;} 2.关系选择器 E F:后代选择器,该选择器定位元素E的后代中所有元素F: ul li {margin-bottom:0.5em;} E > F:子选择器,

css笔记-选择器详解

css笔记-选择器详解 CSS通过选择器来定位要应用样式的元素. 下面对所有的选择器做了一个解释(CSS为版本号). CSS选择器详解 选择器 例子 例子描述 CSS .class .intro 选择 class="intro" 的所有元素. 1 #id #firstname id="firstname" 的所有元素. 1 * * 选择所有元素. 2 element p 选择所有 <p> 元素. 1 element,element div,p 选择所有

CSS3 基础(1)——选择器详解

CSS3选择器详解 一. 属性选择器 在CSS3中,追加了三个属性选择器分别为:[att*=val].[att^=val]和[att$=val],使得属性选择器有了通配符的概念. 选择器 示例 描述 [attribute^=value] [src^="https"] 选择每一个src属性的值以"https"开头的元素 [attribute$=value] [src$=".pdf"] 选择每一个src属性的值以".pdf"结尾的

CSS3基本选择器详解

CSS的选择器,我想大家并不会陌生吧,因为天天在使用,但对于CSS3的选择器,要运用的灵活到位,我想对很多朋友还是一定的难度,特别是CSS3中的:nth选择器.那么从现在开始我们先丢开他们版本的区别,从头一起来看看CSS选择器的运用. CSS是一种用于屏幕上渲染html,xml等一种语言,CSS主要是在相应的元素中应用样式,来渲染相对应用的元素,那么这样我们选择相应的元素就很重要了,如何选择对应的元素,此时就需要我们所说的选择器.选择器主要是用来确定html的树形结构中的DOM元素节点.我把CS

CSS3伪类选择器详解

前面花了两节内容分别在<CSS3基本选择器>和<CSS3属性选择器详解>介绍了CSS3选择器中的基本选择器和属性选择器使用方法,今天要和大家一起学习CSS3选择器中的第三部分,也是最后一部分——伪类选择器.伪类选择器对于大家来说最熟悉的莫过于:link,:focus,:hover之类的了,因为这些在平时中是常用到的伪类选择器,那么先和大家一起简单总结一下CSS中常用的伪类选择器的使用方法,最后把重心放到CSS3新增加的":nth-child"选择器的使用方法.

CSS3属性选择器详解

上一章在<CSS3基本选择器>中主要介绍了CSS3选择器的第一部分,这节主要和大家一起来学习CSS3选择器的第二部分——属性选择器.属性选择器早在CSS2中就被引入了,其主要作用就是对带有指定属性的HTML 元素设置样式.使用CSS3属性选择器,你可以只指定元素的某个属性,或者你还可以同时指定元素的某个属性和其对应的属性值. 从上一节展示的CSS3选择器的图表中,我们可以知道,CSS3的属性选择器主要包括以下几种: E[attr]:只使用属性名,但没有确定任何属性值: E[attr="

CSS3属性选择器详解 及 双色球实战开发

在前面的章节中,我们了解了,可以使用行内样式,ID选择器,类选择器,以及标签选择器来给一个元素应用样式. 如果我们想给定义了那些都定义了某一个属性的元素应用样式,这个时候我们该怎么做呢? 这一节中,我将使用 双色球案例 和 文档类型提示图标案例 来引入和应用属性选择器. 双色球案例: 大家都知道,双色球共有7个球,6个红球,1个蓝球.首先我们先在页面上面定义7个span标签: <!DOCTYPE html> <html> <head> <meta charset=

CSS优先级详解(权重详解)

CSS选择器权重值的计算 对于Css权重,现在网上很多版本都是这样计算的:内联样式1000点,ID100点,Class.伪类(pseudo-classes)或属性选择器10点,标签元素和伪元素(pseudo-elements)1点:虽然大多数时候是正确的但因为真正的原理并非如此,所以某些情况下会出错. css权重有ABCD四个值,A代表行间样式,B代表选择器中ID的数量,C代表选择器中类, 伪类, 属性选择器的数量,D代表标签元素和伪元素的数量. 具体理解请看例子: * {} A,B,C,D(0

jquery validate 详解二

原文:http://blog.sina.com.cn/s/blog_608475eb0100h3h2.html 这里只是第二篇,前面的内容请参阅上一篇 五.常用方法及注意问题 1.用其他方式替代默认的SUBMIT 1 $().ready(function() { 2 $("#signupForm").validate({ 3 submitHandler:function(form){ 4 alert("submitted"); 5 form.submit(); 6