一文讲透如何使用CSS美化HTML界面

        上一篇文章(初识HTML文件,创建自己的第一个网页!)介绍了HTML文件,并实战练习了如何编写一个结构简单的HTML网页,但最后也提到了单纯使用HTML语言创建的网页并不美观,有没有一个东西像PS能够美化图片一样让我们能够对我们的网页进行美化操作呢?答案是有的,我们可以使用CSS来对HTML网页自由地进行美术上的加工。

        CSS(Cascading Style Sheets,层叠样式表),能够起到给我们的HTML设计样式、为网页内容添加外观属性的作用。比如我们可以自由修改页面上文本的字体、字号、颜色,可以完成自己对页面内容的排版,在深入学习后,我们甚至可以通过CSS给网页增加一些特殊的效果,如动态响应、开场动画等。

        与HTML相似,CSS也算不上一门真正的编程语言,而是一门样式表语言,就是为了给HTML元素增添样式而生的,接下来我们将介绍如何使用CSS美化我们的网页界面,并在最后进行一个CSS样式实战练习。

一、创建CSS样式表

        给HTML文件增加CSS样式主要有两种方法,第一种方法是直接添加在HTML文件内部,但这种方式不太美观优雅,一般建议第二种方法——创建一个.css后缀的文件,然后链接HTML文件与该css文件。但二者在写法上并没有太大区别,只是笔者更加倾向于使用第二种方法,因为第二种方法在后期处理起大型网页时更加清楚方便,在后面的介绍中也会以第二种方法呈现。

方法一:将CSS样式表直接添加在HTML文件中

        我们先创建一个空白的html文件。

        然后我们可以在head部分的title元素后添加一个style元素,表示CSS样式表。

        这样我们就完成CSS样式表的嵌入了,之后我们只需要把CSS样式表的相关内容写在style标签下就可以给对应的内容添加样式了。

        在这里先呈现一个样例,CSS的具体写法在之后会详细讲解。

        最后呈现的效果如下:

方法二:将CSS样式表文件与HTML文件进行链接

        同样的,我们先创建一个空白的html文件,然后在html文件的同一目录下创建一个css样式表文件,比如style.css。接着我们在html文件的head部分内添加一个link标签来标识与style.css进行链接(具体实现见下图)。

        然后我们就可以在style.css文件中实现对该html网页的元素样式的编辑,我们不妨直接复制第一种方法style标签内的样式:

        将css文件保存后,我们运行css_try2.html,得到与第一种方法一模一样的网页:

二、CSS样式表语法介绍

        CSS样式表的书写很规范,我们将其称为规则集,其具体结构如下:

选择器(Selector){/* 声明块(Declaration) */属性(Properties):属性值(Property Value);}

          具体例子:

p
{color:blue;
}

        在这个例子中,p就是选择器,表示选中了所有p标签元素,color表示编辑选中元素的颜色属性,blue表示将颜色属性修改为蓝色。

三、CSS样式表选择器介绍

        在一个HTML文件中,我们可能存在很多地方使用到了同一种元素,比如一个页面上会有很多的段落p元素,这时如果我们想要给不同的段落增添不同的效果可能就不能再使用上面的这种选择方式,因为这样会导致所有的p元素应用同一种CSS样式。对此CSS样式表提供了多种选择器,换种说法,除了对于元素的种类进行选择,我们还可以自行给元素添加属性,来方便我们进行选择(定位)操作。(题外话:这也大大方便了爬虫程序对特定内容进行爬取,定位越清晰,爬虫越方便)

        首先来讲讲我们可以给元素添加什么属性:

①id属性:我们可以赋予元素一个特定的id,这个id就像元素的身份证一样,是独一无二的,即每个id只能对应一个元素,一个元素只能对应一个id。

②class属性:我们可以将元素归类成一个特定的class,这个class下可以包含不同种类的元素,一个class可以对应多个元素。

③元素自带属性:一些元素是自带一些可以选择性添加的属性的,比如<img>标签,就可以自行添加src属性。

④元素响应状态属性:HTML网页会检测用户的活动,比如键盘操作、鼠标操作等,如果我们需要元素在特定状态下(如鼠标悬停)做出特殊响应,我们就需要定位该元素的相应的响应状态属性。

        因此,CSS为我们提供了五种主要的选择器:

①元素选择器(标签/类型选择器):选择所有对应类型的标签 比如上面示例里的p,选择了所有p元素。

②ID选择器:选择特定id对应的元素 写法: #test_id 选择了id为test_id的特定元素。

③类选择器:选择特定class包含的元素 写法: .test_class 选择了class为test_class的所有元素。

④属性选择器:选择拥有特定属性的元素 写法: img[alt] 选择了<img src=”xxxx” alt=”xxx”>而不会选择<img src=”xxx”>。

⑤伪类选择器:选择特定状态下的元素 写法: a:hover 选择了鼠标指针悬停在其上的<a>元素。

        学习了这么多选择器,我们不妨自己尝试一下!

        下面是笔者给出的一个示例,将这五种不同的选择器全部用上了:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="style.css"><title>css_test</title>
</head>
<body><h1>I AM h1</h1><h1>I AM ALSO </h1><h2>I AM h2</h2><p id="id_select">ID SELECT</p><p class="class_select">class_select</p><a href="https://www.csdn.net/" class="class_select">Go to CSDN</a><img src="img_1.png" alt="小八"><br><img src="img_2.png">
</body>
</html>

h1
{color:aquamarine;font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}#id_select
{color:rgb(162, 33, 33);font-size: 25px;text-align: center;
}.class_select
{color: blue;
}a:hover
{color: red
}img[alt]
{width: 20px;
}

        最终呈现的网页效果是这样的:

        当我们将鼠标光标移动到Go to CSDN上:

        我们可以发现伪类选择器触发了,将字体颜色改变成红色。

四、CSS样式表属性介绍

        CSS样式表为我们提供了各种各样的属性用于美化我们的界面,笔者无法面面俱到地介绍每一种属性,因此笔者会介绍一些常用的重要的属性进行介绍,其他的属性供读者自行探索~

①文本字体属性:

font-size:字号大小,支持不同的单位,如10px表示10个像素,也可以直接选择small,large等笼统的字号大小。

font-family:字体家族,用于加载不同的字体,可以自己导入(本地/线上字体库)。

color:颜色,可以用于设置文本的字体颜色。

②布局属性:

text-align:文本字体位置,用于设置文本在页面上出现的位置。

width:设置元素的宽度。

padding:内边距,设置元素内容周围的空间大小。

border:边框,设置紧贴着内边距的线的粗细。

margin:外边距,设置围绕元素边界外侧的空间大小。

background-image:背景图片,可以设置对应元素的底图

        事实上,我们可以把HTML文件的布局想象成一个又一个盒子,或者说,HTML页面的布局实际上是一个又一个容器的布局,我们可以对这个容器的边距、大小、背景等等进行一系列操作。

五、实战练习:使用CSS样式表美化自己的网页

        笔者这里用到的网页是上一篇介绍HTML文件的文章中最后完成的网页。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="practice_style.css"><title>Poem</title>
</head>
<body><h1>不可知</h1><h3>【阿根廷】博尔赫斯</h3><br><div id="poem_text"><p><i>月亮不知道她的恬静皎洁,</i></p><p><i>甚至不知道自己是<strong>月亮</strong>;</i></p><p><i>砂砾不了解自己是砂砾。</i></p><p><i>任何事物都不了解它独特的模样。</i></p><p><i>象牙的棋子和摆弄它们的手,</i></p><p><i>和抽象的棋艺都毫无关系。</i></p><p><i>人们欢少倍多的<strong>命运</strong></i></p><p><i>也许是冥冥中某个主宰的工具,</i></p><p><i>这些事我们<strong>不得而知</strong>;</i></p><p><i>把他叫做上帝并不解决问题,</i></p><p><i>恐惧、疑虑和有头无尾的祈祷,</i></p><p><i>都是白费力气,<strong>徒劳无益</strong>。</i></p><p><i>哪一张弓射出我这只箭?</i></p><p><i>目标又是哪一座<strong>高山之巅</strong>?</i></p></div><audio controls src="music.mp3"></audio>
</body>
</html>

html
{background-color: black;
}
h1
{text-align: center;color:antiquewhite;
}
h3
{text-align: center;color: antiquewhite;
}#poem_text
{width: 70%;font-size: 23px;line-height: 7px;color:white;height: auto;background-image: url(image.png);background-repeat: no-repeat;background-size: cover;display: flex;flex-direction: column;align-items: center;padding-top: 20px;padding-bottom: 20px;position:absolute;left: 16%;
}
audio
{/* 设置音频播放器的宽度 */width: 300px;height: 20px;position:absolute;left: 42%;
}

        最后对比一下用CSS美化前后的界面:

                                                                (美化前)

                                                                 (美化后)

        到这里,我们的CSS之旅就结束啦,但CSS样式表语言的内容不仅局限于此,关于CSS还有更广阔的天地等待读者你去尽情探索!

        感谢您的耐心浏览!

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

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

相关文章

【前端 16】使用Ajax发送异步请求

Ajax 基础入门&#xff1a;实现异步请求 Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是一种在无需重新加载整个网页的情况下&#xff0c;能够更新部分网页的技术。通过使用 Ajax&#xff0c;可以在后台与服务器交换数据&#xff0c;这意味着可以在不影响用户…

【代码】Python3|Scrapy框架初探(汽车之家大连市二手车车辆数据爬取、清洗与可视化)

本篇主要是整个项目的介绍&#xff0c;没提到太多琐碎的技术细节&#xff0c;以后有空的话会整理一下 Scrapy 和原生爬虫的差异&#xff0c;还有它坑人的一些地方&#xff0c;单发出来。 开源地址&#xff1a;https://github.com/shandianchengzi/car_home_spider 使用说明&a…

Github 2024-07-28 php开源项目日报Top10

根据Github Trendings的统计,今日(2024-07-28统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10Blade项目2TypeScript项目2Java项目1ASP项目1Laravel:表达力和优雅的 Web 应用程序框架 创建周期:4631 天开发语言:PHP, BladeStar…

openssl 加密

使用tar命令在Linux中加密文件可以通过两种方式实现&#xff1a;使用gzip压缩的同时加密&#xff0c;或者使用加密选项。 1. 使用gzip压缩的同时加密&#xff1a; “ tar cz file1 file2 | openssl enc -e -aes256 -out archive.tar.gz.enc “ – cz&#xff1a;创建tar压缩文…

基于粒子群优化算法(PSO)永磁同步电机电流环多参数辨识MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 仿真模型简介 在同步旋转dq 轴坐标系下建立PMSM 数学模型&#xff0c;将定子dq 轴电压设为辨识模型和实际测量值的输入&#xff0c;设计了PSO 辨识PMSM 参数的适应度函数。该辨识方法不需推导复杂的电机数学…

R语言统计分析——整合和重构

参考资料&#xff1a;R语言实战【第2版】 R中提供了许多用来整合&#xff08;aggregate&#xff09;和重塑&#xff08;reshape&#xff09;数据的强大方法。在整合数据时&#xff0c;往往将多组观测替换为根据这些观测计算的描述性统计量。在重塑数据时&#xff0c;则会通过修…

STM32——GPIO(点亮LEDLED闪烁)

一、什么是GPIO&#xff1f; GPIO&#xff08;通用输入输出接口&#xff09;&#xff1a; 1.GPIO 功能概述 GPIO 是通用输入/输出&#xff08;General Purpose I/O&#xff09;的简称&#xff0c;既能当输入口使用&#xff0c;又能当输出口使用。端口&#xff0c;就是元器件…

数据结构(5.3_5)——二叉树的线索化

第一种寻找中序前驱方法 中序线索化 本质上就是一次中序遍历&#xff0c;只不过需要在一边遍历一边处理结点线索化 代码&#xff1a; //全局变量pre 指向当前访问结点的前驱 ThreadNode* pre NULL;struct ElemType {int value; };//线索二叉树结点 typedef struct ThreadNode…

linux练习2

一、搭建nfs服务器&#xff0c;客户端可从服务端/share目录上传与下载文件 **服务端** 1、下载相关安装包 [rootserver ~]# yum install rpcbind -y [rootserver ~]# yum install nfs-utils -y 2、 创建共享文件夹/share并授予权限 [rootserver ~]# mkdir /share [rootserv…

vector以及迭代器失效

前言 学习完string&#xff0c;之后学习的就是vector。vector就是之前C语言中讲到过的顺序表&#xff0c;用三个变量分别记录资源的位置&#xff0c;容器的容量和容器中元素个数。原来的写法是直接使用指针加两个int变量&#xff0c;而标准库中&#xff0c;三个都是由指针确定的…

sql server 连接报错error 40

做个简单的记录,造成40 的原因有很多,你的错误并不一定就是我遇到的这种情况. 错误描述: 首先我在使用ssms 工具连接的时候是可以正常连接的,也能对数据库进行操作. 在使用 ef core 连接 Sql Server 时报错: Microsoft.Data.SqlClient.SqlException (0x80131904): A network-r…

hadoop学习(二)

一.MapReduce 1.1定义&#xff1a;是一个分布式运算程序的编程框架 1.2核心功能&#xff1a;将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序&#xff0c;并发运行在一个Hadoop集群上。 1.3优点 1&#xff09;易于编程 它简单的实现一些接口&#…

【Linux】Ubuntu解决Release 文件已经过期问题

​今天在执行update更新软件包时遇到了此问题&#xff1a;E: http://cn.archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease 的 Release 文件已经过期(已经过期了 247天 21小时 33分 15秒)。该仓库的更新将不会应用&#xff0c;如图 ​ 这个报错之前其实经常遇到&#x…

电脑虚拟摄像头软件分享|用手机打破电脑摄像头的极限

随着手机摄像头的不断更新迭代&#xff0c;手机已经接近专业电脑摄像头的画质。这让我们可以花费更低的成本获取优质的电脑录像画面。今天小编给大家详细讲解电脑虚拟摄像头的在我们日常生活中的妙用&#xff0c;以及分享几款口碑不错的电脑虚拟摄像头软件。有需要的小伙伴可以…

Unity3D 转换微信小游戏指引 05 广告内购

Unity3D 转换微信小游戏指引系列&#xff08;第五期 完结&#xff09; 广告 在小程序后台页面找到推广->流量主 开通条件如下&#xff1a; 开通之后&#xff0c;需要接入广告组件。 调用创建广告组件的接口时&#xff0c;需要传入参数 adUnitId&#xff0c;这个是开通流量…

「C++系列」数组

文章目录 一、数组1. 声明数组2. 初始化数组3. 访问数组元素4. 遍历数组注意事项示例代码 二、多维数组1. 声明二维数组2. 初始化二维数组3. 访问二维数组元素4. 遍历二维数组注意事项示例代码 三、指向数组的指针1. 声明指向数组的指针2. 通过指针访问数组元素3. 指针和数组的…

Android 10.0 framework默认沉浸式状态栏功能实现

1. 前言 在10.0的系统rom定制化开发中,在实现状态栏的某些定制化开发中,在某些产品需要实现沉浸式状态栏,就是需要app 能全屏显示同样也能显示状态栏,接下来就来分析下相关的功能实现 如图: 2.framework默认沉浸式状态栏功能实现的核心类 frameworks\base\core\java\andro…

【神经网络】梯度下降的优化方法【数学公式+代码示例】

文章目录 1、简介2、指数加权平均2.1、公式2.2、代码 3、Momentum⭐3.1、公式演变3.2、代码 4、AdaGrad4.1、计算步骤4.2、代码示例 5、RMSProp5.1、公式5.2、代码5.3、小结 6、Adam6.1、公式和步骤解释⭐6.2、代码⭐6.3、优点 7、何为鞍点8、小结 &#x1f343;作者介绍&#…

国防科技大学深圳地区新生欢送会圆满举行

2024年7月28日&#xff0c;第97个八一建军节来临之际&#xff0c;在这个充满希望的盛夏时节&#xff0c;深圳地区迎来了13名即将踏入国防科技大学的优秀学子。 为了庆祝这一荣耀时刻&#xff0c;并表达对新生的深切祝福&#xff0c;在国防科技大学深圳校友会黄丹会长的积极倡议…

书生大模型实战营--L1关卡-Llamaindex RAG实践

一、安装llamaindex库 pip install llama-index pip install llama-index-embeddings-huggingface 二、问2024年巴黎奥运会 中国队获得几枚金牌&#xff0c;无法回答该问题 三、构建Llamaindex RAG 1、初始化llm 2、构建词向量模型 下载模型&#xff1a;git clone https://…