当前位置: 首页 > news >正文

Python武器库开发-前端篇之CSS基本语法(三十)

前端篇之CSS基本语法(三十)

CSS简介

CSS(层叠样式表)是一种用于描述网页外观和布局的样式表语言。它与 HTML 一起,帮助开发者对网页进行美化和布局。CSS通过定义网页元素的颜色、字体、大小、背景、边框等属性,使网页变得更加美观和易于阅读。与 HTML 不同,CSS 的主要作用是控制内容的表现,而不是内容本身。

CSS的优势在于它可以将网页的外观和布局从 HTML 文档中分离出来,使得代码更加清晰和易于维护。它也可以帮助网页具有更好的响应式设计,以适应不同大小和分辨率的设备,如桌面电脑、平板电脑和手机。

CSS 有多种使用方式,包括在 HTML 文件中使用内部样式表或外部样式表,或利用CSS框架进行快速网页设计。CSS也具有选择器、属性和值等多种语法,使得开发者能够对网页样式进行精确控制。

CSS基本语法

CSS(层叠样式表)是用来为网页添加样式和布局的一种语言。下面是CSS的基本语法:

  1. 选择器:用来选择要应用样式的HTML元素。选择器可以是HTML元素名称、类名、ID、属性等。

  2. 声明:指定要应用到选定元素的样式。声明由属性和属性值组成,用冒号分隔,每个声明用分号结束。

  3. 注释:可以用注释来解释CSS代码。注释用/* 开始,用 */结束。

下面是一个简单的CSS代码示例:

/* 注释 */
h1 {color: blue; /* 声明 */font-size: 24px; /* 声明 */
}p {color: green; /* 声明 */
}

在上面的代码中,h1和p是选择器,color和font-size是属性,blue和24px是属性值。注意,CSS的属性值通常需要用单位来表示,例如像素(px)、百分比(%)、em等。

CSS的三种引用方式

CSS有三种引用方式

  1. 内联式引用:将CSS样式直接写在HTML标签里,通过style属性来引用CSS样式,如下所示:
<p style="font-size:16px;color:#000;">This is a paragraph.</p>
  1. 内部样式表:在HTML文档中的<head>标签中使用<style>标签来定义样式,例如:
<head><style>/* CSS样式 */p {font-size:16px;color:#000;}</style>
</head>
<body><p>This is a paragraph.</p>
</body>
  1. 外部样式表:将CSS代码保存到一个独立的CSS文件中,然后在HTML文档中通过标签来引用CSS文件,例如:
<head><style>/* CSS样式 */p {font-size:16px;color:#000;}</style>
</head>
<body><p>This is a paragraph.</p>
</body>

在外部的CSS文件中,样式的定义如下:

/* style.css */
.para {font-size:16px;color:#000;
}

第一个实例

我们接下来写一个CSS的第一个实列:

首先,我们需要在HTML文件中指定需要修改样式的元素和类。例如,我们可以在HTML文件中添加以下代码:

<p class="my-text">这是一段需要修改样式的文本。</p>

浏览器输出的效果如下图所示:

在这里插入图片描述

现在,我们可以在CSS文件中写样式来修改这段文本的样式。例如,我们可以添加以下代码:

.my-text {color: red;font-size: 24px;
}

这段代码会将类名为“my-text”的元素的字体颜色改为红色,字体大小改为24像素。

最终的HTML文件和CSS文件应该如下所示:

HTML文件:

<!DOCTYPE html>
<html><head><title>My First CSS Example</title><link rel="stylesheet" href="style.css"></head><body><p class="my-text">这是一段需要修改样式的文本。</p></body>
</html>

CSS文件(名为style.css):

.my-text {color: red;font-size: 24px;
}

运行这个HTML文件,就可以看到我们的文本颜色和字体大小已经被修改了。

最终浏览器输出的效果如下图所示:

在这里插入图片描述

CSS文本设置

CSS可以用于设置文本的各种样式,包括字体、颜色、大小、间距、对齐等等。下面是一些常用的CSS文本设置:

  1. 字体设置:
font-family: Arial, sans-serif; /* 设置字体,优先使用Arial字体,没有则使用sans-serif字体 */
font-weight: bold; /* 设置粗体字 */
font-style: italic; /* 设置斜体字 */
  1. 颜色设置:
color: #333; /* 设置字体颜色,可以使用十六进制、RGB或颜色名称 */
background-color: #f0f0f0; /* 设置背景颜色 */
  1. 大小设置:
font-size: 16px; /* 设置字体大小 */
line-height: 1.5; /* 设置行高 */
  1. 对齐设置:
text-align: center; /* 设置文本居中对齐 */
text-decoration: underline; /* 设置下划线 */
text-transform: uppercase; /* 设置全部大写 */
  1. 其他设置:
letter-spacing: 1px; /* 设置字母间距 */
word-spacing: 2px; /* 设置单词间距 */
text-shadow: 1px 1px #ccc; /* 设置文本阴影 */
white-space: nowrap; /* 禁止文本换行 */

CSS 选择器

CSS选择器是用来选择HTML和XML文档中的元素的一种方式。在CSS中,我们可以根据不同的属性、标签名、类名等选择元素。以下是一些常用的CSS选择器:

  1. 标签选择器(tag selector):选择所有指定标签的元素。例如,p选择器可以匹配所有的p标签元素。

  2. 类选择器(class selector):选择具有指定类名的元素。例如,.my-class选择器可以匹配class属性值为“my-class”的元素。

  3. ID选择器(ID selector):选择具有指定ID的元素。例如,#my-id选择器可以匹配ID属性值为“my-id”的元素。

  4. 后代选择器(descendant selector):选择指定元素的后代元素。例如,.parent.child可以匹配class为“parent”的元素中所有class为“child”的后代元素。

  5. 子元素选择器(child selector):选择指定元素的直接子元素。例如,.parent >.child可以匹配class为“parent”的元素中所有class为“child”的直接子元素。

  6. 相邻兄弟选择器(adjacent sibling selector):选择紧接在另一个元素之后的元素,且二者有相同的父元素。例如,.sibling +.sibling可以匹配class为“sibling”的元素中相邻的兄弟元素。

  7. 通用选择器(universal selector):选择所有元素。例如,*选择器可以匹配所有元素。

  8. 属性选择器(attribute selector):选择具有指定属性的元素。例如,[type=“text”]选择器可以匹配type属性值为“text”的元素。

  9. 伪类选择器(pseudo-class selector):选择不同状态的元素。例如,:hover选择器可以匹配鼠标悬停在元素上时的状态。

  10. 伪元素选择器(pseudo-element selector):选择元素的特定部分。例如,::before选择器可以选择元素前面的内容。

以上是一些常用的CSS选择器,可以根据需要灵活选择使用。

标签选择器

标签选择器是 CSS 中最简单和最基本的一种选择器,它可以选择 HTML 文档中所有具有相同标签的元素。例如,p 选择器可以选择所有的 <p> 标签元素。其语法如下:

标签名 {属性:;
}

示例:

/* 选择所有的 p 标签元素,将字体颜色设为红色 */
p {color: red;
}

类选择器

类选择器是CSS中的一种选择器,它通过选择具有相同类名的元素来定义样式。类名在HTML中以class属性的形式定义,它可以应用于任何元素,也可以在同一元素中多次使用。在CSS中,类选择器以一个点(.)开头,后面跟着类名,例如:

.my-class {color: red;font-weight: bold;
}

上面的例子中,类选择器是“.my-class”,它将应用于HTML中所有使用class="my-class"的元素,并将其文字颜色设置为红色并加粗。

ID选择器

ID选择器是CSS中的一种选择器,用于选择具有特定ID属性的HTML元素。它以"#"符号为开头,后面跟着ID属性的值。例如,如果想选择一个ID属性为"myelement"的元素,可以使用以下代码:

#myelement {/* CSS属性和值 */
}

在HTML中,我们可以将ID属性添加到任何元素中,但是每个ID属性的值必须是唯一的,即在同一个文档中不能有两个元素拥有相同的ID属性值。ID选择器可以非常精确地定位一个特定的元素,所以在CSS中使用ID选择器非常常见。

后代选择器

后代选择器是用于选择指定元素的子元素、孙元素、曾孙元素等的CSS选择器。它使用空格符来表示元素之间的关系。

例如,如果要选择父元素是 div 的所有子元素 a,可以使用以下代码:

div a {/* CSS属性 */
}

这将选择所有在 div 元素内部的 a 元素,无论它们是子元素、孙元素还是曾孙元素。

子元素选择器

子元素选择器是CSS中一种特殊的选择器,用于选取指定父元素下的直接子元素。它使用“>”符号来表示父子关系,语法格式如下:

父元素 > 子元素 {属性名:属性值;
}

其中,父元素为指定的父元素,子元素为父元素下的直接子元素,属性名和属性值为要应用的样式。示例代码如下:

html:

<div class="parent"><p>父元素下的直接子元素</p><span>不是直接子元素</span><ul><li>也不是直接子元素</li></ul>
</div>

css:

.parent > p {color: red;
}

上述代码中,只有父元素下的<p>标签会应用样式,<span><ul>标签不会应用样式,因为它们不是直接子元素。

相邻兄弟选择器

CSS相邻兄弟选择器是指选择紧接在另一个元素后面的兄弟元素。其语法为“元素1 + 元素2”,其中元素1和元素2都是选择器。这个选择器会选取紧接在元素1后面的第一个元素2。

例如,如果我们有下面的HTML代码:

<h2>标题1</h2>
<p>段落1</p>
<p>段落2</p>
<h2>标题2</h2>
<p>段落3</p>

要选中标题1和紧接着它的段落1,我们可以使用相邻兄弟选择器:

h2 + p {color: red;
}

这会让段落1的文字变成红色。注意,相邻兄弟选择器只会选中紧接着的兄弟元素,如果有其他元素在它们之间,那么这个选择器就不会起作用。

通用选择器

通用选择器是CSS中的一种选择器,它用一个星号(*)表示。它匹配任何元素,包括HTML中所有元素。使用通用选择器可以为所有元素添加相同的CSS样式。

* {margin: 0;padding: 0;
}

上面的代码会将页面中所有元素的margin和padding属性清零。

属性选择器

属性选择器是一种CSS选择器,可根据html元素的属性值来选择元素。属性选择器使用方括号[]来表示,包含一个属性和可选的值。例如:

/* 选择有title属性的所有元素 */
[title] { color: red; 
} /* 选择href属性值为"https://www.google.com"的所有链接 */
a[href="https://www.google.com"] { color: blue; 
}/* 选择class属性值包含"example"的所有元素 */
[class*="example"] { background-color: yellow; 
}

其中,*表示包含,^表示以什么开头,$表示以什么结尾。属性选择器是一种强大的工具,可以让你根据元素属性的值来选择元素,从而更加灵活地控制样式。

伪类选择器

伪类选择器是CSS中用来向文档中的元素添加特殊样式的一种选择器。伪类选择器的语法是在选择器后面加上冒号(😃,表示某个元素在特定的状态下的样式,这个状态是不同于元素本身的状态。

常见的伪类选择器包括:

  1. :hover - 鼠标悬停样式

  2. :active - 鼠标点击样式

  3. :visited - 已访问链接样式

  4. :focus - 元素获得焦点样式

  5. :first-child - 第一个子元素样式

  6. :last-child - 最后一个子元素样式

  7. :nth-child(n) - 第n个子元素样式

伪类选择器可以根据不同的状态来控制元素的样式,使得页面的交互和视觉效果更加丰富和灵活。

伪元素选择器

伪元素选择器是用来选择元素的特定部分而不是元素本身的一种CSS选择器。

常见的伪元素选择器有:

  1. ::before:在元素内容的前面插入生成的内容。

  2. ::after:在元素内容的后面插入生成的内容。

  3. ::first-letter:选择元素内容的第一个字母。

  4. ::first-line:选择元素内容的第一行。

  5. ::selection:选择被用户选中的文本部分。

示例:

p::before {content: "前缀:";
}p::after {content: "后缀。";
}p::first-letter {font-size: 2em;
}p::first-line {font-weight: bold;
}::selection {background-color: yellow;
}

以上代码展示了几个常见的伪元素选择器的用法。

相关文章:

Python武器库开发-前端篇之CSS基本语法(三十)

前端篇之CSS基本语法(三十) CSS简介 CSS&#xff08;层叠样式表&#xff09;是一种用于描述网页外观和布局的样式表语言。它与 HTML 一起&#xff0c;帮助开发者对网页进行美化和布局。CSS通过定义网页元素的颜色、字体、大小、背景、边框等属性&#xff0c;使网页变得更加美…...

微信小程序实现类似Vue中的computed、watch功能

微信小程序实现类似Vue中的computed、watch功能 构建npm使用 构建npm 创建包管理器 进入小程序后&#xff0c;打开终端&#xff0c;点击顶部“视图” - “终端” 新建终端 使用 npm init -y初始化包管理器&#xff0c;生成一个package.json文件 安装 npm 包 npm install --…...

[JVM] 美团二面,说一下JVM数据区域

Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。这些区域有不同的用途。 文章目录 线程私有的数据区域1. 程序计数器2. Java 虚拟机栈3. 本地方法栈 线程共享的数据区域1. Java 堆2. 方法区3. 运行时常量池4. 直接内存 线程私有的数据区域 …...

【React】useReducer

让 React 管理多个相对关联的状态数据 import { useReducer } from "react" // 1. 定义reducer函数&#xff0c;根据不同的action返回不同的状态 function reducer(state, action) {switch (action.type) {case ADD:return state action.payloadcase SUB:return st…...

leetcode刷题详解二

160. 相交链表 本质上是走过自己的路&#xff0c;再走过对方的路&#xff0c;这是求两个链表相交的方法 ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {//本质上是走过自己的路&#xff0c;再走过对方的路if(headA NULL|| headB NULL){return NULL;}Lis…...

利用opencv/暗通道方法检测图像是否有雾-利用opencv/暗通道方法对深度学习目标检测算法结果进行二次识别提高准确率

目录 1 Python版本 2 C++版本 本来利用yolov5检测浓雾的,但是发现yolov5的检测结果会把一些正常天气检测成雾天,这种时候其实可以通过增加正常类,也就是将正常天气被误检成浓雾的图片当成一个正常类别去训练,但是不想标注图片,也不想重新训练算法了,因此想是不是可以用…...

Linux | 重定向 | 文件概念 | 查看文件 | 查看时间 | 查找文件 | zip

Linux | 重定向 | 文件概念 | 查看文件 | 查看时间 | 查找文件 | zip 文章目录 Linux | 重定向 | 文件概念 | 查看文件 | 查看时间 | 查找文件 | zip一、more1.1 输出重定向>和>>1.2 输入重定向< 二、 再谈一切皆文件三、less指令【重要】四、head指令五、tail指令…...

【广州华锐互动】利用VR体验环保低碳生活能带来哪些教育意义?

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐走进了我们的生活。从游戏娱乐到教育培训&#xff0c;VR技术的应用范围越来越广泛。而在这个追求绿色、环保的时代&#xff0c;VR技术也为我们带来了一种全新的环保低碳生活方式。让我们一起走进…...

python爬虫中 HTTP 到 HTTPS 的自动转换

前言 在当今互联网世界中&#xff0c;随着网络安全的重要性日益增加&#xff0c;越来越多的网站采用了 HTTPS 协议来保护用户数据的安全。然而&#xff0c;许多网站仍然支持 HTTP 协议&#xff0c;这就给我们的网络爬虫项目带来了一些挑战。为了应对这种情况&#xff0c;我们需…...

卷积神经网络(CNN)识别验证码

文章目录 一、前言二、前期工作1. 设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;2. 导入数据3. 查看数据4.标签数字化 二、构建一个tf.data.Dataset1.预处理函数2.加载数据3.配置数据 三、搭建网络模型四、编译五、训练六、模型评估七、保存和加载模型八、预测 …...

使用 PyODPS 采集神策事件数据

文章目录 一、前言二、数据采集、处理和入库2.1 获取神策 token2.2 请求神策数据2.3 数据处理-面向数组2.4 测试阿里云 DataFrame 入库2.5 调度设计与配置2.6 项目代码整合 三、小结四、花絮-避坑指南第一坑&#xff1a;阿里云仅深圳节点支持神策数据第二坑&#xff1a;神策 To…...

罗技M590鼠标usb优联连接不上

手里有一个罗技M590鼠标从18年4月一直用到现在&#xff0c;质量很好&#xff0c;除了滚轮有些松别的没毛病。最近一台笔记本电脑办公不太够用&#xff0c;又领了一个台式机&#xff0c;就想到M590支持双模连接&#xff0c;并且支持Flow&#xff0c;就把usb优联接收器从电池仓拿…...

天池 机器学习算法(一): 基于逻辑回归的分类预测

pytorch实战 课时7 神经网络 MSE的缺点&#xff1a;偏导值在输出概率值接近0或者接近1的时候非常小&#xff0c;这可能会造成模型刚开始训练时&#xff0c;偏导值几乎消失&#xff0c;模型速度非常慢。 交叉熵损失函数&#xff1a;平方损失则过于严格&#xff0c;需要使用更合…...

45岁后,3部位“越干净”,往往身体越健康,占一个也要恭喜!

众所周知&#xff0c;人的生命有长有短&#xff0c;而我们的身体健康状态&#xff0c;也同样会受到年龄的影响&#xff0c;就身体的年龄层次而言&#xff0c;往往需要我们用身体内部的干净程度来维持&#xff0c;换句话说就是&#xff1a;若是你的身体内部越干净&#xff0c;那…...

Windows安装Hadoop运行环境

1、下载Hadoop 2、解压Hadoop tar zxvf hadoop-3.1.1.tar.gz3、设置Hadoop环境变量 3.1.1、系统环境变量 # HADOOP_HOME D:\software\hadoop-3.1.13.1.2、Path 环境变量 %HADOOP_HOME%\bin %HADOOP_HOME%\sbin3.1.3、修改Hadoop文件JAVA_HOME 注 : 路径中不要出现空格 ,…...

软件测试 | MySQL 主键约束详解:保障数据完整性与性能优化

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…...

深入了解Linux中的scp命令及高级用法

Linux操作系统中&#xff0c;scp&#xff08;Secure Copy Protocol&#xff09;命令是一个用于在本地系统和远程系统之间安全复制文件的强大工具。通过基于SSH的加密通信&#xff0c;scp提供了安全的文件传输方式。在本文中&#xff0c;我们将深入介绍scp命令的基本语法以及一些…...

moviepy 视频剪切,拼接,音频处理

官网 使用matplotlib — moviepy-cn 文档 案例 from moviepy.editor import * from moviepy.video.fx import resize from PIL import Imagefile1r"D:\xy_fs_try\video_to_deal\spider_video\file\vedeo3.mp4" file2r"D:\xy_fs_try\video_to_deal\spider_video\…...

ubuntu搭建phpmyadmin+wordpress

Ubuntu搭建phpmyadmin wordpress Linux系统设置&#xff1a;Ubuntu 22配置apache2搭建phpmyadmin配置Nginx环境&#xff0c;搭建wordpress Linux系统设置&#xff1a;Ubuntu 22 配置apache2 安装apache2 sudo apt -y install apache2设置端口号为8080 sudo vim /etc/apache…...

linux网络之网络层与数据链路层

文章目录 一、网络层 1.IP协议 2.IP协议头格式 3.网段划分 4.特殊ip地址 5.IP地址的数量限制 6.私有ip和公网IP 7.路由 二、数据链路层 1.以太网 2.以太网帧格式 3.MAC地址 4.对比理解MAC地址和IP地址 5.MTU 6.ARP协议 ARP协议的工作流程 ARP数据报的格式 7.DNS 8.ICMP协议 9.N…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...