前端【2】html添加样式、CSS选择器

一、为html添加样式的三种方法

1、内部样式

2、外部样式

3、行内样式

二、css的使用--css选择器

1、css基本选择器

元素选择器

属性选择器

id选择器

class/类选择器

通配符选择器 

2、群组选择器-多方面筛选

3、关系选择器

 后代选择器【包含选择器】

子元素选择器 

兄弟选择器

4、伪元素选择器

5、伪类选择器

结构性伪类选择器

UI 状态伪类选择器

 :not()排除选择器

​6、CSS选择器的优先级


往期文章:

前端基础---认识前端框架(html、css、js、)_前端代码结构-CSDN博客

前端【1】---HTML入门学习_html父子标签-CSDN博客

一、为html添加样式的三种方法

1、内部样式

        内部样式是将 CSS 代码直接写在 HTML 文件的 <style> 标签中,通常放在 <head> 部分,为多个组件添加同一样式

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>内部样式示例</title>
 <!-- 内部样式 为多个组件添加同一样式-->
    <style>
        h1 {
            color: blue;
            font-size: 24px;
        }
        p {
            color: green;
            font-size: 16px;
        }
        div{
            color: antiquewhite;
            background:purple;
        }
    </style>
</head>
<body>
    <h1>这是一个标题</h1>
    <p>这是一个段落。</p>
    <div>这是一个div块</div>
</body>
</html>

多个页面可以共享同一个 CSS 文件,减少代码冗余。


2、外部样式

        外部样式是将 CSS 代码写在一个单独的 .css 文件中,然后通过 <link> 标签将其引入到 HTML 文件中。常用,优先级最低

html文件:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>外部样式示例</title>
    <!-- 引入外部样式文件 -->
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <h1>这是一个标题</h1>
    <p>这是一个段落。</p>
</body>
</html>

 styles.css文件:

/* 外部样式 */
h1 {
    color: blue;
    font-size: 24px;
}
p {
    color: green;
    font-size: 16px;
}

3、行内样式

        行内样式是将 CSS 代码直接写在 HTML 元素的 style 属性中。行内样式优先级最高

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>行内样式示例</title>
</head>
<body>
    <!-- 行内样式 -->
    <h1 style="color: blue; font-size: 24px;">这是一个标题</h1>
    <p style="color: green; font-size: 16px;">这是一个段落。</p>
</body>
</html>

二、css的使用--css选择器

1、css基本选择器

元素选择器

语法 : 标签名{} ,通过 HTML 标签名选择元素。

标签名 {
    属性: 值;
}
/* 选择所有 <p> 标签 */
p {
    color: red;
    font-size: 16px;
}

属性选择器

属性选择器一共有7种写法

某某[属性]

元素[属性] {
    样式;
}

 

某某[属性=属性值]

元素[属性="属性值"] {
    样式;
}

 某某[属性^=属性值]:选择属性值以指定值开头的元素。

某某[属性$=属性值]:选择属性值以指定值结尾的元素。

某某[属性*=属性值]:选择属性值包含指定值的元素。

某某[属性~=属性值]:选择属性值中包含指定单词的元素(单词以空格分隔)。

某某[属性|=属性值]:选择属性值以指定值开头或以指定值开头后跟连字符 - 的元素。

id选择器

通过元素的 id 属性选择元素,id 是唯一的,一个页面中只能有一个元素使用相同的 id

#id名 {
    属性: 值;
}

示例: 

<p id="special">这是一个特殊的段落。</p>
/* 选择 id 为 special 的元素 */
#special {
    color: green;
    font-weight: bold;
}

class/类选择器

class 可以重复使用,一个元素可以有多个 class

.class名 {
    属性: 值;
}

示例: 

<p class="highlight">这是一个高亮段落。</p>
<p class="highlight">这是另一个高亮段落。</p>
/* 选择所有 class 为 highlight 的元素 */
.highlight {
    background-color: yellow;
}

通配符选择器 

语法 : *{}

作用 : 让页面中所有的标签执行该样式,通常用来清除间距

 *{
 margin: 0;  //外间距
padding: 0;  //内间距}

要是对某几个标签执行样式而非全部标签: 

/*选择器组合(满足一个条件即可) 选择器1,选择器2{} */
div,
p,
a,
.aa 
{
    background-color: aquamarine;
}

 

2、群组选择器-多方面筛选

通过逗号分隔多个选择器,同时为多个元素设置相同的样式

语法:

选择器1, 选择器2, 选择器3 {
    属性: 值;
}

示例:

/* 选择所有 h1、h2 和 p 元素 */
h1, h2, p {
    color: blue;
}
/* p标签里class属性为aa */
p.aa {
    color: #000;

}

3、关系选择器

关系选择器 是 CSS 中用于根据元素之间的层级关系来选择元素的选择器。它们通过描述元素在文档结构中的位置关系(如父子关系、兄弟关系等)来实现精确的选择

 后代选择器【包含选择器】

选择某个元素的所有后代元素。(多层嵌套)

祖先元素 后代元素 {
    样式;
}

子元素选择器 

选择某个元素的直接子元素(仅一层嵌套)

父元素 > 子元素 {
    样式;
}

 

兄弟选择器

选择某个元素后面的所有兄弟元素,平级

元素1 ~ 元素2 {
    样式;
}

示例: 

 

/* 选择 .container 内直接子元素中 class 为 highlight 的 <p> 元素 */
.container > .highlight {
    font-weight: bold;
}

4、伪元素选择器

用于选择元素的特定部分(如首行、首字母等)

选择器::伪元素 {
    属性: 值;
}

常用伪元素:

  • ::before:在元素内容之前插入内容。

  • ::after:在元素内容之后插入内容。

  • ::first-line:选择元素的第一行。

  • ::first-letter:选择元素的第一个字母。

示例:

/* 一、首字母::first-letter  只使用于能让元素竖着布局的标签*/
div::first-letter
{
    color:yellow;
    font-size: 40px;
}
/* 二、首行 对于英文需要自己加入空格分隔*/
div::first-line{
    color:yellow;
    font-size: 40px;

}
/* 三、往前/后加东西  可以用来做一些特效*/
/* 如果不写文字用content:" " */
div::before {
    content: "新添加的内容";
    color: antiquewhite;
    background-color: aqua;

}
div::after {
    content: "新添加的内容";
    color: antiquewhite;
    background-color: aqua;

}

5、伪类选择器

伪类选择器 是 CSS 中用于选择元素特定状态或位置的选择器。它们以冒号(:开头,用于匹配元素的某种状态(如鼠标悬停、焦点状态)或位置(如第一个子元素、第 n 个子元素)

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

结构性伪类选择器

用于根据元素在文档结构中的位置选择元素。

:nth-child(n)

  • 选择父元素下的第 n 个子元素,从前往后数。

  • n 可以是数字、表达式(如 2n+1)、关键字(odd 奇数,even 偶数)。

  • 注意:只认数字,如果类型不匹配,样式不会生效。

  • ul li:nth-child(odd) {
        color: blueviolet;
    }

 :nth-last-child(n)

  • 从后往前数,选择父元素下的第 n 个子元素。

  • 示例:

    ul li:nth-last-child(2) {
        color: blue;
    }
  • :first-child:选择父元素下的第一个子元素。

  • :last-child:选择父元素下的最后一个子元素。

  • 示例

    ul li:first-child {
        color: red;
    }
    ul li:last-child {
        color: green;
    }

:nth-of-type(n)

  • 选择父元素下同类型的第 n 个子元素。

  • 既认数字又认类型。

  • 示例:

    ul li:nth-of-type(2) {
        color: blueviolet;
    }
  • :first-of-type 和 :last-of-type

    • :first-of-type:选择父元素下同类型的第一个子元素。

    • :last-of-type:选择父元素下同类型的最后一个子元素。

    • 示例

      ul li:first-of-type {
          color: red;
      }
      ul li:last-of-type {
          color: green;
      }

UI 状态伪类选择器

用于根据元素的状态选择元素。

:hover

  • 选择鼠标悬停在元素上时的状态
  • 示例:当鼠标悬停在按钮上时,按钮背景颜色变为黄色。
/* 鼠标悬停时改变背景颜色 */
button:hover {
    background-color: yellow;
}

【拓展】 /* tramsition过度动画(不会突然变成某样式) */

 li
 {
    transition: all,2s,linear;
 }
 li:hover{
    color: aquamarine;
 }
  • transition 是 CSS 中用于定义过渡效果的属性。

  • all:表示所有属性都会应用过渡效果(如颜色、背景、大小等)。

  • 2s:表示过渡效果的持续时间为 2 秒。

  • linear:表示过渡效果的时间函数为线性(匀速)。

作用:

  • 当 <li> 元素的任何属性发生变化时,会以匀速的方式在 2 秒内完成过渡。

:active

  • 选择元素被激活(如鼠标点击)时的状态。
  • 示例:当用户点击按钮时,按钮背景颜色变为红色
/* 点击时改变按钮颜色 */
button:active {
    background-color: red;
}

:focus

  • 选择元素获得焦点时的状态(如表单输入框)
  • 示例:当用户点击输入框时,输入框的边框颜色变为蓝色
/* 输入框获得焦点时改变边框颜色 */
input:focus {
    border-color: blue;
}

:checked

  • 选择被选中的单选框或多选框
  • 示例:当用户选中单选框时,单选框的背景颜色变为绿色
/* 选中时改变单选框的背景颜色 */
input[type="radio"]:checked {
    background-color: green;
}
  • 示例:为被选中的单选框或多选框添加一个金色的阴影效果
input:checked{
    box-shadow: 2px 2px 2px gold;/* 加阴影---水平方向偏移量,竖直方向偏移量,模糊度,颜色 */
}

 :not()排除选择器

用于选择 不满足指定条件 的元素

元素:not(选择器) {
    样式;
}
  • 元素:可以是任何 HTML 元素(如 divpli 等)。

  • 选择器:可以是任何有效的 CSS 选择器(如类选择器 .class、ID 选择器 #id、属性选择器 [attr] 等)。

 6、CSS选择器的优先级

选择器写的越长(越准确),优先级越高【特异性越高,优先级越高

 ID 选择器 > 类选择器 > 元素选择器

同级别长度下,CSS 按照代码顺序执行,同一样式后边的会把前面的覆盖掉,不同样式会叠加

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

30分钟内搭建一个全能轻量级springboot 3.4 + 脚手架 <3>5分钟集成好druid并使用druid自带监控工具监控sql请求

快速导航 <1> 5分钟快速创建一个springboot web项目 <2> 5分钟集成好最新版本的开源swagger ui&#xff0c;并使用ui操作调用接口 <3> 5分钟集成好druid并使用druid自带监控工具监控sql请求 <4> 5分钟集成好mybatisplus并使用mybatisplus generator自…

仿射密码实验——Python实现(完整解析版)

文章目录 前言实验内容实验操作步骤1.编写主程序2.编写加密模块3.编写解密模块4.编写文件加解密模块 实验结果实验心得实验源码scirpt.pyusefile.py 前言 实验目的 1&#xff09;初步了解古典密码 2&#xff09;掌握仿射密码的实现 实验方法 根据下图仿射密码&#xff08;变换…

在 QNAP NAS中使用 Container Station 运行 Docker 的完整指南

QNAP 为用户提供了一个名为 Container Station 的应用&#xff0c;它在 QNAP NAS 上将 Docker 和 LXC 结合在一起&#xff0c;通过图形化界面&#xff0c;让用户更轻松地在 NAS 上管理容器。本文将带你一步步了解如何在 QNAP NAS 上安装和使用 Container Station&#xff0c;以…

基于vite+vue3+mapbox-gl从零搭建一个项目

下面是基于 Vite、Vue 3 和 Mapbox GL 从零搭建一个项目的完整步骤&#xff0c;包括环境搭建、依赖安装、配置和代码示例。 文章目录 1. 初始化项目2. 安装 mapbox-gl 依赖3. 配置 Mapbox Access Token4. 实现地图组件5. 在 App.vue 中使用地图组件6. 启动开发服务器7. 添加自定…

运维作业一

1、shell 脚本写出检测 /tmp/size.log 文件如果存在显示它的内容&#xff0c;不存在则创建一个文件将创建时间写入。 2、写一个 shel1 脚本,实现批量添加 20个用户,用户名为user01-20,密码为user 后面跟5个随机字符。 首先&#xff0c;获得随机字符&#xff0c;需下载pwgen&am…

【拒绝算法PUA】3065. 超过阈值的最少操作数 I

系列文章目录 【拒绝算法PUA】0x00-位运算 【拒绝算法PUA】0x01- 区间比较技巧 【拒绝算法PUA】0x02- 区间合并技巧 【拒绝算法PUA】0x03 - LeetCode 排序类型刷题 【拒绝算法PUA】LeetCode每日一题系列刷题汇总-2025年持续刷新中 C刷题技巧总结&#xff1a; [温习C/C]0x04 刷…

SSE部署后无法连接问题解决

1. 问题现象 通过域名访问 https://api-uat.sfxs.com/sse/subscribe?tokenBearer%20eyJUxMiJ9.eyJhY2NvdW50IjoiYWRtaWZ0NvZGUiOiIwMDEiLCJyb2xidXNlcm5hbWUiOiLotoXnuqfnrqHnkIblkZgifQ.tlz9N61Y4 一直无法正常连接 2. 问题解决 nginx.conf进行配置 server {location /ss…

JS宏进阶: 工厂函数与构造函数

一、构造函数 在JavaScript中&#xff0c;构造函数是一种用于创建和初始化对象的特殊函数。构造函数的名字通常以大写字母开头&#xff0c;以区分于普通函数。通过new关键字调用构造函数&#xff0c;可以创建一个新的实例对象&#xff0c;并自动执行构造函数内部的代码来初始化…

编译pytorch——cuda-toolkit-nvcc

链接 https://blog.csdn.net/wjinjie/article/details/108997692https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#switching-between-driver-module-flavorshttps://forums.developer.nvidia.com/t/can-not-load-nvidia-drivers-on-ubuntu-22-10/239750https://…

光谱相机的光谱分辨率可以达到多少?

多光谱相机 多光谱相机的光谱分辨率相对较低&#xff0c;波段数一般在 10 到 20 个左右&#xff0c;光谱分辨率通常在几十纳米到几百纳米之间&#xff0c;如常见的多光谱相机光谱分辨率为 100nm 左右。 高光谱相机 一般的高光谱相机光谱分辨率可达 2.5nm 到 10nm 左右&#x…

案例 —— 怪物出水

目录 一&#xff0c;Ocean Setup 二&#xff0c;Water Setup 解算前设置 解算设置 解算后设置 三&#xff0c;Meshing Setup Meshing 剔除外围边界mesh 应用低频频谱变形并添加变形速度 为whitewater创建自定义的surface、vel 清理属性和组并缓存 四&#xff0c;Wh…

怎么在iPhone手机上使用便签进行记录?

宝子们&#xff0c;在这个快节奏的时代&#xff0c;灵感的火花总是一闪而过&#xff0c;待办事项也常常让人应接不暇。好在咱们的 iPhone手机便签超给力&#xff0c;能满足各种记录需求&#xff01;今天就来给大家分享一下&#xff0c;如何在 iPhone 手机上巧用便签&#xff0c…

2025宝塔API一键建站系统PHP源码

源码介绍 2025宝塔API一键建站系统PHP源码&#xff0c;对接自己的支付&#xff0c;虚拟主机也能搭建&#xff0c;小白式建站系统&#xff0c;基于宝塔面板搭建的建站系统&#xff0c;功能丰富&#xff0c;多款模板&#xff0c;每日更新 上传源码到服务器&#xff0c;浏览器访问…

【C++】拷贝构造函数与运算符重载

写在前面 拷贝构造函数、赋值运算符重载、取地址运算符都是属于类的默认成员函数&#xff01; 默认成员函数是程序猿不显示声明定义&#xff0c;编译器会中生成。 在程序编写中&#xff0c;我们也经常使用拷贝的方式来获取到对应的值&#xff0c;例如整形变量拷贝int a 0; i…

Linux:SystemV通信

目录 一、System V通信 二、共享内存 代码板块 总结 三、信号量 信号量理论 信号量接口 一、System V通信 System V IPC&#xff08;inter-process communication&#xff09;&#xff0c;是一种进程间通信方式。其实现的方法有共享内存、消息队列、信号量这三种机制。 …

2025.1.15——七、cookie注入

题目来源&#xff1a;ctfhub技能树 目录 一、打开靶机&#xff0c;整理已知信息 二、解题步骤 step 1&#xff1a;按F12查看cookie信息&#xff0c;见上 step 2&#xff1a;bp抓包修改cookie信息&#xff0c;确认注入类型 step 3&#xff1a;查看字段数 step 4&#xff…

【简博士统计学习方法】第2章:3. 感知机——学习算法之原始形式:算法解说

3. 感知机——学习算法之原始形式&#xff1a;算法解说 3.1 学习问题 给定训练数据集&#xff1a; T { ( x 1 , y 1 ) , ( x 2 , y 2 ) ⋯ , ( x N , y N ) } T\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right) \cdots,\left(x_{N}, y_{N}\right)\right\} T{(x…

【Flink系列】10. Flink SQL

10. Flink SQL Table API和SQL是最上层的API&#xff0c;在Flink中这两种API被集成在一起&#xff0c;SQL执行的对象也是Flink中的表&#xff08;Table&#xff09;&#xff0c;所以我们一般会认为它们是一体的。Flink是批流统一的处理框架&#xff0c;无论是批处理&#xff08…

web漏洞扫描有什么作用?web漏洞扫描原理

Web漏洞扫描在网络安全领域中扮演着至关重要的角色&#xff0c;web漏洞扫描有什么作用&#xff1f;Web漏洞扫描能够自动化地检测Web应用中的潜在安全漏洞&#xff0c;包括但不限于SQL注入、跨站脚本&#xff08;XSS&#xff09;、跨站请求伪造&#xff08;CSRF&#xff09;、文…

【Idea启动项目报错NegativeArraySizeException】

项目场景&#xff1a; Idea启动项目报错&#xff08;打包不报错&#xff09;&#xff0c;项目在服务器部署运行没有问题&#xff0c;尝试了重启idea、重启电脑、maven clean/install 都不行 maven-resources-production:sample: java.lang.NegativeArraySizeException: -5833…