HTML+javaScript+CSS

文章目录

  • HTML+javaScript+CSS
    • 属性
    • 区块
    • 表单
    • 层叠样式表
    • 选择器
    • 常用属性
    • 盒子模型
      • 相关属性
      • 浮动float
      • 定位(position)
  • JS
    • 操作节点
    • 事件
      • 点击事件onclick()
      • 聚焦事件、失焦事件
      • 鼠标移入移出事件
    • 定时任务
      • 延迟定时任务
      • 重复定时任务
    • 判断哪个单选框被选中
    • 设置按钮失效
    • 冒泡和阻止冒泡
      • 具体例子

HTML+javaScript+CSS

属性

超链接
<a href="www.qq.com">跳转到QQ</a>
//target:_self:默认值,连接在当页打开;_blank:新页面打开;_parent:父窗口或父框架打开;_top:顶层窗口或顶层框架打开
<a href="www.qq.com" target="_blank">新页面打开,跳转到QQ</a>
换行
<br>
分割线
<hr>
图片
<img src="log.png" alt="图片无法显示" width="100" height="100">

区块

块元素(block):独占浏览器一行,块级元素通常会从新行开始,占据整行宽度,可以包含其他块级元素和行内元素
常见块元素:div,p,h,ul,ol,li,table,form
行内元素(inline):行内元素通常在同一行内呈现,但不会独占一行,占据内容所需要的宽度,不能包含块级元素但可以包含行内元素
常见:span,a,strong,em,br,input,img

表单

<form><lable>用户名</lable>//lable与input通常一起连用,lable有属性for,能与input的值进行绑定<input type="text" placeholder="这里是提示信息">//type有text和password,分别是明文显示和加密显示,placeholder是提示信息单选框,使用时需要让属性name值相同<laber>性别:</laber><input type="radio" name="gender">男<input type="radio" name="gender">女复选框,使用时需要让属性name值相同<laber>性别:</laber><input type="checkbox" name="hobby">唱歌<input type="checkbox" name="hobby">跳舞
</form>
<form action="">提交内容到表单,内容提交到action里<input type="submit">//默认是内容提交<input type="submit" value="上传">//修改按钮值为上传</form>

层叠样式表

语法:

选择器{属性1:属性值1;属性2:属性值2;
}

导入方式:
优先级:内联>内部>外部
内部样式:

写在html文件<hrad>中,用<style>包裹
<head><style>选择器{属性1:属性值1;属性2:属性值2;}</style>
</head>

内联样式

<h1 style="color:red"></h1>

外部样式
写在里,用引入

<link rel="stylesheet" href="css文件路径">

选择器

优先级:id>类>标签

h2 {}元素选择器
.class名 {}类选择器
#id名 {}id选择器
* {} 通用选择器,
.father> son {}子元素选择器
.father p{}后代选择器//子元素选择器只能选择子元素,后代选择器可以选择后代所有元素
<div class="father"><p class="son"></p><div><p class="grandson"></p></div>
</div>
h3+p{}相邻元素选择器//改变与p相邻的h3的样式<p></p><h3>文本内容</h3>
//伪类选择器
<h3 id="element">伪类</h3>
#element:hover{background-color:blue;//鼠标悬停背景色变蓝
}
#element:first-child{background-color:blue;//选中第一个子元素背景色变蓝
}
#element:nth-child{background-color:blue;//选中第n个子元素背景色变蓝
}
//伪元素选择器
::after{}
::befor{}

常用属性

//font:复合属性,在一个声明中设置所有字体属性
设置了字体加粗,大小,样式
<h1 style="font:bolder 50px 'KaiT';"></h1>
color:给字体shezhiyanse
background-color:设置背景颜色
font-size:设置字体大小
font-family:设置字体样式
font-weight:设置字体粗细
line-height:设置行高
display:转换行内/块/行内块元素
<div class="div-inline">这是块元素转成行内元素</div>
<span class="span-inline-block">这是行内转成行内块元素</span>
<span class="span-block">这是行内转成行内块元素</span>.div-inline {display:inline;
}
.span-inline-block {display:inline-block;
}
.span-block {display:block;
}
.span-inline-block {display:none;//不显示
}

盒子模型

相关属性

内容(center):盒子包含的实际内容,比如文本,图片等。
内边距(padding):围绕在内容的内部,是内容与边框之间的空间。
边框(border):围绕在内边距的外部,是盒子的边界。
外边距(margin):围绕在边框的外部,是盒子与其他元素之间的空间。

border:复合属性,可设置边框的粗细,样式,颜色等
<div class="border-demo"></div>
.border-demo {background-color:red;width:200px;height:200px;//solid实线dashed虚线dotted点double双实线,可设置四个值,分别是上右下左,如果设置1-3个,遵循顺时针方向依次匹配,没有值的跟从对面border-style:solid dashed dotted double ;//可设置四个值,分别是上右下左,0可以不写px,遵循遵循顺时针方向依次匹配,没有值的跟从对面border-width:10px 0 12px 12px;border-color:blue;
}

浮动float

脱离标准流,一行显示,顶部对齐,具备行内块元素特性

<div class="father"><div class="left-son">左浮动</div><div class="right-son">右浮动</div>
</div>
.father {//解决父盒子没有高度,子盒子浮动后出现坍塌overflow:hidden;
}
.left-son {width:100px;height=100px;float:left;
}
.right-son {width:100px;height=100px;float:right;
}

定位(position)

传统网页布局方式:
标准流(普通流,文档流):网页按照元素的书写顺序依次排列。
浮动
定位
Flexbox
Grid(自适应布局)

定位方式:
相对定位:相对于元素在文档流中的正常位置进行定位
绝对定位:相对于其最近的已定位的祖先元素进行定位。不占据文档流
固定定位:相对于浏览器窗口进行定位,不占据文档流,固定在屏幕上的位置,不随滚动而移动

<div class="box1"><div class="box-normal"></div><div class="box-relative"></div><div class="box-normal"></div>
</div>
下面情况:相对定位,box-relative会移动到距离box1左边100px,距离上面相邻的box-normal的下面40px;元素不会脱离正常文档流,下面的40px;不会上移;
.box1 {height:400px;backgroundcolor:block;
}
.box-normal {width100px;height:100px;backgroundcolor:blue;
}
.box-relative {width100px;height:100px;backgroundcolor:red;position:relative;left:100px;top:40px;
}
下面情况:绝对定位,box-relative会移动到距离box1左边100px,元素会脱离正常文档流,下面的40px会上移;
.box1 {height:400px;backgroundcolor:block;
}
.box-normal {width100px;height:100px;backgroundcolor:blue;
}
.box-relative {width100px;height:100px;backgroundcolor:red;position:absolute;left:100px;
}
下面情况:固定定位,对于浏览器窗口进行定位,box-fixed出现在浏览器右边,距顶部300px不随页面滚动移动,脱离标准流
<div class="box-fixed"></div>
.box-fixed {width100px;height:100px;backgroundcolor:red;position:fixed;right:o;top:300px;
}

JS

操作节点

<div id="d1">我的id属性是d1</div><div name="d2">1我的name属性是d2</div><div name="d2">2我的name属性是d2</div><div class="d3">1我的class属性是d3</div><div class="d3">2我的class属性是d3</div><p>我是一个p标签</p><ul id="ul">空格、换行和其他文本都算节点<li>ufirst</li><li>ucenter</li><li>ulast</li>我是文本的最后节点</ul>//通过标签的id属性查找对应节点var d1 = document.getElementById("d1");console.log(d1);var d2 = document.getElementsByName('d2');console.log(d2);for (const element of d2) {console.log(element);}// console.log(d2[0]);// console.log(d2[1]);//通过标签的class属性值找到对应节点的集合var d3 = document.getElementsByClassName("d3");for (const element of d3) {console.log(element);}//通过标签名字获得对应节点集合var p = document.getElementsByTagName("p");for (const element of p) {console.log(element);}var ul = document.getElementById("ul");//这是获取第一个文本节点console.log(ul.firstChild);//这是获取第一个带标签的节点console.log(ul.firstElementChild);//这是获取最后一个文本节点console.log(ul.lastChild);//这是获取最后一个带标签的节点console.log(ul.lastElementChild);//给标签添加属性document.getElementById("ul").setAttribute("class","ul");document.getElementById("ul").setAttribute("style", "color:blue");//获取标签的值,此处获得的是第一个li的值var li = document.getElementsByTagName("li")[0].innerText="我被修改了";//innerHTML,获取值同时渲染样式var li = document.getElementsByTagName("li")[0].innerHTML = "<em>我被修改了</em>";//添加节点信息var node=document.createElement("li");node.innerText="我是添加的节点信息";//添加同级节点,需要父级节点var li3 = document.getElementsByTagName("li")[2];var ul1 = document.getElementById("ul");//ul1.insertBefore(node,li3);//在节点后面添加//li3.insertAdjacentElement("afterend",node);//追加到子节点末尾//document.getElementsByTagName("li")[2].appendChild(node);//删除节点,用父级节点删除ul1.removeChild(li3);    

事件

点击事件onclick()

<body><div class="d1" onclick="divClick('张三',18)">点我添加数据</div>
</body>
<script>function divClick(name,age){alert(name+age);}
</script>

聚焦事件、失焦事件

<p><!-- 聚焦事件onfocus 失焦事件onblur--><input id="username" placeholder="请输入用户名:" onfocus="m1(this)" onblur="m2(this)"/><span></span>function m1(that){console.log("选中输入框");that.nextSibling.innerText = "";} function m2(that) {console.log("离开输入框");if(that.value==""){that.nextSibling.innerText="用户名不能为空";}}
</p>

鼠标移入移出事件

.show {display: block;}
.disshow {display: none;}<div id="d1" onmouseover="show1()" onmouseleave="disshow1()"></div>
<div id="d2" class="disshow"></div>
//鼠标移入让d2显示
function show1(){//document.getElementById("d2").setAttribute("style","display:block");document.getElementById("d2").setAttribute("class", "show");}
//鼠标移出让d2消失
function disshow1(){//document.getElementById("d2").setAttribute("style", "display:none");document.getElementById("d2").setAttribute("class", "disshow");}

定时任务

延迟定时任务

 //延迟定时执行let st=setTimeout(()=>{alert("爆炸");},3000);//删除定时任务clearTimeout(st);  

重复定时任务

 //重复定时任务var si= setInterval(() => {console.log("中午吃什么");}, 2000);
//删除重复定时任务
clearInterval(si);

判断哪个单选框被选中

    狗狗:<input type="radio" name="book" onclick="choosebook()"/><br/>雾霾:<input type="radio" name="book" onclick="choosebook()"/><img src=""/>//1.获取所有单选框对象let radioList = document.getElementsByName("book");//2.遍历集合 判断哪个单选框被选中for (let index = 0; index < radioList.length; index++) {if (radioList[index].checked) {if(index==0){document.getElementsByTagName("img")[0].setAttribute("src","phone/dog.jpg");}else{document.getElementsByTagName("img")[0].setAttribute("src", "phone/mai.jpg");}}}

设置按钮失效

<button id="start" onclick="start()">开始</button>//style="pointer-events: none;"设置按钮失效
document.getElementById("start").setAttribute("style","pointer-events: none");
//设置按钮失效,true失效false生效
document.getElementById("start").disabled=true;
//关闭按钮失效
document.getElementById("start").disabled = false;

冒泡和阻止冒泡

 <div id="d1" onclick="d1()"><!-- data-abc="今天中午吃什么" 绑定数据,把数据绑到标签上 --><div id="d2" data-abc="今天中午吃什么"></div>
</div>function d1(){alert("点击了d1");}
function d2(e) {alert("点击了d2");}
// 监听事件获得事件对象e,通过监听d2来阻止事件冒泡以及取数据,click可以改变来监听不同事件
//addEventListener("",,)接收三个参数,分别是事件、函数名,布尔值,如果不写最后一个参数默认false(事件冒泡,由内向外触发事件),改为true是事件捕获(由外向内触发事件),事件捕获比事件冒泡优先级高,同时出现先捕获后冒泡,相同的事件出现捕获由外层先执行后内层,冒泡先内层后外层(过山车理论)
document.getElementById("d2").addEventListener("click",d2(e){console.log(e);
// 把数据从标签上取出console.log(e.srcElement.dataset.abc);
//阻止事件冒泡
// e.stopPropagation();})

具体例子

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

<style>.yellow{width: 300px;height: 300px;background-color: yellow;}.blue{width: 200px;height: 200px;background-color: blue;}.green{width: 100px;height: 100px;background-color: green;}
</style>
<body><div class="yellow" ><div class="blue"><div class="green"></div></div></div>
</body>
<body><div class="yellow" ><div class="blue"><div class="green"></div></div></div>
</body>
//点击黄色格子,打印黄色、绿色、蓝色
<script>let oyellow = document.getElementsByClassName("yellow")[0];let oblue = document.getElementsByClassName("blue")[0];let ogreen = document.getElementsByClassName("green")[0];oyellow.addEventListener("click",()=>{console.log("黄色");},true)oblue.addEventListener('click',(e)=>{console.log("蓝色")})ogreen.addEventListener('click',() => {console.log("绿色");}, true)
</script>

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

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

相关文章

Linux系统每日定时备份mysql数据

一、创建存储脚本的文件夹 创建文件夹&#xff0c;我的脚本放在/root/dbback/mysql mkdir ... cd /root/dbback/mysql 二、编写脚本 vi backup_mysql.sh 复制脚本内容 DB_USER"填写用户名" DB_PASSWORD"填写密码" DB_NAME"数据库名称" # …

【计算机网络】零碎知识点(易忘 / 易错)总结回顾

一、计算机网络的发展背景 1、网络的定义 网络是指将多个计算机或设备通过通信线路、传输协议和网络设备连接起来&#xff0c;形成一个相互通信和共享资源的系统。 2、局域网 LAN 相对于广域网 WAN 而言&#xff0c;局域网 LAN 主要是指在相对较小的范围内的计算机互联网络 …

数据同步的技术支持有哪些?

数据同步是指将不同系统、设备或应用程序中的数据进行实时或定期的更新、复制和传输的过程。通过数据同步&#xff0c;可以确保数据的一致性和可用性&#xff0c;避免数据的丢失或错误。常见的数据同步技术包括推式同步、拉式同步、ETL工具同步等。 一、推式数据同步 定义&…

Kaggle入门指南(Kaggle竞赛)

https://www.kaggle.com/ 文章目录 Kaggle 入门指南1. Kaggle 的功能概述1.1 竞赛1.2 数据集1.3 学习与教程1.4 社区 2. 注册与设置2.1 创建账户2.2 完善个人资料 3. 探索数据集3.1 查找数据集3.2 下载数据集示例代码&#xff1a;加载数据集 3.3 数据预处理示例代码&#xff1a…

桌面终端安全管理软件有哪些?5大主流的终端安全防护系统盘点,2024人气爆款推荐!

“守一而制万机&#xff0c;安内方可攘外”。在纷繁复杂的数字化世界中&#xff0c;只有确保内部系统的安全稳定&#xff0c;才能有效地抵御外部威胁。 其中&#xff0c;桌面终端作为信息交换和存储的重要节点&#xff0c;在安全管理方面显得尤为重要。 本文将为您盘点2024年五…

灰度梯度的表示形式、非极大值抑制、Canny算子、otsu

灰度梯度的表示形式主要有两种&#xff1a;梯度的幅度&#xff08;magnitude&#xff09;和梯度的方向&#xff08;direction&#xff09;。 1. **梯度的幅度&#xff08;Gradient Magnitude&#xff09;**&#xff1a; 梯度的幅度表示在某个方向上像素灰度变化的强度。它通…

WLAN高级技术

下面是对每一部分的详细解析&#xff1a; 1. 禁用信息中心并设置设备名称 <Huawei>sys [Huawei]un in e Info: Information center is disabled. [Huawei]sysname sw1 分析&#xff1a; un in e&#xff1a;禁用信息中心&#xff0c;防止后续配置过程中出…

Serverless GPU:助力AI推理加速

近年来&#xff0c;AI技术发展迅猛&#xff0c;企业纷纷寻求将AI能力转化为商业价值&#xff0c;然而&#xff0c;在部署AI模型推理服务时&#xff0c;却遭遇成本高昂、弹性不足及运维复杂等挑战。本文将探讨云原生Serverless GPU如何从根本上解决这些问题&#xff0c;以实现AI…

Python异常检测 - LSTM(长短期记忆网络)

系列文章目录 Python异常检测- Isolation Forest&#xff08;孤立森林&#xff09; python异常检测 - 随机离群选择Stochastic Outlier Selection (SOS) python异常检测-局部异常因子&#xff08;LOF&#xff09;算法 Python异常检测- DBSCAN Python异常检测- 单类支持向量机(…

Python毕业设计选题:基于django+vue的论坛BBS系统

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 公告信息管理 帖子信息管理 签到积分管理 系统…

moffee模型部署教程

一、介绍 moffee 是一个开源幻灯片制作工具&#xff0c;可以将 markdown 文档转换为干净、专业的幻灯片。 moffee 处理布局、分页和样式 &#xff0c;因此您可以专注于您的内容。需要学习的内容很少 。moffee 使用简单的语法来根据您的喜好安排和设计内容。实时网络界面会在您…

MyBatis学习笔记(一)

一、介绍 (一)什么是框架及优势 框架&#xff08;Framework&#xff09;是整个或部分系统的可重用设计&#xff0c;表现为一组抽象构件及构件实例间交互的方法;另一种定义认为&#xff0c;框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。…

【MySQL系列】字符集设置

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

白杨SEO:百度在降低个人备案类网站搜索关键词排名和流量?怎样应对?【参考】

很久没有写百度或者网站这块内容了&#xff0c;一是因为做百度网站朋友越来越少&#xff0c;不管是个人还是企业&#xff1b;二是百度上用户搜索与百度给到网站的流量都越来越少。 为什么想到今天又来写这个呢&#xff1f;因为上个月有个朋友来咨询我说网站百度排名全没了&…

Edge浏览器打开PDF无法显示电子签章

Edge浏览器打开PDF无法显示电子签章 直接说处理方式 直接说处理方式 浏览器地址栏&#xff0c;输入 edge://flags/搜索&#xff1a;pdf禁用&#xff1a;New PDF Viewer效果如下

2024年【汽车修理工(高级)】考试总结及汽车修理工(高级)试题及解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 汽车修理工&#xff08;高级&#xff09;考试总结是安全生产模拟考试一点通总题库中生成的一套汽车修理工&#xff08;高级&#xff09;试题及解析&#xff0c;安全生产模拟考试一点通上汽车修理工&#xff08;高级&a…

Redis内存管理——针对实习面试

目录 Redis内存管理Redis的内存淘汰机制有哪些?说说过期的数据的删除策略&#xff1f;Redis是如何判断数据是否过期的&#xff1f;Redis如何处理大Key问题&#xff1f; Redis内存管理 Redis的内存淘汰机制有哪些? Redis的内存淘汰机制主要包括以下几种策略&#xff1a; noev…

2024年中国工业大模型行业发展研究报告|附43页PDF文件下载

工业大模型伴随着大模型技术的发展&#xff0c;逐渐渗透至工业&#xff0c;处于萌芽阶段。 就大模型的本质而言&#xff0c;是由一系列参数化的数学函数组成的计算系统&#xff0c;且是一个概率模型&#xff0c;其工作机制是基于概率和统计推动进行的&#xff0c;而非真正的理解…

hhdb数据库介绍(2-1)

数据库基础服务 HHDB Server支持MySQL原生通讯协议&#xff0c;支持数据定义、数据操作、分区表、数据库管理语句、事务、锁、字符集与校对集等常用数据库基础服务。其中在数据操作中解决了跨库查询和跨库数据排序等难点问题。并支持强一致事务与跨库死锁检测。 数据定义 支…

道品科技的水肥一体化智能灌溉:开启现代农业的创新征程

水肥一体化智能灌溉作为一种现代农业技术&#xff0c;其通过对水分与养分供应的有效整合&#xff0c;致力于营造作物的最佳生长环境。此项技术的核心要义在于凭借智能化系统精准把控灌溉与施肥的流程&#xff0c;进而提升水资源的利用效率&#xff0c;降低肥料的浪费程度&#…