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

news2024/12/24 4:02:58

前端篇之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;
}

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

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

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

相关文章

华清远见嵌入式学习——网络编程——小项目

项目要求&#xff1a; 代码实现&#xff1a; 服务器端&#xff1a; #include <myhead.h>//定义协议包 struct proto {char type;char name[20];char text[128]; };int main(int argc, const char *argv[]) {//判断从终端输入的字符串的个数if(argc ! 3){printf("…

【算法萌新闯力扣】:卡牌分组

力扣热题&#xff1a;卡牌分组 一、开篇 今天是备战蓝桥杯的第22天。这道题触及到我好几个知识盲区&#xff0c;以前欠下的债这道题一并补齐&#xff0c;哈希表的遍历、最大公约数与最小公倍数&#xff0c;如果你还没掌握&#xff0c;这道题练起来&#xff01; 二、题目链接:…

别再被面试官问倒了!快速失败与安全失败的区别详解

大家好&#xff0c;我是小米&#xff0c;一个热爱技术分享的程序员大哥哥。今天&#xff0c;我们来聊一个在Java面试中经常会被问到的问题——"快速失败"&#xff08;fail-fast&#xff09;和"安全失败"&#xff08;fail-safe&#xff09;的区别。这两个概…

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

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

【接口技术】实验2:基本I/O实验

实验2 基本I/O实验 一、实验目的 1&#xff1a;掌握I/O端口地址译码电路的工作原理。 2&#xff1a;掌握简单并行接口的工作原理及使用方法。 二、实验内容 1&#xff1a;I/O端口地址译码实验 I/O地址译码电路不仅与地址信号有关&#xff0c;而且与控制信号有关。参加译码…

【面试HOT200】滑动窗口篇

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招面试的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于【CodeTopHot200】进行的&#xff0c;每个知识点的修正和深入主要参…

Flink实战(11)-Exactly-Once语义之两阶段提交

0 大纲 [Apache Flink]2017年12月发布的1.4.0版本开始&#xff0c;为流计算引入里程碑特性&#xff1a;TwoPhaseCommitSinkFunction。它提取了两阶段提交协议的通用逻辑&#xff0c;使得通过Flink来构建端到端的Exactly-Once程序成为可能。同时支持&#xff1a; 数据源&#…

【问题思考总结】多维随机变量函数的分布的两种情况的计算方法【离连/连连】

问题 今天做李六第一套的时候发现&#xff0c;有的时候&#xff0c;面对这种第二问的题&#xff0c;很自然地就想到了Fz&#xff08;z&#xff09;&#xff0c;然后进行化简&#xff0c;但是有的时候&#xff0c;像这道题&#xff0c;就突然发现P{XY<z}是一个非常复杂的形式…

The Bridge:从临床数据到临床应用(预测模型总结)

The Bridge:从临床数据到临床应用&#xff08;预测模型总结&#xff09; 如果说把临床预测模型比作临床数据和临床应用之间的一座“桥梁”&#xff0c;那它应该包括这样几个环节&#xff1a;模型的构建和评价、模型的概率矫正、模型决策阈值的确定和模型的局部再评价。 模型的构…

Qt 串口编程-从入门到实战

1. Qt 串口通信流程解析 1.1 串行通信和并行通信对比 并行通信适合距离较短的通信&#xff0c;且信号容易受干扰&#xff0c;成本高串口通讯-设备&#xff08;蓝牙&#xff0c; wifi&#xff0c; gprs&#xff0c; gps&#xff09; 1.2 Qt 串口通信具体流程 1. 创建 QSerial…

渗透测试--Nacos系统

免责声明&#xff1a; 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直…

从零到Kafka:万字带你体验Spring Boot整合消息驱动的奇妙之旅

Spring Boot与Kafka从零开始整合指南 准备工作创建项目 Spring Boot与Kafka的初次邂逅配置生产者消费者模拟测试 消息处理生产者发送消息消费者处理消息自定义序列化器 主页传送门&#xff1a;&#x1f4c0; 传送 准备工作 Spring boot: &#xff5c; 基于Spring的开源框架&a…

scipy 笔记:scipy.spatial.distance

1 pdist 计算n维空间中观测点之间的成对距离。 scipy.spatial.distance.pdist(X, metriceuclidean, *, outNone, **kwargs) 1.1 主要参数 X一个m行n列的数组&#xff0c;表示n维空间中的m个原始观测点metric使用的距离度量out输出数组。如果非空&#xff0c;压缩的距离矩阵…

每日一题:LeetCode-103/107.二叉树的(层序/锯齿形层序)遍历

每日一题系列&#xff08;day 04&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

interface previously declared 的bug问题

其实就是重复定义了&#xff0c;只需要加如下的代码即可&#xff1a; 其中把APB的部分改成自己的接口名字就好了。

『亚马逊云科技产品测评』活动征文|EC2 实例安装 docker 与配套软件部署前后端分离的医疗管理后台系统

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 目录 一、AWS 产品类别选择 &#xff08;1&#xff09;应用服务器选择…

【接口技术】实验1:简易汇编程序调试

实验1 简易汇编程序调试 一、实验目的 1&#xff1a;掌握在集成开发软件环境中汇编程序的编写、调试方法。 2&#xff1a;学会用DOS功能调用&#xff08;1号和2号&#xff09;完成输入和输出。 二、实验内容 1-1&#xff1a; 在以BUF为首地址的字节存储区存放有若干个无符…

02 RANSAC算法 及 Python 实现

文章目录 02 RANSAC算法 及 Python 实现2.1 简介2.2 算法流程2.3 RANSAC 算法实现直线拟合2.4 利用 RANSAC 算法减少 ORB 特征点误匹配 02 RANSAC算法 及 Python 实现 2.1 简介 RANSAC &#xff08;Random Sample Consensus&#xff0c;随机抽样一致&#xff09;算法的 基本假…

网络通信基础概念介绍

网络通信基础概念介绍 局域网LAN 局域网&#xff0c;即 Local Area Network&#xff0c;简称LAN。 局域网内的主机之间能方便的进行网络通信&#xff0c;又称为内网&#xff1b;局域网和局域网之间在没有连接的情况下&#xff0c;是无法通信的。 局域网是指在一个相对较小的…

Android设计模式--外观模式

弈之为术&#xff0c;在人自悟 一&#xff0c;定义 外观模式要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。提供一个高层次的接口&#xff0c;使得子系统更易于使用。 外观模式在开发中的使用频率是非常高的&#xff0c;尤其是在第三方的SDK里面&#xff0…