html代码是由一个个标签构成的
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
head>
<body>
<input class="content" type="text">
body>
html>
从1级标题到6级标题,数字越大字体越小
<h1>1h1>
<h2>2h2>
<h3>3h3>
<h4>4h4>
<h5>5h5>
<h6>6h6>
把一段长文本放到html中并不会分成段落,此时就要用到标签
<p>
前端开发是创建WEB页面或APP等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互
p>
注意:
<p>
前端开发是创建WEB页面或APP等前端界面呈现给用 户的过程,<br/>
通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互
p>
<strong>strong 加粗strong>
<b>b 加粗b>
<em>倾斜em>
<i>倾斜i>
<del>删除线del>
<s>删除线s>
<ins>下划线ins>
<u>下划线u>
img标签必须带有src属性,表示图片的路径
<img src="img/test.jpg">
img 标签的其他属性
注意:
<a href="https://www.baidu.com" target="_blank">点击跳转百度a>
链接的几种形式
跳转内部页面
<a href="index.html">点我跳转到 login.htmla>
<a href="login.html">点我跳转到 index.htmla>
空链接: 使用 # 在 href 中占位
<a href="#">空链接a>
下载链接: href 对应的路径是一个文件. (可以使用 zip 文件)
<a href="java.zip">下载文件a>
网页元素链接: 可以给图片等任何元素添加链接(把元素放到 a 标签中 )
<a href="https://www.baidu.com" target="_blank">
<img src="img/sexm.png" alt="">
a>
table 包含 tr , tr 包含 td 或者 th
表格标签有一些属性, 可以用于设置大小边框等. 但是一般使用 CSS 方式来设置.
这些属性都要放到 table 标签中.
align 是表格相对于周围元素的对齐方式. align=“center” (不是内部元素的对齐方式)
border 表示边框. 1 表示有边框(数字越大, 边框越粗), “” 表示没边框.
cellpadding: 内容距离边框的距离, 默认 1 像素
cellspacing: 单元格之间的距离. 默认为 2 像素
width / height: 设置尺寸.
注意, 这几个属性, vscode 都提示不出来.
<table align="center" border="1" cellpadding="20" cellspacing="0" width="500"
height="500">
<tr>
<td>姓名td>
<td>性别td>
<td>年龄td>
tr>
<tr>
<td>张三td>
<td>男td>
<td>10td>
tr>
<tr>
<td>李四td>
<td>女td>
<td>11td>
tr>
table>
合并单元格
步骤
主要使用来布局的. 整齐好看.
<h3>无序列表h3>
<ul>
<li>1li>
<li>2li>
<li>3li>
ul>
<h3>有序列表h3>
<ol>
<li>oneli>
<li>towli>
<li>threeli>
ol>
<h3>自定义列表h3>
<dl>
<dt>第一级dt>
<dd>testdd>
<dd>testdd>
<dd>testdd>
dl>
表单是提交用户输入信息的关键
表单分成两个部分
标签
标签form标签
<form action="test.html">
<input type="text" name="username">
<input type="submit" value="提交">
form>
点击提交按钮后就会尝试给服务器发送
各种输入控件, 单行文本框, 按钮, 单选框, 复选框.
1.文本框
<input type="text">
2.密码框
<input type="password">
3.单选框
**单选框之间必须具备相同的 name 属性, 才能实现 多选一 效果 **
<input type="radio" name="sex">男
<input type="radio" name="sex">女
4.复选框
<input type="checkbox"> 吃饭 <input type="checkbox"> 睡觉 <input type="checkbox">
打游戏
5.普通按钮
<input type="button" value="按钮">
6.提交按钮
<form action="test.html">
<input type="text" name="username">
<input type="submit" value="提交">
form>
7.清空按钮
<form action="test.html">
<input type="text" name="username">
<input type="submit" value="提交">
<input type="reset" value="清空">
form>
搭配 input 使用. 点击 label 也能选中对应的单选/复选框, 能够提升用户体验
<input type="radio" name="sex" id="sexm"><label for="sexm"><img src="img/sexm.png" width="15" height="15">男label>
<input type="radio" name="sex" id="sexw"><label for="sexw"><img src="img/sexw.png" width="15" height="15">女label>
下拉菜单
<select name="" id="">
<option value="">--请选择出生年份--option>
<option value="">1995option>
<option value="">1996option>
<option value="">1997option>
<option value="">1998option>
<option value="">1999option>
<option value="">2000option>
<option value="">2001option>
<option value="">2002option>
<option value="">2003opt1ion>
select>
<textarea rows="3" cols="50">
textarea>
div 标签, division 的缩写, 含义是 分割
span 标签, 含义是跨度
就是两个盒子. 用于网页布局
<div>
<span>hellospan>
<span>hellospan>
<span>hellospan>
div>
<div>
<span>hellospan>
<span>hellospan>
<span>hellospan>
div>
<;
>;
&;
选择器+{多条样式声明}
/*清楚默认样式*/
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
通过 style 属性, 来指定某个标签的样式.
只适合于写简单样式. 只针对某个标签生效
缺点: 不能写太复杂的样式.
这种写法优先级较高, 会覆盖其他的样式
<div style="color: red">
<span>hellospan>
<span>hellospan>
<span>hellospan>
div>
写在 style 标签中. 嵌入到 html 内部.
理论上来说 style 放到 html 的哪里都行. 但是一般都是放到 head 标签中
优点: 这样做能够让样式和页面结构分离.
缺点: 分离的还不够彻底. 尤其是 css 内容多的时候
最常用的一种方式
1.先创建一个CSS文件
2.通过link标签引入CSS
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>外部样式title>
<link rel="stylesheet" href="test.css">
head>
优点: 样式和结构彻底分离了.
缺点: 受到浏览器缓存影响, 修改之后 不一定 立刻生效
关于缓存:
这是计算机中一种常见的提升性能的技术手段.
网页依赖的资源(图片/CSS/JS等)通常是从服务器上获取的. 如果频繁访问该网站, 那么这些外部资
源就没必要反复从服务器获取. 就可以使用缓存先存起来(就是存在本地磁盘上了). 从而提高访问效
率.
可以通过 ctrl + F5 强制刷新页面, 强制浏览器重新获取 css 文件
特点:
1.能快速为同一类型的标签都选择出来.
2.但是不能差异化选择
<style>
p {
color: red;
}
div {
color: green;
}
style>
<p>
前端开发是创建WEB页面或APP等前端界面呈现给用 户的过程,<br/>
通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互
p>
<div>
<span>hellospan>
<span>hellospan>
<span>hellospan>
div>
特点:
1.差异化表示不同的标签
2.可以让多个标签的都使用同一个标签
语法:
1.类名用 . 开头的
2.下方的标签使用 class 属性来调用.
3.一个类可以被多个标签使用, 一个标签也能使用多个类(多个类名要使用空格分割, 这种做法可以让代码更好复用)
4.如果是长的类名, 可以使用 - 分割.
5.不要使用纯数字, 或者中文, 以及标签名来命名类名
<style>
.box {
width: 200px;
height: 150px;
}
.red {
background-color: red;
}
.green {
background-color: green;
}
style>
<div class="box red">div>
<div class="box green">div>
<div class="box red">div>
1.CSS 中使用 # 开头表示 id 选择器
2.id 选择器的值和 html 中某个元素的 id 值相同
3.id 是唯一的, 不能被多个标签使用 (是和 类选择器 最大的区别)
#nav {
background-color: red;
color: white;
text-align: center;
height: 50px;
line-height: 50px;
font-size: 25px;
}
<body>
<div id="main">
<div id="nav">我是导航栏div>
<div id="body">
<div class="left">我是左边栏div>
<div class="content">我是内容区域div>
<div class="right">我是右边栏div>
div>
div>
body>
使用*表示选取所有标签
/*清楚默认样式*/
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
元素1 元素2 {样式声明}
#main .two {
width: 100px;
}
#main .one {
color: pink;
}
"main">
"one">
hello
"two">
test
和后代选择器类似, 但是**只能选择子标签 **
元素1>元素2 { 样式声明 }
#main>.two {
width: 100px;
}
<div id="main">
<div>
<div class="two">
hello
div>
div>
<div class="two">
test
div>
div>
用于选择多组标签. (集体声明)
元素1, 元素2 { 样式声明 }
p,div {
color: red;
}
<div id="main">
<div>
<div class="two">
hello
div>
div>
<div class="two">
test
div>
div>
<p>
前端开发是创建WEB页面或APP等前端界面呈现给用 户的过程,<br/>
通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互
p>
1.链接伪类选择器
"#">测试
2.force
伪类选择器
选取获取焦点的 input 元素
此时选中文本框,背景就会变色,字体也会变色
input:focus {
color: red;
background-color: gainsboro;
}
<input type="text">
body {
font-family: '微软雅黑';
font-family: 'Microsoft YaHei';
}
p {
font-size: 20px;
}
p {
font-weight: bold;
font-weight: 700;
}
/* 设置倾斜 */
font-style: italic;
/* 取消倾斜 */
font-style: normal
color: red;
color: #ff0000;
color: rgb(255, 0, 0);
控制文字水平方向的对齐
text-align: [值];
text-decoration: [值];
常用取值:
控制段落的 首行 缩进 (其他行不影响)
text-indent: [值]
行高指的是上下文本行之间的基线距离
line-height: [值];
行高 = 上边距 + 下边距 + 字体大
**注意:行高等与元素高度, 就可以实现文字居中对齐 **
#nav {
background-color: red;
color: white;
text-align: center;
height: 50px;
line-height: 50px;
font-size: 25px;
}
background-color: [指定颜色]
默认是 transparent (透明) 的. 可以通过设置颜色的方式修改
/* 背景透明 */
background-color: transparent;
background-image: url(...);
比 image 更方便控制位置(图片在盒子中的位置)
注意:
background-repeat: [平铺方式]
重要取值:
background-position: x y;
修改图片的位置.
参数有三种风格:
"bgp">
"one">背景居中
注意:
background-size: length|percentage|cover|contain;
通过 border-radius 使边框带圆角效果
border-radius: length;
length 是内切圆的半径. 数值越大, 弧线越强烈
生成圆形
让 border-radius 的值为正方形宽度的一半即可
div {
width: 200px;
height: 200px;
border: 2px solid green;
border-radius: 100px;
/* 或者用 50% 表示宽度的一半 */
border-radius: 50%;
}
生成圆角矩形
让 border-radius 的值为矩形高度的一半即可
div {
width: 200px;
height: 100px;
border: 2px solid green;
border-radius: 50px;
}
常见的块元素
特点:
注意:
常见的行内元素有
特点:
注意:
使用 display 属性可以修改元素的显示模式.
可以把 div 等变成行内元素, 也可以把 a , span 等变成块级元素.
每一个 HTML 元素就相当于是一个矩形的 “盒子”
这个盒子由这几个部分构成
基础属性
**注意:边框会撑大盒子 **
通过 box-sizing 属性可以修改浏览器的行为, 使边框不再撑大盒子
* {
box-sizing: border-box;
}
内边距
padding 设置内容和边框之间的距离
默认内容是顶着边框来放置的. 用 padding 来控制这个距离
可以给四个方向都设置边距
可以把多个方向的 padding 合并到一起. [四种情况都要记住, 都很常见]
padding: 10px; 表示四个方向都是 10px
padding: 5px 10px; 表示上下内边距 5px, 左右内边距为 10px
padding: 5px 10px 20px; 表示上边距 5px, 左右内边距为 10px, 下内边距为 20px
padding: 5px 10px 20px 30px; 表示 上5px, 右10px, 下20px, 左30px (顺时针)
外边距
margin控制盒子和盒子之间的距离
也可以给四个方向都加上边距
margin也是支持符合写法的
margin: 10px; // 四个方向都设置
margin: 10px 20px; // 上下为 10, 左右 20
margin: 10px 20px 30px; // 上 10, 左右 20, 下 30
margin: 10px 20px 30px 40px; // 上 10, 右 20, 下 30, 左 40
前提:
以下三种写法均可实现
margin-left: auto; margin-right: auto;
margin: auto;
margin: 0 auto;
注意:
这个水平居中的方式和 text-align 不一样.
浏览器会给元素加上一些默认的样式, 尤其是内外边距. 不同浏览器的默认样式存在差别.
为了保证代码在不同的浏览器上都能按照统一的样式显示, 往往我们会去除浏览器默认样式.使用通配符选择器即可完成这件事情
* {
marign: 0;
padding: 0;
}
flex 是 flexible box 的缩写. 意思为 “弹性盒子”
任何一个html元素,都可以指定为display:flex
完成弹性布局
flex布局的本质是给父盒子添加display:flex
属性,来控制盒子的位置和排列方式
基本概念:
注意:
当父元素设置为 display: flex 之后, 子元素的 float, clear, vertical-align 都会失效
justify-content
设置主轴上的子元素排列方式 ,使用之前一定要确定好主轴是哪个方向
取值 | 作用 |
---|---|
flex-start | 默认值,项目位于容器的开头 |
flex-end | 项目位于容器的结尾 |
center | 项目位于容器中央 |
space-between | 项目在行与行之间有间隔 |
space-around | 项目在行之前,行之间和行之后留有空间 |
<div>
<span>1span>
<span>2span>
<span>3span>
<span>4span>
<span>5span>
div>
<style>
div {
width: 100%;
height: 150px;
background-color: red;
display: flex;
}
div span {
width: 100px;
height: 100px;
background-color: green;
}
style>
设置justify-content: flex-end
设置jutify-content: center
设置justify-content: space-around
设置justify-content: space-between
align-items
设置侧轴上的元素排列方式
在上面的代码中, 我们是让元素按照主轴的方向排列, 同理我们也可以指定元素按照侧轴方向排列.
取值 | 作用 |
---|---|
stretch | 默认值,行拉伸以占据剩余空间 |
center | 朝着弹性容器的中央对行打包 |
flex-start | 朝着弹性容器的开头对行打包 |
flex-end | 朝着弹性容器的结尾对行打包 |
space-between | 行均匀分布在弹性容器中 |
space-around | 行均匀分布在弹性容器中,两端各占一半 |
取值和 justify-content 差不多
理解 stretch(拉伸):
这个是 align-content 的默认值. 意思是如果子元素没有被显式指定高度, 那么就会填充满父元素的
高度.
<div>
<span>1span>
<span>2span>
<span>3span>
div>
<style>
div {
width: 500px;
height: 500px;
background-color: green;
display: flex;
justify-content: space-around;
}
div span {
width: 100px;
background-color: red;
}
style>
可以使用 align-items 实现垂直居中
**注意:align-items 只能针对单行元素来实现. 如果有多行元素, 就需要使用 item-contents **