关于css选择器的一些细节

简介: 1.如何区分一个html标签的不同样式使用标签名.类名的方式解决如果希望特别强调其中的某一个或几个元素,处理的方案有三个:1.id选择器2.class选择器3.层级选择器看下面的代码: 床前明月光 疑是地上霜 举...

1.如何区分一个html标签的不同样式

使用标签名.类名的方式解决

如果希望特别强调其中的某一个或几个元素,处理的方案有三个:

1.id选择器
2.class选择器
3.层级选择器

看下面的代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
    </style>
</head>
<body>
<div>
    <h1>床前明月光</h1>
    <p>疑是地上霜</p>
    <span>举头望明月</span>
    <p>低头思故乡</p>
    <p>李白</p>
</div>
</body>
</html>

刷新浏览器后,显示的效果如下:

img_60bed841d47f4144a33bd816c1d5e0c4.png

现在想让李白这两个字变成红色斜体,可以有三种方法:

1.使用id选择器

代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        #te1{
            color:red;
            font-style:italic;
        }
    </style>
</head>
<body>
<div>
    <h1>床前明月光</h1>
    <p>疑是地上霜</p>
    <span>举头望明月</span>
    <p>低头思故乡</p>
    <p><span id="te1">李白</span></p>
</div>
</body>
</html>

刷新浏览器后的效果如下:

img_1cee82b622790a20e270f9d521524b0e.png

2.使用类选择器

代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .te1{
            color:red;
            font-style:italic;
        }
    </style>
</head>
<body>
<div>
    <h1>床前明月光</h1>
    <p>疑是地上霜</p>
    <span>举头望明月</span>
    <p>低头思故乡</p>
    <!--<p>李白</p>-->
    <p><span class="te1">李白</span></p>
</div>
</body>
</html>

刷新浏览器后的效果也是一样的.

3.使用层级选择器

代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        div > p > span{
            color:red;
            font-style:italic;
        }
    </style>
</head>
<body>
<div>
    <h1>床前明月光</h1>
    <p>疑是地上霜</p>
    <span>举头望明月</span>
    <p>低头思故乡</p>
    <!--<p>李白</p>-->
    <p><span>李白</span></p>
</div>
</body>
</html>

刷新浏览器后的效果也是一样的.

可以看出css是非常灵活的,但是这样一来什么时候该用哪个选择器呢??

. 首先id选择器用的地方并不多,尽量不要使用id选择器
. 使用的时候优先选择用类选择器
. 再考虑用html标签选择器
. 再然后再考虑用组合选择器
. 最后才考虑会id选择器
. 使用后代选择器时,尽量使用标签选择器或者类选择器和标签选择器的组合,
. id选择器和类选择器的优先级

实例代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .p1{
            color:red;
        }
        #p2{
            color:blue;
        }
    </style>
</head>
<body>
 <p class="p1" id="p2">hello world</p>
</body>
</html>

刷新浏览器,显示如下:

img_ecc1df87408e6efab057dec48b347825.png

可以看到显示的字体颜色是蓝色的,说明id选择器的优先级高于类选择器.

得出结论:

. 一个元素可以同时有id选择器和类选择器,当id选择器和类选择器发生冲突时,id选择器的优先级高于类选择器
. 一个元素最多有一个id选择器,但是可以有多个类选择器.
. 当一个元素被多个类选择器修饰地,用空格隔开

2.如何使用多个类选择器来修饰同一个html元素??

代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .class1{
            text-decoration:underline;
            color:black;
        }
        .class2{
            font-style:italic;
            font-size:20px;
        }
    </style>
</head>
<body>
 <p class="class1 class2">hello world</p>
</body>
</html>

刷新浏览器后显示的效果如下:

img_6a8e6a5ebd05bf02fe264e1648a89933.png

假如现在在class2这个选择器中设置字体颜色为红色,会怎么样呢?
代码如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
        .class1{
            text-decoration:underline;
            color:black;
        }
        .class2{
            font-style:italic;
            font-size:20px;
            color:red;
        }
    </style>
</head>
<body>
 <p class="class1 class2">hello world</p>
</body>
</html>

刷新浏览器显示的效果如下:

img_a609168913ee632d15a0c235639cc916.png

可以看到颜色变成红色.

结论如下:

. 多个类选择器在修饰同一个元素时,以写在后面的为准
. 当优先级相同的情况下,在发生冲突时,以写在style内容中的后面的那个为准
. 一个元素被多个选择器同时修饰时,优先级是:
    !important设置 > 行内样式设定>id选择器>类(伪类)选择器>html选择器>通配符选择器>html属性设置>继承样式
目录
相关文章
|
4月前
|
前端开发
CSS:高级选择器
CSS:高级选择器
62 1
|
4月前
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
65 1
|
2月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
66 5
|
2月前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
64 2
|
4月前
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
|
4月前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
156 1
|
3月前
|
前端开发
CSS常见的选择器
CSS常见的选择器
30 0
|
4月前
|
前端开发 JavaScript
【CSS】选择器
【CSS】选择器
|
5月前
|
前端开发
CSS3选择器
【8月更文挑战第23天】CSS3选择器。
42 1
|
5月前
|
前端开发
CSS中的层级选择器&伪类选择器和伪元素选择器
CSS中的层级选择器&伪类选择器和伪元素选择器