《智慧的网络爬虫》— 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伪类选择器:选择获得焦点的元素,一般是表单元素,如<input>类。
<!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 为这四个部分提供了一系列相关属性,通过对这些属性的设置可以丰富盒子的表现效果。

box-model.png

盒子的组成

  • 外边距: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:右边距

margin.png

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>
目录
相关文章
|
1月前
|
机器学习/深度学习 存储 自然语言处理
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
深度学习入门:循环神经网络------RNN概述,词嵌入层,循环网络层及案例实践!(万字详解!)
|
1月前
|
机器学习/深度学习 PyTorch API
深度学习入门:卷积神经网络 | CNN概述,图像基础知识,卷积层,池化层(超详解!!!)
深度学习入门:卷积神经网络 | CNN概述,图像基础知识,卷积层,池化层(超详解!!!)
|
3月前
|
存储 网络协议 安全
|
3月前
|
数据采集 移动开发 Python
六:《智慧的网络爬虫》— 正则表达式概述
【8月更文挑战第7天】本文介绍了正则表达式的基本概念、用途,如表单验证和爬虫,以及Python中re模块的使用,包括match(),match()函数、元字符、预定义字符集、重复匹配、位置匹配、非贪婪模式和re模块的常用方法如compile(),search(),findall(),split(),sub()等。
73 1
六:《智慧的网络爬虫》— 正则表达式概述
|
2月前
|
Linux 调度 Docker
容器网络概述
【9月更文挑战第9天】容器技术利用如命名空间(namespace)和控制组(cgroup)等技术创建隔离环境,实现资源限制与独立运行。命名空间避免命名冲突,cgroup则能对CPU、内存等资源进行限制。容器状态可通过镜像保存并标准化,确保在任何环境中都能复现相同状态。
|
3月前
|
存储 NoSQL MongoDB
八:《智慧的网络爬虫》— MongoDB概述
【8月更文挑战第14天】本篇文章简单介绍了MongoDB的下载和安装以;其基本的操作语法,并附上每个语法的代码示例,为后续的爬虫学习打下基础
47 0
八:《智慧的网络爬虫》— MongoDB概述
|
3月前
|
SQL 数据采集 关系型数据库
七:《智慧的网络爬虫》— MySQL概述
【8月更文挑战第11天】本篇文章详细的介绍了MySQL数据库的安装与使用;并讲述了MySQL的基本操作及其应用语法
50 0
七:《智慧的网络爬虫》— MySQL概述
|
3月前
|
Linux 调度 Docker
容器网络概述
【8月更文挑战第7天】容器就是 Container,而 Container 的另一个意思是集装箱。其实容器的思想就是要变成软件交付的集装箱。集装箱的特点,一是打包,二是标准。
|
3月前
|
存储 运维 监控
|
5月前
|
数据采集 移动开发 前端开发
《智慧的网络爬虫》— HTML概述
网页是构成网站的基本元素,它是一个包含HTML标签的纯文本文件,通常是由图片;链接;视频;声音;文字等元素组成。通常我们所看到的网页,常以 .htm 或 .html 后缀结尾的文件,因此将其俗称为HTML文件。HTML;CSS;JS是学习爬虫的基础,是必须要了解的,此篇文章我讲述了HTML5对于爬虫所要必备的基础知识
44 1
《智慧的网络爬虫》—  HTML概述