智慧的网络爬虫之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;
}

~~~

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

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

相关文章

Qt 5.14.2+Android环境搭建

1. 安装QT5.14.2的过程中&#xff0c;选中套件&#xff08;kit&#xff09; qt for android。 如果已经安装了qt creator但没有安装该套件&#xff0c;可以找到在qt安装目录下的MaintenanceTool.exe&#xff0c;运行该程序添加套件。 2. 安装jdk8&#xff0c;android sdk&…

五分钟了解MQ消息集成

一、MQ消息集成的定义 MQ消息集成是通过消息中间件&#xff08;Message Queue&#xff09;实现的一种数据集成方式。它通过将数据发送到中间件中&#xff0c;再从中间件中接收数据&#xff0c;实现不同系统之间的数据交换。在MQ消息集成中&#xff0c;发送者和接收者之间不需要…

vue3.2及以上 父调子的方法defineExpose定义供父调用的方法及属性

1、定义子类LoginForm&#xff1a; function handleLogin(account, token) {console.log(account,token)}defineExpose({handleLogin,}); 2、父类调用子类组件 const loginFormRef ref(); <LoginForm ref"loginFormRef" />loginFormRef.value.handleLogin(…

代码随想录第38天|动态规划

1049. 最后一块石头的重量 II 参考 备注: 当物体容量也等同于价值时, 01背包问题的含义则是利用好最大的背包容量sum/2, 使得结果尽可能的接近或者小于 sum/2 等价: 尽可能的平分成相同的两堆, 其差则为结果, 比如 (abc)-d, (ac)-(bd) , 最终的结果是一堆减去另外一堆的和, 问…

Deep-LIBRA:一种用于可靠量化乳腺密度的人工智能方法,并在乳腺癌风险评估中进行了独立验证| 文献速递-深度学习自动化疾病检查

Title 题目 Deep-LIBRA: An artificial-intelligence method for robust quantification of breast density with independent validation in breast cancer risk assessment Deep-LIBRA&#xff1a;一种用于可靠量化乳腺密度的人工智能方法&#xff0c;并在乳腺癌风险评估中…

【C++11:右值引用,列表初始化】

统一列表初始化&#xff1a; 构造函数的函数名与函数体之间增加一个列表&#xff0c;用于对成员初始化 在实例化对象时&#xff0c;支持单/多参数的隐式转化&#xff0c;同时也可以省略符号&#xff0c;让代码更简洁 右值的引用 左值&#xff1a; 左值与右值的重要区别就是能…

全国产化飞腾模块BIOS下修复系统启动文件

1、背景介绍 全国产飞腾模块采用麒麟信安操作系统&#xff0c;当系统下面的grub.cfg文件被用户误操作导致无法启动时&#xff0c;可以在BIOS下通过U盘中备份的grub.cfg替换硬盘上原来的grub.cfg文件&#xff0c;从而实现启动。 2、操作步骤 首先进入BIOS命令行模式&#xff…

Meta低头,库克认错,XR回归第一性原理

图片&#xff5c;Photo by Maxim Hopman on Unsplash ©自象限原创 作者丨罗辑 2024年&#xff0c;XR的故事应该怎么讲&#xff1f; 如果从数据上看&#xff0c;这应该是个沉重的话题。 根据 IDC 报告&#xff0c;2023 年全球 VR 市场出货量下滑了 10.7%。2024 年第一…

【必看】卖惨营销

经常卖惨的人到底是什么心理&#xff1f; Berry Ni同学说&#xff1a; 吸引别人的注意力。想要得到关注。 让你降低对他的期待。 让你能够在他做好一件小事的情况下就表扬他。 控制你对他的想法认知。 ​ 浪矢心理同学说&#xff1a; 1&#xff0c;求关注。他觉得买惨有好处&…

【Excel、RStudio计算T检测的具体操作步骤】

目录 一、基础知识1.1 显著性检验1.2 等方差T检验、异方差T检验1.3 单尾p、双尾p1.3.1 检验目的不同1.3.2 用法不同1.3.3 如何选择 二、Excel2.1 统计分析工具2.1.1 添加统计分析工具2.1.2 数据分析 2.2 公式 -> 插入函数 -> T.TEST 三、RStudio 一、基础知识 参考: 1.…

Gradle学习-4 创建二进制插件工程

二进制插件工程创建有两种方式&#xff1a; 创建独立的工程&#xff0c;调试的时候&#xff0c;需要手动发布成一个二进制插件jar包&#xff0c;给其他工程里面引用&#xff0c;进行功能测试。这种方式是比较麻烦的。创建buildSrc子工程&#xff0c;它是一个大工程中的子工程&…

开源网安荣获第一新声“2024中国最佳信创安全厂商”,信创实力获认可

近日&#xff0c;由权威机构【第一新声】与【天眼查】联合发起的“2024中国最佳信创厂商系列榜单”评选中&#xff0c;开源网安以其技术创新能力和在信创领域持续投入&#xff0c;成功入选“中国最佳信创安全厂商”。 开源网安&#xff0c;作为软件安全领域创领者&#xff0c;自…

数据结构 - C/C++ - 栈

目录 结构特性 结构实现 结构容器 结构设计 顺序栈 链式栈 结构特性 栈(stack)是线性表的一种形式&#xff0c;限定仅在表的一端进行插入或者删除的操作。 栈顶 - 表中允许插入、删除的一端称为栈顶(top)&#xff0c;栈顶位置是可以发生变化的。 插入 - 进栈、入栈、压栈…

数据结构预科

在堆区申请两个长度为32的空间&#xff0c;实现两个字符串的比较【非库函数实现】 要求&#xff1a; 1> 定义函数&#xff0c;在对区申请空间&#xff0c;两个申请&#xff0c;主函数需要调用2次 2> 定义函数&#xff0c;实现字符串的输入&#xff0c;void input(char …

31 C++11

本节目标 c11简介列表初始化变量类型推导范围for循环新增加容器右值新的类功能可变参数模板 1. c11简介 在2003年标准委员会提交了一份计数勘误表&#xff08;简称TC1&#xff09;&#xff0c;使得c03这个名字已经取代了c98称为c11之前的最新的c标准名称。不过由于c03&#x…

详解归一化、标准化、正则化以及batch normalization

文章目录 what(是什么)where&#xff08;用在哪&#xff09;How&#xff08;如何用&&原理&#xff09;归一化实现方式原理示例说明 标准化实现方式原理示例说明 正则化实现方式原理作用 Batch Normalizationpytorch中的batch normalization原理BN的作用 归一化、标准化…

代理设计模式和装饰器设计模式的区别

代理设计模式: 作用:为目标(原始对象)增加功能(额外功能,拓展功能) 三种经典应用场景: 1&#xff1a;给原始对象增加额外功能(spring添加事务,Mybatis通过代理实现缓存功能等等) 2&#xff1a;远程代理&#xff08;网络通信&#xff0c;输出传输&#xff08;RPC&#xff0c;D…

【TB作品】智能台灯,ATMEGA16单片机,Proteus仿真

智能台灯 1 adc检测光强光敏电阻 显示电压 2 光强太高 也就是高于临界值 就关闭小灯 3 光强太低 也就是低于临界值 就打开小灯 3 按键修改临界值 显示 实验报告&#xff1a;基于ATMEGA16单片机的智能台灯设计与Proteus仿真 1. 实验背景 智能台灯是一种能够根据环境光强自动调…

代码随想录第40天|动态规划

完全背包 完全背包物品可以无限使用 01背包核心代码 01背包中的二维dp数组的两个for遍历可颠倒, 而一维dp数组的一定先遍历物品再遍历背包容量状态转移方程(背包容量一定为递减) 完全背包核心代码 (只在完全背包中一维dp数组嵌套顺序可颠倒, 实际题目需要确定遍历顺序) 状…

天线 有源 无源 参数

无源测试驻波比VSWR/回波损耗(Return Loss)≤2效率≥50%输入阻抗50R10%增益天线方向图3D场强图方向性 有源测试 OTA 传导测试&#xff1a;发射功率传导测试&#xff1a;接收灵敏度总辐射功率TRP(Total Radiated Power)≥发射功率减3dB总接收灵敏度TIS&#xff08;Total Isotrop…