元素定义标题。
2022.5.17
HTML+CSS 牛客网刷题
1、overfolow :
visible:默认值,多余元素展示在元素框之外;
hidden:过多元素不可见;
auto 如果内容过多,展示不全,则产生滚动条;
stroll 滚动条一直有,无论内容多少;
2、列表样式:list-style-type
ul.circle {list-style-type:circle} 圆环环 ul.square {list-style-type:square} 小方块 ol.upper-roman {list-style-type:upper-roman} 罗马数字从I开始 ol.lower-alpha {list-style-type:lower-alpha} 从小写字母a开始
3、 新增type属性
range:手动拖拉进度条;
email:用于输入email地址,会自动提示邮件地址;
color:拾色器;
search:站内搜索框;
4、 标签中的内容作为 或者 一个元素使用。显示为一个下拉框;
5、 href的值可以是:
绝对路径 网址格式 指向另一个站点
相对路径 文件名格式 指向站内的某个文件
锚路径 指向页面中的锚(href="#top" 就会回到id为top的元素位置);
6、 标签:在响应式布局中,为了不错误换行(某个单词被拆开)使用这里是不可拆分的内容
7、标签定义度量衡,像进度条,但不同于进度条,是静态的。仅用于已知最大和最小值的度量。比如:磁盘使用情况,查询结果的相关性等。
8、HTML5拖放:使用 File API实现
1 可拖动:draggable属性:‘true’
链接和图片默认可拖放,可以不用设置;
2 DataTransfer对象:用来保存拖起到放下过程间的数据,可以是一项到多项数据;
3 被拖动元素(源元素)方法
ondragstart :开始拖动时触发
ondrag:正在拖动时触发
ondraged:完成拖动后(鼠标松开)触发
4 释放目标时触发的元素(目标元素)方法
ondragenter:进入容器范围内触发
ondragleave:原目标离开时触发
ondragover :被拖动元素在另一对象元素范围内拖动;在ondragover中一定要执行preventDefault(),否则ondrop事件不会被触发。
ondrop :拖进容器内,释放鼠标时触发;把被拖动对象捕获到容器内:this.appendChild(dragItem);
9、HTML5使用data-xxx-type自定义数据 :
喜鹊
10、特殊边距
element.clientWidth = 宽度 + padding
element.offsetWidth = 宽度 + padding + border
element.scrollTop = 被卷去的上侧距离
element.scrollHeight = 自身实际的高度(不包括边框)
11、空元素(empty element/void element) 不存在子节点的元素,就是不闭合的元素,比如:
12、CSS 预编译工具 有stylus,sass,less
13、p元素不能包含任何块级元素(包括自身);a元素可以包含任何其他元素(除了自身);Dom Tree的根节点是document;
14、表单登录用到图形验证码功能 :服务器端生成验证码后,一方面通过图片将验证码返回给客户端,同时在服务器端保存文本的验证码 ,由服务器端验证输入内容是否正确;
JavaScript 牛客网刷题
1、检验复杂数据类型 :left instanceof right;左边是对象,右边是类,当对象是右边类或子类所创建的对象时,返回true;
2、用字符串拼接方法,实现两个数字参数拼接后以字符串形式输出:return ' ' + left + right
3、数组求和
function sum(arr) {
var m = 0;
for(var i = 0; i < arr.length ; i++){
//原先i < arr.length-1,输出结果错误。
//原因:一共有几个元素就要加几次,所以是i < arr.length
//原先 var m = 0;写在了这里,输出结果错误
m = m + arr[i];//原先写成了arr.indexOf(i)
}
return m
}
4、返回星期数 :getDay()返回的数字作为数组的索引号,谨记:星期天的索引号必须是0。
正确写法:
var date = new Date( ); //创建Date对象
var today=date.getDay(); //返回的是数字,星期天返回0;
arr=['星期天','星期一','星期二','星期三','星期四','星期五','星期六'];
console.log('今天是'+arr[today]);
//根据输入的value返回星期几
function _getday(value) {
// 补全代码
let arr = ['星期一','星期二','星期三','星期四','星期五','星期六','星期天'];
return arr[value-1];
}
第一次做时怎么写都错,哪怕复制粘贴别人的题解也错,结果是因为数组内元素都是双引号
数组元素必须用单引号?
5、全选/取消全选按钮
复选框的checked属性与全选按钮的属性保持一致。
用for循环实现所有复选框与全选按钮的checked属性一致;
给每个小按钮绑定事件,每次点击都循环查看其他复选框是否被选中,如果全选中,则全选按钮也被选中(用变量标记是否全选中)。
6、双重for循环,若变量一样var i;则必须处于不同作用域(比如内层for循环被函数包含)
7、获取、设置、移除元素属性 :
element. 属性;element.getAttribute (‘属性’)
区别:获取元素内置元素;后者获取自定义属性;
设置属性值:element.属性值=‘ ’;element.setAttribute (‘属性’,‘值’);
同样,后者适用于自定义属性。
特殊:div.className = 'new'
div.setAttribute ('class ','new')
移除:
div.removeAttribute (‘属性’)
2022.5.21
AJAX:不刷新页面的情况下,向服务端发送HTTP请求,得到HTTP响应。可基于事件触发。
四种方式发送ajax:原生、jquery、fetch、axios
XML:可拓展标记语言。被设计用来传输和存储数据。全都是自定义标签。
服务端向客户端发送的是XML格式的文件。被前端JS解析。
XML被JSON取代了。
HTML:呈现数据。
AJAX缺点:没有游览历史,不能回退;存在跨域问题;SEO(搜索引擎优化)不友好(例如淘宝的商品信息就是ajax获取,在爬虫时无法爬取到商品信息)。
AJAX请求实现步骤:
1、创建XMLHttpRequest对象
var xhr = new XMLHttpRequest();//XMLHttpRequest用于和服务端交换数据
2、初始化 设置请求的方法和URL,使用open方法与服务器建立连接
xhr.open('GET','http://',true);
//true异步,false同步
//设置为true则需要写onreadystatechange函数
3、发送数据
xhr.send();
//POST时,send(' ');
4、设置回调函数 ,事件绑定,针对不同状态码处理服务端发送回来的结果
//方法:xhr.onreadystatechange = function( ){ }
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)//服务器返回所有结果且状态码为200
{
document.getElementById("myDiv").innerHTML=xhr.response;
//将response的信息返回在HTML的myDiv中
}
}
//readystateshi1xhr对象中的属性,表示状态,0 1 2 3 4(4是成功)
每当 readyState 改变时,就会触发 onreadystatechange 事件。
属性
描述
onreadystatechange
存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
status
200: "OK" 404: 未找到页面
在以下情况中,请使用 POST 请求:
不愿使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
GET发送信息:
在URL后添加参数:用?分割,参数=值&参数=值;
POST发送信息:
添加HTTP头:xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");在send()中添加数据;
xmlhttp.open("POST","/try/ajax/demo_post2.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
xmlhttp.open("GET","/try/ajax/json_ajax.json",true);
xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xmlhttp.send();