CSS常用选择器

news2024/10/7 4:36:44

目录

1.CSS是什么

2.CSS的三种写法

2.1内部样式

2.2内联样式

2.3外部样式

3.CSS选择器

3.1标签选择器

3.2类选择器(更好的选择)

3.3ID选择器

3.4后代选择器

3.5子选择器

3.6并集选择器

3.7伪类选择器(复合选择器的特殊用法)


 

1.CSS是什么

CSS全称Cascding Style Sheets,能够对 网页中元素的位置排版进行像素级的精确控制,实现美化页面的效果.能够做到页面的样式和结构分离

基本语法规范:

选择器+{一条/N条声明} 

选择器决定针对谁修改

声明决定做什么修改

声明的属性是键值对,使用;区分键值对,:来区分键和值

我们来看一个例子

        <p>
            这是一个段落
        </p>

 当我们用CSS来设置后

<body>
        <p>
            这是一个段落
        </p>
        <!-- style标签可以放到代码的任意位置中 -->
        <style>
            p{
                color:green;
            }
        </style>
</body>

再次刷新后,文本的颜色改变了 



这里的p就是一个选择器,{}里面的CSS属性是可以写一个或者多个的,每个属性都是一个键值对 [color:green;]用:来区分键和值,;来区分键值对

每个键值对可以独占一行,也可以不独占,我们还可以加上其他属性设置,比如将字体放大: 

            p{
                color:green;
                font-size: 30px;
            }

 

这只是一种写法

实际上CSS有三种写法.

2.CSS的三种写法

2.1内部样式

使用style标签,直接把CSS写到html文件中.此时style标签可以放到代码的任何位置,建议是放在head标签里..我们上述举例的写法就是内部样式

2.2内联样式

使用style属性,针对指定的元素设置样式(不需要写选择器,直接写属性键值对),这个时候样式只针对当前元素生效

我们看一个例子

        <p style="color:green;font-size: 30px;">
            这是一个段落(内联样式)
        </p>
        <p>
            这是另外一个段落
        </p>

 我们可以看到,内联样式所使用的属性只针对当前标签有效,对别的标签是无效的

内联样式的优先级是比内部样式的优先级高的,我们在内联样式的基础上设置一个内部样式

        <p style="color:green;font-size: 30px;">
            这是一个段落(内联样式)
        </p>
        <style>
            p{
                color:red;
                font-size: 30px;
            }
        </style>

可以看到,显示的是内联样式修改的结果,因此内联样式的优先级是高于内部样式的 

2.3外部样式

把CSS代码单独作为一个.scc文件,再通过link属性,让html引入该css文件.

 

        <P>
            这是一个段落(外部样式)
        </P>

css文件:

这是未引入css文件的结果:

引入css文件,不引入是不会生效的

结果显示

 这就是外部样式的写法,实际开发中也是用的最多的,让html和css分离开,相互不影响

当前学习阶段简单为主,以内部样式为主

下面我们学习CSS的选择器和常用属性值

3.CSS选择器

3.1标签选择器

刚才我们写的css文件里这样的代码,p是一个标签的名字,直接在{}前写标签名字

此时意味着会选中当前页面所有指定标签!!看一个例子

        <P>
            这是一个段落
        </P>
        <P>
            这是一个段落
        </P>
        <P>
            这是一个段落
        </P>

 这是三个段落,标签名相同,此时我们使用标签选择器来设置,那么这三个都会受影响,别的标签名不会受影响!

      <style>
            p{
                color: blueviolet;
                font-size: 50px;
            }
        </style>

3.2类选择器(更好的选择)

标签选择器的优点就是能快速的选择出同一类型的标签,但是缺点也很明显,不能差异化选择,如果我们希望同一类型标签的样式有所不同,类选择器是更好的选择

类选择器可以创建CSS类,手动指定哪些元素使用这个类(这个类与面向对象中的类是无关的,就是把一组CSS属性的集合起了个名字,方便引用)

我们看示例

        <div>这是第一个div</div>
        <div>这是第二个div</div>
        <div>这是第三个div</div>
        <style>
            /* 此处定义了一个CSS类,名字叫做one,CSS类定义的时候需要用.开头 */
            .one{
                color: red;
            }
            .two{
                color: blue;
            }
            .three{
                color: blueviolet;
            }
        </style>

此时定义好了CSS类,我们使用不同的颜色来区分不同类,然后给三个标签引入

 定义类的时候,需要用到.来开头,使用类的时候,通过class属性="类名"即可,不用带.

一个类可以被一个元素引用,也被多个元素引用.

一个元素可以引用一个类,也可以引用多个类,灵活的引用就让元素的样式丰富多彩了

CSS叫做层叠样式表,层叠可以理解为一个元素可以应用多组样式,这些样式就像被一层一叠加上去的

<style>
            /* 此处定义了一个CSS类,名字叫做one,CSS类定义的时候需要用.开头 */
            .one{
                color: red;
        
            }
            /* /* .two{
                color: blue;
            } */
            .three{
                font-size: 20px;
            } 

        </style>
        <div class="one three" >
            这是一个段落
        </div>
        <div class="one three" >
            这是二个段落
        </div>

 打开控制台选择第一个标签:

这个样式就是由one和three两个类叠加起来的效果

3.3ID选择器

html页面中每个元素都可以设置一个唯一的ID.作为身份的标识,这个值在页面里必须是唯一的

设置ID后,就可以通过ID来选中对应的元素了

看个例子

        <div id="oneDiv">
        这是一个div
       </div>
       <div id="twoDiv">
        这是另一个div
       </div>
        <style>
            #oneDiv{
                color: red;
            }
            #twoDiv{
                font-size: 30px;
            }
        </style>

 

类选择器可以让多个元素使用,ID选择器更有针对性,因为ID是唯一的,他也只能针对这个唯一的元素生效


上述是简单的基础选择器,CSS还支持复杂的复合选择器

3.4后代选择器

把多个简单的基础选择器任意组合一下

        <ol>
            <li>111</li>
            <li>222</li>
            <li>333</li>
            <li>444</li>

        </ol>
        <ul>
            <li>555</li>
            <li>666</li>
            <li>777</li>
            <li>888</li>
        </ul>
       <style>
        ul li{
            color: green;
        }
       </style>

 

这是典型的后代选择器,只选中了ul中的list做出改变,没有选择ol中的list

后代选择器的寻找流程就是先寻找页面所有的ul,再在ul中寻找所有的li

li只要是ul的后代即可,不一定是"子元素"

三个基础选择器是也可以组合的:比如除了上述标签选择器组合,还可与类选择器组合

        <ol class="one">
            <li>111</li>
            <li>222</li>
            <li>333</li>
            <li>444</li>

        </ol>
        <style>
        .one li{
            color: red;
        }
       </style>

 3.5子选择器

也是把多个简单的基础选择器组合,不同的是,只匹配子元素,不匹配孙子元素...

元素1>元素2{ 样式声明 }

使用大于号分割

只能选儿子,不选孙子元素

 例如:

        <style>
        .one a{
            color: red;
        }
       </style>
       <div class="one
       ">
        <a href="#">链接一</a>
        <p>
            <a href="#">链接二</a>
        </p>
       </div>

 这是后代选择器,儿子元素和孙子元素都会选中,效果

 我们使用子选择器写法

只会选中one的子元素,不会选中孙子元素

 

3.6并集选择器

用于选择多组标签

元素1,元素2{ 样式声明 }

通过逗号来分割多个元素

表示同时选中元素1 2,多组选择器应用了相同的样式

任何基础选择器都可以使用并集选择器

并集选择器建议竖着写,每个选择器占一行,最后一个选择器不能加逗号

来看代码

        <style>
        .two,.three{
            color: blueviolet;
            font-size: 20px;
        }
       </style>
       <div class="one">
        <a href="#" class="two">链接一</a>
        <p>
            <a href="#" class="three">链接二</a>
        </p>
       </div>

3.7伪类选择器(复合选择器的特殊用法)

前面的选择器是选中某个元素,这个选择器是选中某个元素的某个特定状态

:hover   鼠标悬停时的状态

:active  鼠标按下时的状态

我们看一个例子

        <div class="one">
        这是一个div
       </div>
       <style>
        .one:hover{
            color: red;
            font-size: 40px;
        }
       </style>

 还有个鼠标按下的伪类选择器

鼠标先悬停,然后按下

 css的选择器就介绍到这里了

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/390843.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「兔了个兔」CSS如此之美,看我如何实现可爱兔兔LOADING页面(万字详解附源码)

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

汽车诊断UDS通信协议总结

UDS通信过程 UDS&#xff08;Unified Diagnostic Services&#xff09;是一种用于汽车诊断的通信协议&#xff0c;它是基于CAN&#xff08;Controller Area Network&#xff09;总线的一种高层协议。 下面是UDS通信的基本流程&#xff1a; 建立诊断会话&#xff1a;通过CAN总…

【VC 7/8】vCenter Server 基于文件的备份和还原Ⅲ—— 使用 SMB 协议备份 VC(VAMI 中文)

目录2.2 使用 SMB 协议备份 VC&#xff08;VAMI 中文&#xff09;&#xff08;1&#xff09;登录 vCenter Server 管理界面&#xff08;2&#xff09;进入备份页面&#xff08;3&#xff09;配置 Backup Schedule&#xff08;4&#xff09;开始备份&#xff08;5&#xff09;备…

ios 通过搜索设备MAC地址绑定

最近做了一个物联网项目,涉及到了设备绑定配网这块,需要了解一下iOS BLE与设备绑定的相关知识点,第一次接触蓝牙相关的项目,所以开始熟悉蓝牙的相关信息。没有去深入研究BabyTooth库&#xff0c;只是感觉CoreBluetooth已经让我更好的理解整个流程这个物联网项目的设备绑定流程是…

sheng的学习笔记-Actuator健康监控

前言在微服务系统里&#xff0c;对微服务程序的运行状况的跟踪和监控是必不可少的&#xff1b;例如GPE&#xff0c;TelegrafinfluxDB都提供了微服务体系监控的方案&#xff0c; ZIPKIN&#xff0c; Skywalking都提供了微服务云体系的APM的方案&#xff1b; 这些解决方案功能全面…

Thumbnailator快速入门

简介 Thumbnailator 是一个开源的 Java 项目&#xff0c;它提供了非常简单的 API 来对图片进行缩放、旋转以及加水印的处理。 有多简单呢&#xff1f;简单到一行代码就可以完成图片处理。形式如下&#xff1a; Thumbnails.of(new File("path/to/directory").listF…

IDEA搭建vue-cli | vue-router | 排错思路、Webpack、Axios、周期、路由、异步、重定向

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Vue.js概述 Vue 是一套用于构建用户界面的渐进式JavaScript框架。 与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层…

IDEA集成Git就是这么简单

IDEA集成Git 文章目录IDEA集成Git配置Git环境配置Git的忽略文件①为什么需要配置忽略文件&#xff1f;②配置忽略文件③引用配置文件配置IDEA初始化项目添加到暂存区方式一&#xff1a;方式二&#xff1a;移除暂存区提交到本地库分支创建分支切换分支版本穿梭配置Git环境 配置…

应届大学生学什么技术好?哪些技术适合年轻人?

到了毕业季&#xff0c;应届大学生面临的就是就业问题&#xff0c;很多专业的大学生难以找到对口的工作&#xff0c;或是不得已随便就业&#xff0c;或者是学个技术高薪就业&#xff0c;那么&#xff0c;问题来了&#xff0c;应届大学生学什么技术好&#xff1f;哪些技术适合年…

XC7K160T-1FBG484I、XC7A100T-2CSG324I FPGA可编程门阵列 PDF规格书

1、XC7K160T-1FBG484I说明&#xff1a;Kintex-7 FPGA有-3、-2、-1、-1L和-2L速度等级&#xff0c;其中-3具有最高的性能。-2L器件被筛选为较低的最大静态功率&#xff0c;并且可以在较低的核心电压下运行&#xff0c;以获得比-2器件更低的动态功率。-2L工业(I)温度器件仅在VCCI…

C#教程03-- 数据类型

文章目录 C#数据类型值类型(Value types)引用类型对象(Object)类型动态(Dynamic)类型字符串(String)类型C#数据类型 在 C# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types) 值类型(Value types) 值类型…

Bean的装配方式(xml和注解)

方式一&#xff1a;基于xml 掌握Bean基于XML的装配&#xff0c;能够使用XML装配方式对Bean进行装配 在基于XML的装配就是读取XML配置文件中的信息完成依赖注入&#xff0c;Spring容器提供了两种基于XML的装配方式&#xff0c;属性setter方法注入和构造方法注入。下面分另对这…

RocketMQ-02

1. 案例介绍 1.1 业务分析 模拟电商网站购物场景中的【下单】和【支付】业务 ###1&#xff09;下单 用户请求订单系统下单订单系统通过RPC调用订单服务下单订单服务调用优惠券服务&#xff0c;扣减优惠券订单服务调用调用库存服务&#xff0c;校验并扣减库存订单服务调用用户…

Vue2.0开发之——购物车案例-Footer组件封装(50)

一 概述 导入Footer子组件定义fullState计算属性把全选状态传递给Footer子组件实现全选功能 二 导入Footer子组件 2.1 App.vue中导入Footer组件 import Footer from "/components/Footer/Footer.vue";2.2 App.vue中注册Footer子组件 components: {Header,Goods,F…

云原生之使用Docker部署Gitblit服务器

云原生之使用Docker部署Gitblit服务器一、Gitblit介绍二、检查本地docker环境1.检查docker版本2.检查docker状态三、下载Gitblit镜像四、部署Gitblit应用1.创建部署目录2.创建Gitblit容器3.检查Gitblit容器状态4.检查Gitblit容器运行日志五、访问Gitblit首页1.访问Gitblit首页2…

LPDDR4x 的 学习总结(3) - SDRAM基本功能

上一节,我们重点介绍了array的存储结构。 本节介绍array周边的电路,对DDR的基本读写操作的相关功能模块的理解。 即通过哪些模块可以实现对ddr的基本读写。最简化的方式是把存储操作理解为行列选择&#xff0c;拆分为横竖两个纬度&#xff0c;最终实现对arrary进行读写。横向…

Kerberos 域委派攻击之约束性委派

CSDN自动博客文章迁移由于非约束性委派的不安全性&#xff0c;微软在 Windows Server 2003 中引入了约束委派。区别在于不会直接把 TGT 给服务&#xff0c;所发送的认证信息中包含了允许访问的服务&#xff0c;即不允许服务代表用户去访问其他服务。同时为了在 Kerberos 协议层…

1.数据结构前言

数据结构很重要&#xff01; 数据结构很重要&#xff01;&#xff01;&#xff01; 数据结构很重要&#xff01;&#xff01;&#xff01;&#xff01; 前言.思考 1.什么是数据结构 &#xff1f;&#xff08;What&#xff09; 2.为什么要学数据结构 &#xff1f;&#xff1f; (…

删除链表元素相关的练习

目录 一、移除链表元素 二、删除排序链表中的重复元素 三、删除排序链表中的重复元素 || 四、删除链表的倒数第 N 个结点 一、移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头…

python字典和集合——笔记

一、介绍 1、泛映射类型 collections.abc模块中有Mapping和MutableMapping这两个抽象基类&#xff0c;它们的作用是为dict和其他类似的类型定义形式接口&#xff08;在Python 2.6到Python 3.2的版本中&#xff0c;这些类还不属于collections.abc模块&#xff0c;而是隶属于coll…