HTML和CSS的基础-前端扫盲

news2025/2/25 2:58:23

想要写出一个网页,就需要学习前端开发(写网页代码)和后端开发(服务器代码)。

对于前端的要求,我们不需要了解很深,仅仅需要做到扫盲的程度就可以了。

写前端,主要用到的有:HTML  CSS  JS

前端开发,主要使用的开发环境主要有两个:

1.JetBrains系列 如IDEA专业版,和JB提供的WebStorm。(收费)

2.VSCode (免费)

除了上面两个之外,还有很多其他的选项,如dw,sublime text,vim等等。

我们的学习过程中,就用VSCode编写代码,通过浏览器来查看效果。在这里浏览器就相当是JVM这样的角色。

目录

HTML

使用VSCode

HTML的基本语法结构

HTML标签

标题标签 h1-h6

段落标签 p

换行标签 br

格式化标签

图片标签 img

超链接标签 a

表格标签

列表标签

form标签

input标签

1.单行文本框​编辑

2.输入密码用的单行文本框

3.单选框

4.多选框

5.按钮

6.提交按钮

select标签

div span 无语义标签

CSS

语法规则

引入方式

选择器

1.标签选择器

2.类选择器

3.ID选择器

4.后代选择器

5.子选择器

6.并集选择器

7.伪类选择器

字体属性

设置字体家族、大小、粗细、文字倾斜、文字颜色

文本属性

文本对齐

文本装饰

文本缩进

行高

背景属性

背景颜色

背景图片

背景平铺

背景位置

背景尺寸

CSS盒子模型

边框 border

内边距 padding

外边距 margin

圆角矩形

基本效果

生成圆形

生成圆角矩形

元素的显示模式

布局


HTML

使用VSCode

VSCode和IDEA相比,更加简单。VSCode没有项目这个概念,都是使用目录来组织的。我们需要选择一个当前存放代码的目录,打开这个目录就相当于打开了项目目录。

通过ctrl + s保存后,在文件管理器中显示,然后通过浏览器的方式打开。

HTML的基本语法结构

1.html代码是通过标签来组织的。

形如<html></html>用尖括号组织的,成对出现的这个东西就是"标签"(tag),也可以叫做"元素"(element)。

2.一个标签通常是成对出现的。注意,还有一些标签可以只有一个开始标签(单标签)

<html>开始标签

</html>结束标签

这俩之间就是标签的内容。

3.标签是可以嵌套的。

一个标签的内容可以是其他一个或者多个标签。此时,这些标签构成了一个“树形结构”。

4.可以在开始标签中给标签赋予属性(Attribute)

属性相当于是键值对,可以有一个或者多个。

接下来我们要了解到就是HTML中都支持哪一些标签,每个标签是干什么的,每个标签都有哪些关键属性。

HTML标签

html 这是一个html文件的最顶层标签。标志着这是一个html文件。

head 存放了这个页面的一些属性,包括元数据,meta data等等。

body 存放了这个界面包含哪一内容。

emmet快捷键

刚刚写的hello world 是逐个单词敲的,我们还有更快地办法。当VSCode识别到这是一个html文件后,输入!,按下tab,此时就能生成一个基本的页面,只需要编辑body的内容即可。这个功能叫做emmet快捷键。

注释标签

首先要知道,代码的注释、HTML的注释和一般语言的注释差别是很大的。

HTML中的注释通过<!--  -->来完成。

注释的代码是不会在网页中显示的,但是如果通过右键查看网页源代码,此时是可以看到注释的。

所以说,注释不能随便乱写,因为所有注释都会可以被用户看到。

VSCode中,使用ctrl + / 快速注释代码。

标题标签 h1-h6

h1是最大最粗的,h6是最小最细的。

并且要注意,每个标题标签都是独占一行的,这个独占一行和代码的编写是无关的。

在html中标签是否换行,和代码的编写是无关的,只和标签自身有关。

段落标签 p

每一个段落之间,不仅有换行,还有一个明显的段落间距。

Lorem可以自动帮我们生成一旦随机的文本,帮我们调试显示效果。

换行标签 br

格式化标签

<strong>   <b> 变粗

<em>   <i>   倾斜

<del>   <s>   删除线

<ins>   <u>   下划线

这些标签都是不独占一行的

图片标签 img

img有一个核心属性:src 这是必填项。

src描述了图片的路径,可以是一个本地的路径,也可以是一个相同的路径,还可以是网络路径。

同时img还有一些别的属性。

alt属性:如果在图片没有加载出来的时候,就会显示alt对应的文本。目前网络环境出现这种情况都很少了,但是以前网络环境慢的时候,会经常出现图片的位置显示个文字。

title属性:鼠标选停在图片上,会给出一个提示。

width/height属性:描述图的尺寸。单位是px(像素)

超链接标签 a

 href 这是“链接”link,跳转到的页面可以是在当前网站之外的。

target:一般都是写作target="_blank",这个时候就可以打开一个新的标签页而不会替换掉原有的页面。

表格标签

table 表示整个单元格

tr 表示一行

td 表示一个单元格

th 表示表头中的一个单元格

列表标签

有序列表 ol (ordered list)

无序列表 ul(unordered list)

列表项     li (list item)

form标签

使用form进行前后端交互。把页面上用户进行的操作/输入提交到服务器上。

input标签

input标签有很多种形态,能够表现成各种用户用来输入的组件。

1.单行文本框

2.输入密码用的单行文本框

3.单选框

对于单选框,需要加属性,在这里就是name属性

4.多选框

也可以使用checked来设置默认选中的选项

5.按钮

对于按钮点击之后要干的事,需要通过js来配合。

6.提交按钮

type="submit"\外表和button差不多,但是会触发form和服务器的交互

7.文件选择框

select标签

可以做到下拉菜单。

div span 无语义标签

前面的标签都是有特定含义的,这两个标签没有特定含义,可以用在各种场景。甚至在一个页面中,全用div也可以~但是一般不建议这么做,表示一个内容优先考虑语义更贴切的标签。

div默认独占一行,span默认是不独占一行的。

到这里,HTML的一些基本的标签就介绍完了,推荐一个HTML的相关文档:mdn。

mdnicon-default.png?t=N7T8https://developer.mozilla.org/zh-CN/docs/Web/HTML

这个文档可以看做HTML的官方文档~

接下来我们来学习CSS。

CSS

CSS是层叠样式表 (Cascading Style Sheets)。

CSS能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结构分离。

语法规则

选择器 + {一条/N条声明}

简单地说,就是选中一个元素,然后再决定修改什么。

括号里面的CSS属性,是可以写一个或者多个。

声明的属性是键值对。键和值之间使用:分割,键值对之间使用;分割。

每个键值对可以独占一行,也可以不独占。

引入方式

有三种方式引入CSS:

1.内部样式

使用style标签,直接把CSS写到html文件中。此时的style标签可以放到任何位置,一般建议放到head标签中。和上面的例子一样。

2.内敛样式

使用style属性,针对指定的元素设置样式。此时不需要写选择器,直接写属性键值对,这个时候样式只是针对当前元素生效。

同时要注意,这种写法优先级较高, 会覆盖其他的样式。

3.外部样式

把CSS代码单独作为一个CSS文件,再通过link属性,让html引入该CSS文件。

实际开发中,一般都是通过外部样式来写CSS,让html和css分开,相互不影响。

当前学习阶段,主要以内部样式为主。

选择器

1.标签选择器

在  {  前面写标签名字,会选中当前页面中所有指定的标签。

这样写就会让所有的p标签都变成黄色,但是此时如果再来了一个div标签就不会生效。

2.类选择器

相对于标签选择器来说,这是更好的选择。可以手动创造CSS类,手动指定哪一些元素来应用这个类。

定义类,需要使用 . 开头,引用这个类的时候,通过class属性 = "类名"即可。

同时,一个元素还可以引用多个类

因为CSS中文名叫做层叠样式表,也就是说一个元素是可以被应用多组样式的,这一些样式就好像一层一层叠加上去的。

3.ID选择器

html页面中的每个元素,都是可以设置一个唯一的ID的,作为元素的身份标识。

给元素安排ID之后,就可以通过ID来选中对应的元素。

ID选择器只能针对唯一的元素生效,因为一个页面里只能有唯一的ID。

4.后代选择器

把多个简单的基础选择器组合一下,可以是标签、类、ID选择器的任意组合。

含义就是:先找页面中所有的ul,然后在这些ul里再找所有的li。

5.子选择器

也是把多个简单的基础选择器组合,不过只是找匹配的子元素,不找孙子元素之类的~

6.并集选择器

多组选择器,应用了同样的格式。

7.伪类选择器

前面的选择器是选中某个元素,伪类选择器远中某个选中某个元素的某个特定状态。

:hover 鼠标悬停时的状态,鼠标放上去就变红了

:active 鼠标按下时候的状态,鼠标点下去就变红了

字体属性

设置字体家族、大小、粗细、文字倾斜、文字颜色

font-family:当前采用哪种字体来显示

font-size:当前字体采用的大小

font-weight:可以用单词设置,也可以用数字设置

font-style:设置当前文字的倾斜

color:设置当前字体的颜色,其中颜色的表示分为R G B三个分量,范围0-255或者是0-0xFF

如果每个分量的两个十六进制数字都相同,那么就可以把6位十六进制缩写成3位十六进制。

#ff0000可以缩写为#f00

文本属性

文本对齐

通过text-align属性来设置对齐方式,比如靠左、靠右、居中~

文本装饰

text-decroation:

underline下划线

none 什么都没有,可以给a标签去掉下划线

overline 上划线(不常用)

line-through 删除线(不常用)

文本缩进

每个段落首行缩进,用text-indent来表示,可以运用的单位是em。em是以文字尺寸为基础来设置的。假设文字大小就是40px,那么2em就是80pm。

并且文本缩进的值可以是负数,也就是向左缩进。

行高

行高=文字高度 + 行间距,指的是上下文本行之间的基线距离

内容区:顶线和底线包括的区域,即深灰色区域

注意:

1.行高=上边距+下边距+字体大小

 上下边距是相等的,例如此处的行高是100px,字体大小是30px,那么上下边距就分别是35px。

2.行高也可以取 normal 等值。 这个取决于浏览器的实现.,例如chrome 上 normal 为 21 px。

3.行高等于元素高度, 就可以实现文字居中对齐

背景属性

背景颜色

background-color:[指定颜色];

背景图片

background-image: url(...);

和img类似,但是可以实现很多img实现不了的功能。

背景平铺

当引入了背景图片之后,默认情况下,图片是平铺的,如果不想使用平铺,可以使用background-repeat:none;来禁止平铺。

repeat: 平铺

no-repeat: 不平铺

repeat-x: 水平平铺

repeat-y: 垂直平铺

背景位置

禁止平铺之后,图片出现在左上角,如果我们想让图片居中,可以用

background-position:center center;

也可以用x、y来代表距离左边和距离上面的距离:

background-position: x y;

背景尺寸

background-size: length/percentage/cover(拓展)/contain(缩放);

也可以填具体的数值,如40px,也可以填百分比。

CSS盒子模型

在盒子模型中,分为了内容、内边距、边框和外边距。

边框 border

border属性,直接设置设置了四个方向:border-top\border-bottom\border-right\border-left

设置边框的三个方面:

1.边框的粗细

2.边框的颜色

3.边框的风格(包括实线、虚线和其他的线)

同时,边框默认会撑大盒子。设置的200×100像素,但是最终的结果却是209×109像素

很多时候不希望撑大盒子,很可能会影响其他的元素,所以就有一个专门的属性防止盒子被撑大:

box-sizing:border-box

内边距 padding

padding:10px   表示四个方向都是10px边距

padding:10px 20px   表示上下边距是10px,左右边距是20px

padding:10px 20px 30px 40px   上边距、右边距、下边距、左边距的顺序设置

外边距 margin

margin的写法和padding差不多,也是可以分成四个方向来设置。

特殊用法:把margin-left和margin-right设置程auto,让浏览器自动调节,此时该元素就能够在父元素内部居中放置。

圆角矩形

通过 border-radius 使边框带圆角效果。

基本效果

border-radius: length;

其中,length是内切圆的半径,length越大,弧线越强烈。

生成圆形

border-radius 的值为正方形宽度的一半即可。

生成圆角矩形

让 border-radius 的值为矩形高度的一半即可。

元素的显示模式

display:block;  块级元素

display:inline;  行内元素

任何一个html标签的显示模式都是可以设置的。

关于块级元素和行内元素的区别:

1.块级元素会独占一行,行内元素不会

2.块级元素高度、宽度、内外边距都是可以设置的,行内元素的高度宽度行内高无效,内边距有效,外边距有时有效有时无效。

3.块级元素默认宽度是和父元素一样宽,行内元素默认宽度和内容一样宽。

块级元素比较正常,行内元素不确定性比较多,所以一般需要的话都是把行内元素转成块级元素。

布局

实现html的页面布局比较复杂,有四种方式来解决:

1.基于表格的布局方式

2.基于浮动的布局方式,主要是解决“水平方向排列”的问题

3.弹性布局,也是解决“水平方向排列”的问题

4.网格布局,二维布局,相当于更高级版本的“表格布局”

行内元素虽然是在水平方向上排列的,但是不适合进行水平布局。因为尺寸边框都不太可控。所以使用弹性布局是更合适的。

1.开启弹性布局

display flex;

要给水平排列的元素的父元素设置flex,此时弹性容器里面的元素,则不再是“块级”“行内元素”,而是成为了弹性元素,遵守弹性元素布局。也就是说把一个行内元素转化成了遵守弹性布局的元素。

2.设置这些元素的水平方向的排列方式

justify-content:space-between;

3.设置元素垂直方向的排列方式

align-items

到目前为止,结合前面的html和css的样式属性,就可以实现出很多的页面效果了~

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

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

相关文章

大厂面试题-网络四元组

四元组&#xff0c;简单理解就是在TCP协议中&#xff0c;去确定一个客户端连接的组成要素&#xff0c;它包括源 IP地址、目标IP地址、源端口号、目标端口号。 正常情况下&#xff0c;我们对于网络通信的认识可能是这样(如图)。 服务端通过Server Socket建立一个对指定端口号…

WebDAV之π-Disk派盘 + 记得倒数日

推荐一款帮你记录一生中重要日子的倒计时App记得倒数日,帮您记录纪念日、生日、倒数日、正数日、传统节日、倒数拾光等,成为你生活小帮手,及时提醒你日子的到来,还支持连接葫芦儿派盘服务。 【记得倒数日特色】 1.一款实用的生活工具,记得日子致力于做优秀的倒数日。 2.结…

Python笔记——pyChram连接linux子系统,使用linux下的Python进行编译

Python笔记——pyChram连接linux子系统&#xff0c;使用linux下的Python进行编译 Linux子系统安装与配置安装前准备安装Linux子系统安装Python3.8配置pyCharm 最近要跑的实验里&#xff0c;python有个机器学习的库windows环境下是没有的&#xff0c;在linux环境下有。虚拟机又不…

C#编程中字符串公式的计算

在一个程序开发当中&#xff0c;有很多涉及到公式的定义与计算&#xff0c;在用户给定的文档中&#xff0c;公式采用字符串形式定义&#xff0c;包含了一些变量名和各种运算符号&#xff0c;程序需要先进行字符变量的值替换后再进行计算&#xff0c;取得结果后再进行后续的操作…

【EI会议征稿】第七届先进算法与控制工程国际学术会议(ICAACE 2024)

第七届先进算法与控制工程国际学术会议&#xff08;ICAACE 2024&#xff09; 2024 7th International Conference on Advanced Algorithms and Control Engineering 第七届先进算法与控制工程国际学术会议&#xff08;ICAACE 2024&#xff09;定于2024年1月26-28日在中国上海…

CPLEX获取模型的解池中的解方案

文章目录 1、前序2、解池中的解方案获取3、CPLEX求解模型的时间THE END 1、前序 \qquad CPLEX求解模型CAPI继续解读。最近在进行Bender decompostion的实验时&#xff0c;需要获取到CPLEX求解的所有的解方案信息&#xff0c;所以又头大翻了一通“gou pi不通”的CPLEX API官方文…

DDACO

算法 alternative set包括备用路径和禁忌表&#xff0c;roulette体现所占比例越大被选中概率越高的思想。在图2中&#xff0c;节点表示与图1中的边相同的路径&#xff0c;边表示邻接关系&#xff08;AND关系&#xff09; 所有的帕累托最优解构成帕累托最优解集 作者未提供代码…

数据通信——应用层(DHCP的原理与配置)

引言 假如我们的网络中有N台设备&#xff0c;它们都要设置IP地址&#xff0c;如果人工去一个个配置不仅不方便管理还很麻烦。因此我们用DHCP来自动分配地址。 一&#xff0c;系统的启动流程 不仅是计算机、很多网络设备的启动流程如下&#xff1a; 设备上电后&#xff0c;硬件…

Vue 插槽 组件插入不固定内容

定义好一个组件&#xff0c;如果想插入图片或视频这非常不好的控制应该显示什么&#xff0c;这个时候可以使用插槽插入自定义内容 默认插槽 <Login><template><h1>我是插入的内容</h1></template></Login >组件 <slot></slot>…

正则表达式续篇

位置锚定&#xff1a; ^:行首锚定&#xff0c;表示以什么为开头 例如&#xff1a; $:行尾锚定&#xff0c;表示以什么为结尾 例如&#xff1a; ^&#xff1a;匹配的是空行 例如&#xff1a; ^root$&#xff1a;匹配整行&#xff0c;而且整行只能有这一个字符串 实验&#x…

SpringBoot----自定义Start(自定义依赖)

一&#xff0c;为什么要定义Start 向阿里云OSS如果我们要引入的话很麻烦&#xff0c;所以我们可以自定义一些组件&#xff0c; 然后我们只需要在pom文件中引入对应的坐标就可以 二&#xff0c;怎么定义&#xff08;以阿里云OSS为例&#xff09; 1&#xff0c; 定义两个组件模块…

HarmonyOS数据管理与应用数据持久化(一)

一. 数据管理概述 功能介绍 数据管理为开发者提供数据存储、数据管理能力&#xff0c;比如联系人应用数据可以保存到数据库中&#xff0c;提供数据库的安全、可靠等管理机制。 数据存储&#xff1a;提供通用数据持久化能力&#xff0c;根据数据特点&#xff0c;分为用户首选项、…

AttributeError: partially initialized module ‘pandas‘ has no attribute ‘core‘

在使用jupyter notebook学习动手学深度学习时&#xff0c;出现以下错误&#xff1a; %matplotlib inline import math import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2lbatch_size, num_steps 32, 35 train_iter, voca…

【MySQL数据库】 二

本文主要介绍了数据库操作的操作流程 , 以及数据库和数据表的基本操作 . 一.数据库操作工作流程 1.用户在客户端输入SQL 2.客户端把SQL通过网络发送给服务器 3.服务器会执行这个SQL&#xff0c;把结果返回给客户端 4.客户端收到结果显示到界面上 二.数据库的操作 1.创建数…

C语言实现输入一个表示星期几的数,然后输出相应的英文单词,要求使用指针数组实现

完整代码&#xff1a; // 输入一个表示星期几的数&#xff0c;然后输出相应的英文单词&#xff0c;要求使用指针数组实现 #include<stdio.h>//指针数组就是数组中每个元素都是指针 int main(){//初始化七个字符常量&#xff0c;代表星期几,const修饰表示这是字符串常量&…

java--方法重载

1.方法重载 一个类中&#xff0c;出现多个方法的名称相同&#xff0c;但是他们的形参列表是不同的&#xff0c;那么这些方法就称为方法重载了。 2.方法重载的注意事项 ①一个类中&#xff0c;只要一些方法的名称相同、形参列表不同&#xff0c;那么他们就是方法重载了&#…

深入大模型与ChatGPT

关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、大模型原理 1.Transformer (1)求知之路&#xff1a;LLM 学到了什么知识 LLM 从海量自由文本中学习了大量知识&#xff0c;如果把这些知识做粗略分类的话&#xff0c;…

抖音协议最新版

主页信息、主页视频数据、发布作品、发布图文、验证可靠、验证点选、扫码登录协议、视频点赞、视频举报、视频详情解析(获赞、评论数、收藏数、无水印地址等)、视频评论、视频评论信息、视频评论点赞、用户关注、用户举报、用户资料、用户更改资料、用户粉丝和关注的用户详情、…

41 深度学习(五):图片增强|Transfer Learning|VGG|resnet50(fine-tune)|InceptionNet

文章目录 图片增强为什么要使用图片增强具体方式.flow_from_directory(directory)flow_from_dataframe 迁移学习&#xff08;Transfer Learning&#xff09;AlexNetVGGresnet50代码学习关键的源码分析 InceptionNet 图片增强 为什么要使用图片增强 数据增强是一种常用的神经网…

如何构建用于Skydel GNSS模拟仿真的SNMP代理方式?

使用Skydel API构建测试方案 凭借其现代、强大且直观的API&#xff0c;德思特Safran GNSS模拟引擎Skydel免费提供了Python、C#、C和Labview的开源客户端库&#xff0c;它具有600多条命令&#xff0c;并且有完善的文档与记录。 随着Skydel软件更新添加新功能&#xff0c;API得…