news 2026/7/21 10:34:31

Html+CSS+JavaScript

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Html+CSS+JavaScript

Html

图片标签

<img src="1.png" alt="这是一个图片" title="图片">
超链接标签

target="_blank":打开新窗口跳转页面

<a href="www.baidu.com" target="_blank">点击跳转</a>

音频

<video src="music.mp3" controls loop autoplay> </video>

视频

<video src="vue.mp4" controls loop autoplay> </video>
列表
无序列表

有序列表

定义列表

<dl> <dt>标题1</dt> <dd>详情11</dd> <dd>详情12</dd> <dt>标题2</dt> <dd>详情21</dd> <dd>详情22</dd> <dt>标题3</dt> <dd>详情31</dd> <dd>详情32</dd> </dl>

表格

<table> <tr> <th>姓名</th> <th>语文</th> <th>数学</th> <th>英语</th> </tr> <tr> <td>张三</td> <td>90</td> <td>95</td> <td>98</td> </tr> <tr> <td>李四</td> <td>88</td> <td>95</td> <td>99</td> </tr> </table>

表单

45

文本框

placeholder:显示占位文本

<input type="text" placeholder="请输入文字">
单选框

常用属性 作用
name 单选功能,同组只能选一个
checked 默认选中

男<input type="radio" name="gender" checked> 女<input type="radio" name="gender">
上传文件

multiple属性可以实现文件多选功能

<input type="file" multiple>
下拉标签
城市 <select> <option>北京</option> <option>上海</option> <option>广州</option> <!--selected表示默认选中--> <option selected>深圳</option> </select>
文本域标签
可以输入多行文本的标签 <textarea></textarea>
label标签

按钮

要想按钮起作用,要把表单控件和按钮放在一个form里 <form action="www.baidu.com"> 用户名:<input type="text"> <br> 密码:<input type="password"> <br> <button type="button">按钮</button> <button type="reset">重置</button> <button type="submit">提交</button> </form>

CSS

css引入位置

标签选择器

使用标签名称选择标签

div { color: red; font-size: 50px; }
类选择器

使用 .类名 选择标签

.cls1 { color: blue; font-size: 50px; }
id选择器

使用 #id 选择标签

<div id="id1"></div>
#id1 { color: green; font-size: 50px; }
通配符选择器

使用 * 选择所有的标签

* { color: yellow; }
文字控制属性
复合选择器
后代选择器

会选择所有的后代,包括儿子,孙子,重孙子

div span{ color: red; }
子选择器

使用 > 号,只会选择儿子标签

div>span{ color: blue; }
并集选择器

可以同时选择多个标签:使用 , 选中多个标签

p1,p2,p3{ color: green; font-size: 50px; }
交集选择器

选中同时满足多个条件的元素,直接把两个条件连着写

/*即是p标签又有box类*/ p.box{ color: yellow; font-size: 40px; }
超链接伪类选择器

/*点击前*/ a:link{ color: red; } /*点击后*/ a:visited{ color: green; } /*点击时*/ a:active{ color: blue; } /*悬浮时*/ a:hover{ color: yellow; }
背景属性
背景图

background-image

背景图平铺方式

background-repeat

背景图位置

background-position

背景图缩放

background-size

背景图固定

background-attachment

显示模式
块:(div)

1.独占一行

2.宽高属性生效

3.默认宽度是父级的100%

行:(span)

1.一行可以存在多个

2.宽高不生效

3.宽高由内容撑开

行内块:(图片)

1.一行可以有多个

2.宽高属性生效

3.宽高默认由内容撑开

转化显示模式

结构伪类选择器

<ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> </ul>

首先是找ul下的li标签,具体就是第一个li

ul li:first-child { background-color: pink; }

伪元素选择器

<div>爱</div>
div::before{ content:"老鼠" } div::after{ content:"大米" }

盒子模型

默认情况下加内边距会撑大盒子

内容溢出

外边距问题
外边距合并

塌陷问题

行内元素内外边距问题

圆角

阴影

浮动

浮动:可以让块级元素在同一行显示

设置了浮动的盒子会脱标

<div class="left"></div> <div class="right"></div>
.left{ width: 50px; height: 50px; background-color: skyblue; float: left; } .right{ width: 50px; height: 50px; background-color: brown; float: right; }

左边的盒子设置了浮动所以两个盒子跑一行了

.left { width: 50px; height: 50px; background-color: skyblue; float: left; } .right { width: 100px; height: 100px; background-color: brown; }

左边的盒子设置了浮动所以两个盒子跑一行了

.left { width: 50px; height: 50px; background-color: skyblue; } .right { width: 100px; height: 100px; background-color: brown; float: left; }
  • 上方如果存在标准流块级盒子,这一整行就被占用,浮动元素会自动换到下一行靠左放置;
  • 上方元素同样是浮动元素,就可以挤在同一行横向排列。

.left { width: 50px; height: 50px; background-color: skyblue; float: left; } .right { width: 100px; height: 100px; background-color: brown; float: left; }

两个都设了浮动则依次排列

Flex弹性布局

给父级元素设置display:flex弹性布局,子元素可以自动挤压或拉伸

挤压:当一行放不下所有的弹性盒子时,弹性盒子的宽会被挤压变小

拉伸:当没有给弹性盒子设置高度时,会把高度拉伸为父容器的高度

创建flex容器

主轴对齐方式

space-between

space-around

space-evenly

侧轴对齐方式

stretch:默认效果

center

flex-start

flex-end

修改主轴方向

弹性伸缩比

<div class="father"> <div class="son1"></div> <div class="son2"></div> <div class="son3"></div> </div>
.father { background-color: skyblue; display: flex; height: 300px; align-items: flex-end; } .son1 { background-color: brown; width: 200px; height: 100px; margin-right: 20px; } .son2 { background-color: blue; height: 100px; margin-right: 20px; flex: 2; } .son3 { background-color: pink; height: 100px; margin-right: 20px; flex: 1; }

盒子2和盒子3设置了弹性伸缩比,对应宽度为(总宽➖已知盒子宽度)×比值

盒子2为减去盒子1的剩下的三分之二,盒子3为减去盒子1的剩下的三分之一

弹性盒子换行

父级没加flex-wrap属性时盒子满了会自动挤压

父级加了flex-wrap属性后会自动换行

行对齐方式

没写这个属性的时候默认

flex-start

flex-end

center

space-between

space-around

space-evenly

定位

相对定位

position:relative

特点:

1.改变的位置的参照物是自己原来的位置
2.不脱标,占位
3.显示模式改变特点:不改变显示模式

绝对定位

position:absolute(子绝父相)

特点:

1.脱标不占位
2.改变的位置的参照物是祖先元素,如果所有的祖先元素都没有定位,参照浏览器可视区该位置
3.显示模式改变特点:具备了行内块的特点(可以设置宽高)

居中定位

1.使用margin-left,margin-top
2.使用transform:translate(50%, 50%)

固定定位

特点:
1.脱标,不占位
2.参照物:改变位置的参照物是浏览器窗口
3.显示模式改变特点:行内块

黑色盒子没加绝对定位

黑色盒子加了绝对定位:

1.黑色盒子脱标
2.黑色盒子相对窗口位置不会变

堆叠顺序

加z-index改变显示顺序,数字越大越上

想要两个元素用 z-index 比较层级,二者必须是兄弟节点

<div class="box1"> box1 </div> <div class="box2"> box2 </div>
.box1 { height: 300px; width: 300px; background-color: pink; position: absolute; z-index: 5; } .box2 { background-color: skyblue; height: 300px; width: 300px; position: absolute; left: 100px; top: 100px; }

垂直对齐方式

默认情况下是基线对齐,图片下面有空白区域

给占位子大的元素加属性,这里是给图片标签加属性
只要不是基线对其图片都不会有下边的空白边距

middle

top

bottom

过渡属性

透明度

光标类型

平面转换

平移

旋转

改变转换原点

多重转换

缩放

倾斜

渐变
线性渐变

div { margin: 100px 200px; width: 100px; height: 100px; background-color: pink; transition: all 1s; background-image: linear-gradient(90deg, red 80%, green) }

径向渐变

div { margin: 10px 200px; width: 100px; height: 100px; background-color: pink; transition: all 1s; background-image: radial-gradient(50px 20px at center center, red, green) }

空间转换

平移

默认情况下看不到z轴平移的效果

视距

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>视距</title> <style> *{ margin:0; } div{ margin: 100px 100px; width: 100px; height: 100px; background-color: pink; transition: all 1s; } div:hover{ transform:translateZ(100px) } body{ perspective:1000px } </style> </head> <body> <div></div> </body> </html>
旋转

立体呈现

<!DOCTYPE html> <html lang="UTF-8"> <head> <meta charset="UTF-8"> <title>立体呈现</title> <!-- transform-style: 属性值: flat:子级处于平面中 preserve-3d:子级处于3D空间中 --> <!-- 步骤: 1.父元素添加:transform-style:preserve-3d 2.子级定位在父级盒子里面 3.调整子盒子的位置(位移或者旋转) --> <style> * { margin: 0; } .cube { position: relative; margin: 100px auto; width: 200px; height: 200px; background-color: pink; transition: all 3s; /* 开启3D空间,子元素可在三维坐标系排布 */ transform-style: preserve-3d; } .cube div { left: 0; top: 0; position: absolute; width: 200px; height: 200px; } .front { background-color: orange; transform: translateZ(100px); /* 沿Z轴正向移出,朝向观察者 */ } .back { background-color: green; transform: translateZ(-100px); /* 沿Z轴负向移出,远离观察者 */ } .cube:hover { transform: rotateY(90deg); } </style> </head> <body> <div class="cube"> <div class="front">前面</div> <div class="back">后面</div> </div> </body> </html>

空间缩放

动画

animation属性

数度曲线
匀速:linear
分布动画:steps(3)(分3步)

重复次数
无限循环:infinite

动画方向
来来回回播放:alternate

执行完毕时状态
结束时停在结束时的位置:forwards

拆分属性

暂停动画比较重要

JavaScript

输出标签

模板字符串

检测数据类型

类型转换
隐式类型转换

显示类型转换

数组
数组新增

删除数组

删最后一个

删第一个

指定删除

函数
函数表达式

立即函数
(function (x,y) {console.log(x+y)})(2,3)
(function () {console.log(1)})()
(function () {})()

对象

查对象属性

1.普通属性:obj.name
2.带符号的属性:obj['goods-name']

遍历对象

获取dom对象

操作元素内容

操作元素属性
操作元素常用属性

操作元素样式属性
通过style属性操作css

遇到background-color这种属性需要使用小驼峰:box.backgroundcolor='pink'

操作类名操作css

通过classList操作类控制css

操作表单元素属性

例如:

通过操作value的值控制内容
const dom=document.querySelector('input')
dom.value='拉啦啦'

<input type="checkbox" checked>
const dom=document.queryselector('input') dom.checked=false
自定义属性

<div>let dom =document.queryselector('div'); console.log(dom.dataset.aa)
定时器-间歇函数

间歇函数:每隔一定时间自动执行

setInterval开启定时器的返回结果是一个数字id,关闭定时器要通过这个id关闭

clearInterval(定时器的id)关闭定时器

事件监听

事件类型

事件对象

事件对象部分常用属性

环境对象

回调函数

事件流

事件捕获

事件冒泡

阻止冒泡

事件解绑

事件委托

<ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul>
let ul = document.querySelector('ul') a.addEventListener('click', function (e) { e.target.style.color = 'red' })

原本给li注册的点击事件,需要给所有li都注册一遍

现在通过事件委托只给ul注册一次,通过e拿到点的是哪个li标签,从而完成需求

阻止元素默认行为

页面加载事件

load:
window.addEventListener('load',fn)//加给window
等所有的dom节点,css样式,图片都加载完成触发
这个属性也可以加给dom元素,比如img.addEventListener('load',fn)

DOMContentLoaded:
document.addEventListener('DOMContentLoaded', fu)//加给document
dom节点加载完,不等待css样式,图片加载完

元素滚动事件

div有了滚动条是div在滚动,scrollTop是下滚的距离(上部分被卷去的距离),scrollLeft是向右滚动的距离(左部分被卷去的距离)

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>动画</title> <style> * { margin: 0; } .box { margin: 100px 100px; width: 100px; height: 100px; background-color: pink; overflow: scroll; } </style> </head> <body> <div class="box"> 啊啊啊啊啊啊<br> 啊啊啊啊啊啊<br> 啊啊啊啊啊啊<br> 啊啊啊啊啊啊<br> 啊啊啊啊啊啊<br> 啊啊啊啊啊啊<br> 啊啊啊啊啊啊<br> 啊啊啊啊啊啊<br> 啊啊啊啊啊啊<br> 啊啊啊啊啊啊 </div> <script> let box = document.querySelector('.box') box.addEventListener('scroll', function () { console.log('当前滚动距离:', this.scrollTop) }) </script> </body> </html>

获取整个页面滚动的距离

就是html标签滚动的距离,document.documentElement就是代表html标签

页面尺寸事件

获取元素宽高

clientWidth和offsetWidth都可以获得元素的宽,
区别:
clientWidth是元素+padding
offsetWidth是比clientWidth多了一个边框线border

.box { display: inline-block; height: 100px; background-color: pink; }
let a = document.querySelector('.box').clientWidth console.log(a)

offsetLeft,offsetTop
可以获得距离这个元素有定位属性的父级的左,上距离

.box { display: inline-block; height: 100px; background-color: pink; width: 100px; margin: 50px; }
let div = document.querySelector('.box') console.log(div.offsetLeft)

得到的值是58,是50左外边距+8body的默认外边距

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>动画</title> <style> .box { display: inline-block; height: 100px; background-color: pink; width: 100px; margin: 50px; } p { height: 20; width: 20; background-color: green; margin: 10px; } </style> </head> <body> <div class="box"> <p>测试测试测试</p> </div> <script> let p = document.querySelector('p') console.log(p.offsetLeft) </script> </body> </html>

p标签的父级div没有加定位属性,这种情况下p标签的offsetLeft就是10+50+8

如果给div加了相对定位,那么p的offsetLeft就是他和div的左边的距离10

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/21 10:34:27

【办公类-109-09】20260228挂牌长方形挂牌卡片(只有word编辑单面,添加有效日期)(85*54mm横板和54*85mm竖版,一页9张)

背景需求 制作幼儿挂牌里面的信息卡片 这是上学期的样式, 第一版 横版和竖版 【办公类-109-04】20250807托小班新生的卡套长方形纸牌制作Python3.11.5 32(85*54mm横板和54*85mm竖版,一页9张)https://mp.csdn.net/mp_blog/creation/editor/150009366 第二版,有照片位置预…

作者头像 李华
网站建设 2026/7/21 10:33:29

如何通过三天学习记录分析学习模式与优化教学策略

1. 从“三天学习”里能看出什么&#xff0c;以及为什么值得看 “大学生学员三天的学习情况”这个标题&#xff0c;听起来像一份简单的进度报告&#xff0c;但如果你正在做课程设计、助教工作、学习社群运营&#xff0c;或者想复盘自己的学习路径&#xff0c;这里面能挖出的信息…

作者头像 李华
网站建设 2026/7/21 10:32:34

终极指南:如何用AutoRemesher快速优化3D网格模型

终极指南&#xff1a;如何用AutoRemesher快速优化3D网格模型 【免费下载链接】autoremesher Automatic quad remeshing tool 项目地址: https://gitcode.com/GitHub_Trending/au/autoremesher 你是否曾为复杂的3D模型网格优化而头疼&#xff1f;AutoRemesher正是解决这一…

作者头像 李华
网站建设 2026/7/21 10:32:27

Starship极速优化:从500ms到50ms,让你的终端提示符飞起来!

Starship极速优化&#xff1a;从500ms到50ms&#xff0c;让你的终端提示符飞起来&#xff01; 【免费下载链接】starship ☄&#x1f30c;️ The minimal, blazing-fast, and infinitely customizable prompt for any shell! 项目地址: https://gitcode.com/GitHub_Trending/…

作者头像 李华
网站建设 2026/7/21 10:30:35

Unity加载OSGB三维模型:从数据解析到性能优化的完整实践指南

1. 项目概述&#xff1a;为什么Unity加载OSGB是个“技术活”&#xff1f; 如果你正在处理大规模的三维地理空间数据&#xff0c;比如数字城市、智慧园区或者大型基础设施的BIMGIS融合项目&#xff0c;那么“OSGB”这个格式对你来说一定不陌生。它全称是“Open Scene Graph Bina…

作者头像 李华
网站建设 2026/7/21 10:28:56

VCAP-DTM考试完整信息:Deploy实操实验考试标准时长4小时

VCAP-DTM分为Deploy部署实操考试与Design设计笔试两类&#xff0c;其中大家常说的4小时时长特指VCAP-DTM Deploy&#xff08;部署实验考试&#xff09;&#xff0c;全程在真实HorizonWorkspace ONE实验环境完成实操任务&#xff1b;Design设计卷为选择题场景题&#xff0c;时长…

作者头像 李华