智慧的网络爬虫之CSS概述

智慧的网络爬虫之CSS概述

CSS 是“Cascading Style Sheet”的缩写,中文意思为“层叠样式表”,用于描述网页的表现形式。如网页元素的位置、大小、颜色等。css的主要作用是定义网页的样式。

CSS样式

1. 行内样式

行内样式:直接定义在 HTML 标签的 style 属性中

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Title</title>
  </head>
  <body>
    <!--行内样式-->
    <p style="color: green;">段落</p>
    <p style="color: blueviolet;">段落</p>
    <p style="color: plum;">段落</p>
  </body>
</html>
2. 内嵌样式

HTML 头部(<head>标签内)的<style>标签中定义 CSS 样式。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p{
            background-color: black;
            color: blue;
        }
    </style>
</head>
<body>
<div>
    <p>第一段落</p>
    <p>第二段落</p>
    <span>一个span标签</span>
</div>
</body>
</html>
3. 外部样式

CSS 样式定义在一个 .css 格式的文件中,然后使用 HTML 的<link>标签将这个 .css 格式的样式文件应用到 HTML 文档中。

css文件

div{
    background: aquamarine;
}
p{
    color: red;
    background: black;
}

html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="d1.css">
</head>
<body>
<div>
    <p>这是第一段落</p>
    <p>这是第二段落</p>
    <span>这是一个span标签</span>
</div>
</body>
</html>

样式优先级

行内样式 > 内嵌样式 > 外部样式 注意:尽量不要在同一个Html文件中使用多种样式

  • 如果样式是固定并且不修改并且很少情况,使用内部样式
  • 如果样式针对当前html页面做的样式,并且代码量不是很大的的情况下, 使用内联样式
  • 如果样式是通用,且css代码很多,使用外部样式,需要创建一个css文件,引入。

CSS选择器

1. 通用选择器

通用选择器用星号*表示,它不匹配某个特定的 HTML 元素,而是匹配 HTML 文档中的每个元素,开发中通常使用通用选择器来清除 HTML元素中默认的内外边距

通用选择器格式:*{}

* {
    margin: 0 auto;
    padding: 0;
}
2. 标签选择器

根据标签的名字 进行选择匹配

标签选择器格式:标签名{}

p{
	color: red
}
span{
	color: blue
}
3. ID选择器/类选择器

根据标签的ID属性或者class属性来匹配,ID选择器的定义需要用到#,后面紧跟ID属性值,类选择器的定义需要用到一个英文的句号.,后面紧跟 class 属性的值

ID选择器格式: #ID名{}
#d1{
	background: aquamarine;
}

类选择器格式:.类名{}
.c1{
	background: black;
}

<div>
    <span id="d1">ID选择器</span>
	<span class="c1">类选择器</span>
</div>

4. 层级选择器
  • 后代选择器
  • 子选择器
<div>
    <span id="d1">ID选择器</span><br>
	<span class="c1">类选择器</span><br>
    <a href="#"><span>这是一个超链接</span></a>
    <ul>
        <li><span>这是第一项</span></li>
        <li><span>这是第二项</span></li>
    </ul>
</div>

span标签是div标签的后代标签,a标签也是div的后代标签

后代选择器的格式: 父标签名 子标签名{}  通过父标签去定位找到子标签 能够匹配到div下面所有符合条件的标签
子代选择器的格式: 父标签 > 子标签{}  通过父标签去定位找到子标签 能够匹配到div下直系的子标签

后代选择器使用
div span{
	color: red
}

子代选择器使用
div > span{
	background: black;
}
5. 组合选择器

组合选择器可以将同样的样式应用到多个选择器中,每个选择器中用逗号隔开

<div>
    <span id="d1">ID选择器</span><br>
	<span class="c1">类选择器</span><br>
    <a href="#"><span>这是一个超链接</span></a>
    <ul>
        <li><span>这是第一项</span></li>
        <li><span>这是第二项</span></li>
    </ul>
</div>

样式代码
span,a{
	color:red
} /* 该样式将会运用在所有的span标签和a标签中  */

#d1,.c1{
	color:blue
} /* 该样式将会运用在所有id属性为d1,class属性为c1的标签中  */
6、伪类选择器

伪类选择器是一种特殊的选择器,可以用来选择处于特定状态的元素,例如未被访问的链接、已被访问的链接、鼠标悬停在上面的元素、活动元素和获得焦点的表单元素等

  • :link伪类选择器:选择所有未被访问的链接。
  • :visited伪类选择器:选择所有已被访问的链接。
  • :hover伪类选择器:选择鼠标悬停在上面的元素。
  • :active伪类选择器:选择活动元素,即鼠标按下未弹起的元素。
  • :focus伪类选择器:选择获得焦点的元素,一般是表单元素,如类。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        span:hover{
            color: red;
        }

        a:link{
            color: red;
        }
        a:active{
            color: blue;
        }
        a:visited{
            color: yellow;
        }
        a{
            font-size: larger;
        }
    </style>
</head>
<body>
<div class="f">
    <div class="box1"><span>这是一个span标签</span></div>
    <div class="box2"><a href="#">这是一个链接</a></div>
</div>
</body>
</html>

CSS盒子模型

盒子模型是网页设计中经常用到的一种思维模型,由四个部分构成,从内到外分别为内容区(content)、内边距(padding)、边框(border)和外边距(margin),CSS 为这四个部分提供了一系列相关属性,通过对这些属性的设置可以丰富盒子的表现效果。

在这里插入图片描述

盒子的组成

  • 外边距:margin
  • 内边距:padding
  • 边框:border
  • 内容:content
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>Title</title>
	<style>
		div {
			background-color: lightgrey;
			width: 300px;
			border: 25px solid green;
			padding: 25px;
			margin: 25px;
		}
	</style>
</head>
<body>
	<h2>盒子模型演示</h2>
	<p>CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。</p>
	<div>这里是盒子内的实际内容。有 25px 内间距,25px 外间距、25px 绿色边框。</div>
</body>
</html>
1. margin
  • 盒子的外边距,是透明的 只能设置他的边距
  • margin包含了上下左右四条边,开发者可以单独设置每一条边的边距。
margin-top:上边距
margin-buttom:下边距
margin-left:左边距
margin-right:右边距

在这里插入图片描述

2. padding
  • 盒子的内边距

  • 与外边距不同,padding不是只能完全透明的,可以设置背景颜色和图片。

  • margin类似,padding包含了上下左右四条边,开发者可以单独设置每一条边的边距。

padding-top:上部填充
padding-bottom:下部填充
padding-left:左部填充
padding-right:右部填充
3.border
  • border表示盒子的边界,它可以设置成可见的,样式多样的。
  • bordermarginpadding一样可以分别对每一条边进行设置。
border-top:上边界
border-bottom:下边界
border-left:左边界
border-right:右边界

浮动

浮动可以使一个元素脱离自己原本的位置,并在父元素的内容区中向左或向右移动,直到碰到父元素内容区的边界或者其它浮动元素为止 float 属性有三个可选值,如下表所示:

描述
left元素向左浮动
right元素向右浮动
none默认值,元素不浮动

当父元素未设置高度时,父元素的高度会取决于子元素的高度。当子元素设置浮动后,会脱离文档流,造成子元素的内容在父元素外出现,这种情况下,父元素的高度可能会塌陷到0

<!DOCTYPE html>
<html>
<head>
    <style>
        .box{
            border: 2px solid red;
            height: 400px;
            width: 312px;
        }
        .div1{
            height: 100px;
            width: 100px;
            float: left;
            border: 2px solid yellow;
        }
        .div2{
            float: left;
            height: 100px;
            width: 100px;
            border: 2px solid blue;
        }
        .div3{
            height: 100px;
            width: 100px;
            float: left;
            border: 2px solid black;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="div1">div1</div>
        <div class="div2">div2</div>
        <div class="div3">div3</div>
    </div>
</body>
</html>
清除浮动

元素浮动之后,会对周围的元素造成一定的影响,为了消除这种影响您可以使用 clear 属性来清除浮动,属性的可选值如下:

描述
left左侧不允许浮动元素
right右侧不允许浮动元素
both左右两侧均不允许浮动元素

定位

CSS 中的 position 属性用来设置元素在页面中的位置,通过该属性您可以把任何属性放置在任何您认为合适的位置。position常用的属性值有relative, absolute, fixed

属性名描述
position: relative相对定位,即相对于元素的正常位置进行定位,不会对其他元素造成影响
position: absolute绝对定位,相对于第一个带有定位属性的父元素进行定位 默认是浏览器
position: fixed固定定位,相对于浏览器的创建进行定位
相对定位
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box1{
            width: 100px;
            height: 100px;
            background-color: black;
            opacity: 0.5; /*透明度*/
            position: relative;
            left: 150px;
            top: 150px;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: green;
        }

    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
</body>
</html>
绝对定位
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box1{
            width: 100px;
            height: 100px;
            background-color: black;
            opacity: 0.5; 
            /*绝对定位 不会保留原来的位*/
            position: absolute;
            left: 150px;
            top: 150px;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: green;
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
</body>
</html>

th: 100px;
height: 100px;
background-color: black;
opacity: 0.5;
/绝对定位 不会保留原来的位/
position: absolute;
left: 150px;
top: 150px;
}
.box2{
width: 200px;
height: 200px;
background-color: green;
}

~~~

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

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

相关文章

造一个交互式3D火山数据可视化

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 使用 Plotly.js 创建交互式 3D 火山数据可视化 应用场景 本代码用于将火山数据库中的数据可视化&#xff0c;展示火山的高度、类型和状态。可用于地质学研究、教育和数据探索。 基本功能 该代码使用 Plotly…

模型部署:C++libtorch实现全连接模型10分类和卷积模型ResNet18的四分类的模型部署推理

Clibtorch实现模型部署推理 模型 全连接模型&#xff1a;公开mnist手写识别数字的十分类卷积模型&#xff1a;自行采集的鲜花四分类 部署 语言环境&#xff1a;C 对比Python python是解释性语言&#xff0c;效率很慢&#xff0c;安全性很低 系统开发一般是java、C/C&…

昂科烧录器支持BPS晶丰明源半导体的多相Buck控制器BPD93004E

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表&#xff0c;其中BPS晶丰明源半导体的多相Buck控制器BPD93004E已经被昂科的通用烧录平台AP8000所支持。 BPD93004E是一款多相Buck控制器&#xff0c;支持原生1~4相&#xff0c;数字方式控制&am…

麒麟桌面操作系统上解决任务栏消失问题

原文链接&#xff1a;麟桌面操作系统上解决任务栏消失问题 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在麒麟桌面操作系统上解决任务栏消失问题的文章。任务栏是我们日常操作系统使用中非常重要的部分&#xff0c;它提供了快速访问应用程序和系统功能的便捷…

OpenBayes 教程上新 | CVPR 获奖项目,BioCLlP 快速识别生物种类,再也不会弄混小浣熊和小熊猫了!

市面上有很多植物识别的 App&#xff0c;通过对植物的叶片、花朵、果实等特征进行准确的识别&#xff0c;从而确定植物的种类、名称。但动物识别的 App 却十分有限&#xff0c;这使我们很难区分一些外形相似的动物&#xff0c;例如小浣熊和小熊猫。 左侧为小浣熊&#xff0c;右…

VBA数据库解决方案第十二讲:如何判断数据库中数据表是否存在

《VBA数据库解决方案》教程&#xff08;版权10090845&#xff09;是我推出的第二套教程&#xff0c;目前已经是第二版修订了。这套教程定位于中级&#xff0c;是学完字典后的另一个专题讲解。数据库是数据处理的利器&#xff0c;教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…

C++ | Leetcode C++题解之第207题课程表

题目&#xff1a; 题解&#xff1a; class Solution { private:vector<vector<int>> edges;vector<int> indeg;public:bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {edges.resize(numCourses);indeg.resize(numCo…

为什么越来越多的人选择做债务重组?

说到债务重组&#xff0c;很多人可能一头雾水。但简单来说&#xff0c;就是帮你优化债务结构&#xff0c;减轻还款压力。 为什么现在这么多人会选择做债务重组&#xff1f; 保护工作和名声&#xff1a;有些在好单位上班的人&#xff0c;怕债务问题影响工作&#xff0c;不想让单…

浅谈定时器之BeanShell 定时器

浅谈定时器之BeanShell 定时器 在进行性能测试和负载测试时&#xff0c;JMeter 提供了多种定时器来模拟用户操作间的延迟&#xff0c;以更贴近真实世界的场景。BeanShell 定时器是其中一种高级且灵活的定时机制&#xff0c;允许用户通过BeanShell脚本来自定义延时逻辑。BeanSh…

电脑录音软件哪个好?7款录制音频工具大盘点,赶快学起来!(2024)

也许你渴望提取你最喜欢的节目的背景音乐&#xff0c;或者你希望录制自己的声音制作教程。如果是这样&#xff0c;你就需要一款优秀的电脑录音软件&#xff0c;来帮助你捕捉任何你想要的声音&#xff0c;而且不会损失音质。目前市场上存在着大量的录制音频工具&#xff0c;面对…

nccl 04 nvidia 官方小程序

1&#xff0c;代码重新编辑 为了地毯式地检查结果的正确性&#xff0c;这里修改了代码 主要步骤为 step1: data_p指向的空间中&#xff0c;分别生成随机数&#xff1b; step2: 分别拷贝到gpu的sendbuff的显存中&#xff1b; step3: 通过nccl_all_reduce sum&#xff1b;…

什么是原始权益人?

摘要&#xff1a;每天学习一点金融小知识 原始权益人&#xff0c;在资产证券化&#xff08;ABS&#xff09;和公募REITs等金融产品中&#xff0c;指的是证券化基础资产的原始所有者&#xff0c;即金融产品的真正融资方。他们是按照相关规定及约定向资产支持专项计划转移其合法拥…

RabbitMQ消息可靠性等机制详解(精细版三)

目录 七 RabbitMQ的其他操作 7.1 消息的可靠性(发送可靠) 7.1.1 confim机制(保证发送可靠) 7.1.2 Return机制(保证发送可靠) 7.1.3 编写配置文件 7.1.4 开启Confirm和Return 7.2 手动Ack(保证接收可靠) 7.2.1 添加配置文件 7.2.2 手动ack 7.3 避免消息重复消费 7.3.…

【数据结构】计数排序等排序

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

企业软文投放为什么要选择包收录媒体?

如今这个信息时代企业想要有效的将品牌推广出去&#xff0c;那选择推广方式至关重要。软文投放作为一种常见的品牌推广方式&#xff0c;其效果往往取决于投放的媒体质量。而在众多媒体中&#xff0c;包收录媒体凭借其独特的优势&#xff0c;成为了企业软文投放的明智之选。 一…

Nuxt3 的生命周期和钩子函数(七)

title: Nuxt3 的生命周期和钩子函数&#xff08;七&#xff09; date: 2024/6/30 updated: 2024/6/30 author: cmdragon excerpt: 摘要&#xff1a;文章阐述了Nuxt3中Nitro生命周期钩子的使用&#xff0c;如nitro:config自定义配置、nitro:init注册构建钩子、nitro:build:be…

为什么企业应用开发,c++干不过java?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「c的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01; C/C这种东西&#xff0c;根本…

15_软件程序设计基础

目录 嵌入式软件开发原理 宿主机和目标机 交叉编译 交叉调试 嵌入式软件开发特点和挑战 开发工具 程序设计语言基本概念 解释和编译 常见程序设计语言 程序设计语言的基本成分 编译程序基本原理 嵌入式软件开发原理 宿主机和目标机 嵌入式软件开发不同于传统软件开…

QT5:在窗口右上角显示图标

目录 一、环境与目标 二、实现逻辑&#xff08;纯代码&#xff09;与效果 三、参考代码 四、总结 一、环境与目标 qt版本&#xff1a;5.12.7 windows 11 下的 Qt Designer &#xff08;已搭建&#xff09; 目标&#xff1a;使用嵌套布局的方式将两个按钮显示在窗口右上角…

C++专业面试真题(1)学习

进程有多少种状态&#xff0c;如何转换 创建&#xff1a;一个进程启动&#xff0c;首先进入创建状态&#xff0c;需要获取系统资源创建进程管理科PCB完成资源分配。就绪态&#xff1a;在创建完成后&#xff0c;进程已经准备好&#xff0c;处于就绪状态&#xff0c;但是还未获得…