当前位置: 首页 > news >正文

网络安全零基础培训 L1-7 Web基础和CSS渲染

文章目录

  • 1 认识CSS
    • 1.1 什么是CSS
    • 1.2 为什么使用CSS
    • 1.3 CSS的作用
  • 2 CSS书写规则
    • 2.1 行内样式
    • 2.2 内部(联)样式
    • 2.3 外部(联)样式
    • 2.4 样式的优先级
    • 2.5 选择器
      • 2.5.1 元素选择器
      • 2.5.2 类选择器
      • 2.5.3 id选择器
  • 3 CSS盒子模型
    • 3.1 盒子模型的组成
    • 3.2 盒子模型演示
    • 3.3 盒子成分的分析
    • 3.4 背景
  • 4 flex布局
    • 4.1 如何使用flex
      • 4.1.1 步骤一 创建flex容器
      • 4.1.2 步骤二 定义flex项目
    • 4.2 flex布局容器的一些属性
  • 5 案例:制定qq邮箱视图框架

1 认识CSS

1.1 什么是CSS

css是一种样式设置的规则,用于控制页面的外观样式;css全称翻译是层叠样式表
如果说HTML是网页的结构,那么css就是网页化妆师,它用于控制网页的布局、颜色、字体、间距等视觉表现,使网页内容与样式分离,从而提升开发效率和维护性。
css的主要功能:

  1. 控制网页的样式;
  2. 设置文本的字体,大小,颜色,对齐方式等;
  3. 控制元素的背景调色,背景照片,边框对齐;
  4. 调整元素的大小,内边距和外边距。

1.2 为什么使用CSS

  1. 实现界面的精确控制,让页面更精美;
  2. 实现内容与样式的分离,便于团队的开发;
  3. 实现样式复用,便于网站的后期维护。

1.3 CSS的作用

页面外观的美化,实现特定的布局和定位。
常见的css属性

字体属性作用说明
font-family指定文本的字体系列font-family: Arial,宋体;
font-size指定文本的字体大小font-size: 16px
font-weight指定文本的字体粗细normal:默认值,表示普通字体粗细。bold:表示粗体字体bolder / lighter:相对于父元素更 粗 / 细 的字体。数值100-900,400普通字体,700粗体。
text-decoration指定文本的装饰效果,如下划线、删除线等。可以使用关键字如:noneunderlineline-through来设置装饰效果。text-decoration: line-through;
文本属性含义说明代码
color颜色可以使用颜色名称、十六进制值或RGB值来指定颜色color: red;
line-height行高行之间的高度(当其值与div高度一致时,实现垂直对齐;可以结合text-align进行居中)line-height: 1.5;
text-align水平对齐取值:leftrightcenterjustifytext-align: center;

2 CSS书写规则

css的三种书写位置

  • 行内样式(写在style标签内)
  • 内部样式(直接写在head标签内)
  • 外部样式(使用外部.css文件)

2.1 行内样式

也称为嵌入样式,写在标签中,使用HTML标签style属性定义;
只对设置style属性的标签起作用。

<h1 style="在这里写css代码"></h1>

2.2 内部(联)样式

在标签下面建一个style标签 写css代码,将页面内容与表现形式进行分离 ,方便对样式进行统一管理。

 <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial
scale=1.0"><title>css书写规则</title><!-- 内部样式 --><style>/*css特有的注释*//*元素选择器,是为所有对应的标签进行设置,范围太广泛*/h2{color: rgb(255, 0, 0);font-family: kaiti;font-weight: 700;}/*class选择器(类选择器),可以为指定class名字的标签进行设置,范围会相对精准*/.name{color: aquamarine;}/*id选择器(唯一),可以为指定id名称的标签进行样式设置,范围最精确*//*他跟class的区别是id选择器是唯一的只能指定一个标签,class可以指定多个标签*/#id1{background-color: aquamarine;}</style></head><body><h1>测试样例</h1><h1 class="name">测试样例</h1><h1 class="name">测试样例</h1><h1 id="id1">测试样例</h1></body>

2.3 外部(联)样式

内联样式进行一步的抽离,方便多个html页面公用一个样式;
**用法:**使用单独的.css文件定义,然后在页面中使用link标签引入。

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial
scale=1.0"><title>css书写规则</title><!-- 外部样式,引入css文件 --><link rel="stylesheet" href="./外部连接样式.css"></head><body><h1>测试样例</h1><h1 class="name">测试样例</h1><h1 class="name">测试样例</h1><h1 id="id1">测试样例</h1></body>

此时还存在调取的外部连接样式.css文件如下:

 		/*css特有的注释*//*元素选择器,是为所有对应的标签进行设置,范围太广泛*/h2{color: rgb(255, 0, 0);font-family: kaiti;font-weight: 700;}/*class选择器(类选择器),可以为指定class名字的标签进行设置,范围会相对精准*/.name{color: aquamarine;}/*id选择器(唯一),可以为指定id名称的标签进行样式设置,范围最精确*//*他跟class的区别是id选择器是唯一的只能指定一个标签,class可以指定多个标签*/#id1{background-color: aquamarine;}

2.4 样式的优先级

就近原则:行内样式<内部样式<外联样式
注意事项:今后尽量不要对同格html进行重复样式书写
如何选择三种样式的写法:

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

2.5 选择器

css的选择器是css最基础也是最重要的一个知识点很重要,用于准确的选中元素,并赋予样式
选择器权重元素选择器<class选择器<id选择器

2.5.1 元素选择器

也称标签选择器,使用HTML标签作为选择器的名称

<!--元素选择器,是为所有对应的标签进行设置,范围太广泛--><head><style>h2{color: rgb(255, 0, 0);font-family: kaiti;font-weight: 700; <!--调节样式的代码-->
}</style></head>  
<boby><h1>内部样式</h1><h1>内部样式</h1><h1>内部样式</h1><h1>内部样式</h1>
</boby>

2.5.2 类选择器

使用自定义的名称,以.号作为前缀,然后再通过html标签class属性调用类选择器

 <head><style>/*class选择器(类选择器),可以为指定class名字的标签进行设置,范围会相对精准*/.name{color: aquamarine;  /*调节样式的代码*/}</style></head><boby><h1 class="name">内部样式</h1><h1 class="name">内部样式</h1></boby>    <!--class的名称要和在boby内输入的名称对上-->

2.5.3 id选择器

使用自定义名称,以#作为前缀,然后通过html标签id属性进行名称的匹配,id是唯一的

 <head><style>        /*id选择器(唯一),可以为指定id名称的标签进行样式设置,范围最精确*//*他跟class的区别是id选择器是唯一的只能指定一个标签,class可以指定多个标签*/#id1{background-color: aquamarine; /*调节样式代码*/}</style></head><boby><h2 id="id1">内部样式2</h2></boby><!--class可以指定多个标签,id只能指定一个-->

3 CSS盒子模型

盒子模型(box model)是css中用于描述元素布局和渲染的基本概念,它将每个html元素视为一个矩形的盒子,这个盒子包含了元素的内容,内边距,边框和外边距。(可以理解为,网页上每个可见的html元素都是一个盒子

3.1 盒子模型的组成

  • 内容区:盒子的实际内容,例如文本,图像或其他子元素;
  • 内边距区:内边距是位于内容区与边框之间的空白区域,他提供了元素内容与边距之间的间距
  • 边框区:边框是位于内容区周围的线条或边界,他用于定义元素的边界和外观
  • 外边距区:外边距是位于边框与相邻元素之间的空白区域,他提供了元素与其他元素之间的间距

这四个部分形成了一个完整的盒子,他们相互影响和叠加,决定了元素在页面中的布局和尺寸,盒子模型在网页设计和布局中起着重要的作用,它使我们能够灵活的控制元素的外观和相互之间的关系;

在css中,可以使用相关的盒子属性(如widht,height,padding,border,margin)来控制每个部分的大小,样式和间距,通过调整这些属性的值,可以对元素的布局,外观和空间分配进行精准的控制。

在这里插入图片描述

3.2 盒子模型演示

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial
scale=1.0"><title>盒子模型</title><style>#box1{/*盒子模型属性的设置*//*盒子模型是一个概念,我们可以把网页中的所有标签看作是一个个的小盒子既然是盒子的话我们就可以为他去设置一些特点,这些特点我们就叫盒子属性*/background-color: aqua; /*字体颜色的设置*/width: 500px;     /*设置宽度*/height: 500px;      /*设置高度*/padding: 80px 100px;    /*设置内边距 , 就是内容和边框之间的空白区域*/margin-top: 50px;     /*设置外边距 就是元素周围空白的区域,也可以指定上下左右的值*/margin-left: 100px;    /*top上 left左*/border-radius: 10%;   /*边框圆角*/}#box2{background-color: aquamarine;width: 200px;    /*设置密码框宽度*/height: 50px;     /*设置密码框高度*/border-radius: 20%;   /*设置密码框圆角*/}</style></head><body><!-- 包裹标签 --><div id="box1">哈哈哈哈,今天天气真好</div><input id="box2" type="text" placeholder="请输入密码">   <!--input 也可以加盒子属性的--></body>

3.3 盒子成分的分析

margin

盒子的外边距,是完全透明的,开发者只可以设置他的边距
margin包含了上下左右四条边,开发者可以单独设置每一条边的边距

  • margin-top:上边距
  • margin-bottom:下边距
  • margin-left:左边距
  • margin-right:右边距

注意:

  1. margin属性后只跟一个值同时设置四条边的边距相等
  2. margin属性跟两个值第一个值设置上下边距第二个值设置左右边距
  3. margin属性跟三个值第一个设置上边距第二个是设置左右边距第三个值设置下边距

padding

表示盒子的内边距(填充)
与外边距不同,padding不是只能完全的透明,可以设置背景颜色和图片
与margin类似,padding包含了上下左右四条边,开发者可以单独设置每一条的边距

  • padding-top:上部填充
  • padding-bottom:下部填充
  • padding-left:左部填充
  • padding-right:右部填充

border

border表示盒子的边界,他可以设置成可见的,样式多样的
border像margin和padding一样可以分别对每一条边进行设置

  • border-top:上边界
  • border-bottom:下边界
  • border-left:左边界
  • border-right:右边接
<!--以内部样式为例-->
<head><style>#box{
/*使用简写属性,同时设置四条边界,四条边界的宽度,样式和颜色*/
border: 2px solid green;/*下面的样式与上面的样式等价*/
border-top: 2px solid green;border-bottom: 2px solid green;border-left: 2px solid green;border-right: 2px solid green;}</style></head>

除了可以单独对每一条边进行样式设置之外,还可以分别对边界的宽度,样式和颜色进行设置(上边的表格有)

  • 边界的宽度border-widht
  • 边界的样式border-style
  • 边界的颜色border-color

常见的边框样式:

  • 实线边框solid
  • 虚线边框dashed
  • 点状边框dotted
  • 双实线边框double

3.4 背景

在这里插入图片描述
示例:

<!--以内部样式为例-->
<head><style>#box}{widht: 500pxheight:300pxbackground-image:url(./图片.jpg)backgroud-size:500px 300px;
/*图片不重复*/background-posittion:center;
}</style></head>

4 flex布局

2009年,W3C提出了一种新的方案-Flex布局,可以简便,完整,响应式的实现各种页面布局,目前,它已经得到了所有浏览器的支持。

何为Flex布局

弹性布局,为盒装模型提供最大的灵活性,任何一个容器都可以指定为Flex布局

4.1 如何使用flex

4.1.1 步骤一 创建flex容器

使用flex布局,首先需要创建一个flex容器,即一个元素的父级元素,在父级元素上应用display:flex样式,已将其设置为flex容器
例如:

<style>#b1{display:flex;}</style> 
<div id="a1"><div id="a101">flex项目1</div><div id="a101">flex项目2</div></div> 

4.1.2 步骤二 定义flex项目

将要放置flex容器内的元素称为flex项目,这些项目将根据flex容器的规则进行布局;
默认的情况下,flex项目水平排列,可以通过在flex容器上应用其他css属性来更改flex项目的布局方式,如flex-directionjustify-contentalign-items等。

4.2 flex布局容器的一些属性

c(默认值:row)用于定义flex项目的排列方向

可选值包括:

  • row水平方向值(默认值),从左到右排列
  • row-reverse:水平方向,从右到左排列
  • column:垂直方向,从上到下排列
  • column-reverse:垂直方向,从下到上排列

justify-content(默认值:flex-start)用于定义flex项目在主轴上的对齐方式

可选值包括:

  • flex-start:在主轴起始位置对齐
  • flex-en:在主轴末尾位置对齐
  • center:在主轴中心位置对齐o
  • space-between:在主轴上均匀分布,首个项目放在起始位置,末尾项目放在末尾位置
  • space-around:在主轴上均匀分布,项目之间和两侧均有空间
  • space-evenly:在主轴上均匀发布,包括首个项目和末尾目两侧的空间

align-items(默认值:stretch)用于定义flex项目在侧轴上的对齐方式

可选值包括:

  • stretch:默认值,如果项目未设置固定的侧轴尺寸,则会拉伸以填满容器
  • flex-start:在侧轴起始位置对齐
  • flex-end:在侧轴末尾位置对齐
  • center:在侧轴中心位置对齐
  • baseline:以基线对齐,适用于文本等

5 案例:制定qq邮箱视图框架

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#body{padding: 0px;margin: 0px;}#a1{width: 100%;height: 100vh;background-color: aqua;display: flex;flex-direction: column;}#b1{flex: 5;background-color: brown;display: flex;}#c1{flex: 85;background-color: blanchedalmond;justify-content: center;align-items: center;display: flex;}#d1{flex: 10;background-color: blue;display: flex;}#b01{flex: 10;background-color: aqua;}#b02{flex: 50;background-color: white;}#b03{flex: 2;background-color: aqua;}#b04{flex: 2;background-color: rgb(10, 146, 26);}#b05{flex: 2;background-color: rgb(150, 4, 111);}#b06{flex: 2;background-color: rgb(223, 216, 17);}#c2{background-color: black;width: 800px;height: 500px;display: flex;}#c01{flex: 2;background-color: aquamarine;}#c02{flex: 1;background-color: white;display: flex;justify-content: center;align-items: center;}#c002{background-color: white;display: flex;flex-direction: column;justify-content: center;align-items: center;}#d01{flex: 2;background-color: white;}#d02{flex: 6;background-color: aqua;}#d03{flex: 2;background-color: white;}#c003{flex: 1;padding-bottom: 80px;}#c004{flex: 1;}</style>
</head>
<body><div><div id="a1"><div id="b1"><div id="b01">自愿加班征集网</div><div id="b02"></div><div id="b03">用户</div><div id="b04">语言</div><div id="b05">介绍</div><div id="b06">更多</div></div><div id="c1"><div id="c2"><div id="c01"><img src="https://haowallpaper.com/link/common/file/previewFileImg/16614696358169984" width="532" height="500"></div><div id="c02"><div id="c002"><div id="c003"><img src="https://haowallpaper.com/link/common/file/previewFileImg/16449967419411840" width="80" height="80"><br></div><div id="c004"><input type="text" placeholder="请输入账号"><br><input type="password" placeholder="请输入密码"><br><input type="button" value="注册"><input type="button" value="登录"></div></div></div></div></div><div id="d1"><div id="d01"></div><div id="d02"><div><a href="https://www.csdn.com">我的博客主页--点击跳转</a><br>家里蹲有限公司,版权归公司所有!</div></div><div id="d03"></div></div></div></div>
</body>
</html>

本文内容源于好课优选教育网络安全培训后的笔记整理!

相关文章:

  • JVM考古现场(二十五):逆熵者·时间晶体的永恒之战(进阶篇)
  • 【Project】基于spark-App端口懂车帝数据采集与可视化
  • Vue 3中如何封装API请求:提升开发效率的最佳实践
  • Geek强大的电脑卸载软件工具,免费下载
  • Winform实现条码打印
  • Vue生命周期详细解析
  • AI语音助手自定义角色百度大模型 【全新AI开发套件掌上AI+4w字教程+零基础上手】
  • Android SDK 下载及配置 --- app笔记
  • 【分布式锁通关指南 09】源码剖析redisson之公平锁的实现
  • [KVM] KVM挂起状态恢复失败与KVM存储池迁移
  • Spring JDBC 的开发步骤(注解方式)
  • 私有知识库 Coco AI 实战(三):摄入 Elasticsearch 官方文档
  • Go语言学习笔记(一)
  • 【论文阅读】Dual-branch Cross-Patch Attention Learning for Group Affect Recognition
  • 代理模式:控制对象访问的中间层设计
  • 论文阅读 | 大模型工具调用控制的策略优化
  • Spark与Hadoop之间的联系与区别
  • 使用nodeJs的express+axios+cors做代理
  • 配置MambaIRv2: Attentive State Space Restoration的环境
  • Sql刷题日志(day5)
  • 龙头券商哪家强:中信去年营收领跑,中金净利下滑
  • 新增1839个!2024年度本科专业备案和审批结果,公布
  • 普京签署法律,诋毁俄军将面临最高7年监禁
  • 美团回应京东“二选一”指控:没有任何理由对某平台进行任何限制
  • 人均300+的日料,是后厨拆开的预制料理包
  • 专访|松重丰:“美食家”不孤独,他在自由地吃饭