python闯关之路(五)前端开发

一,HTML部分

1,XHTML和HTML有什么区别

HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言最主要的不同: 

XHTML 元素必须被正确地嵌套。 

XHTML 元素必须被关闭。 

标签名必须用小写字母。 

XHTML 文档必须拥有根元素。

  

2,前端页面有哪几层构成,分别是什么?作用是什么?

1, 结构层 Html(页面结构内容,骨架) 表示层 

2, CSS(网页的样式和外观) 

3, js(实现网页的交互,动画效果)

  

3,请描述一下 cookies,sessionStorage 和 localStorage 的区别?

cookie在浏览器和服务器间来回传递。 
sessionStorage和localStorage不会 

sessionStorage和localStorage的存储空间更大; 
sessionStorage和localStorage有更多丰富易用的接口; 
sessionStorage和localStorage各自独立的存储空间;

  

4,form表单中input标签的readonly和disabled属性有何区别?

readonly=“readonly”是只读,不可以修改, 
disabled=“disabled”是禁用,整个文本框是显示灰色状态 
form 中method是数据传递的方式,action是与后台数据库提交的

  

5,内联标签有哪些?块级标签有哪些?

行内标签:a b img em br i span input select 

块级标签:div p h1-h6 form ul dl ol table

  

6,内联标签和块级标签有什么区别?

内联标签不可以设置宽高,不独占一行; 

块级标签可以设置宽高,独占一行。

  

块级元素 行内元素
独占一行,默认情况下,其宽度自动填满其父元素宽度 相邻的行内元素会排列在同一行里,直到一行排不下,才会换行,其宽度随元素的内容而变化
可以设置width,height属性 行内元素设置width,height属性无效
可以设置margin和padding属性 行内元素起边距作用的只有margin-left、margin-right、padding-left、padding-right,其它属性不会起边距效果。
对应于display:block 对应于display:inline;

7,简述form标签的功能和属性?

功能:表单用于向服务器传输数据,从而实现用户与Web服务器的交互 属性:

 1,action: 表单提交到哪.一般指向服务器端一个程序,程序接收到表单提交过
来的数据(即表单元素值)作相应处理;

 2,method: 表单的提交方式 post/get默认取值就是get。

  

8,图形标签是什么,它的主要属性有哪些?

标签 主要属性: 
src: 要显示图片的路径. 
alt: 图片没有加载成功时的提示.
title: 鼠标悬浮时的提示信息. 
width: 图片的宽 
height:图片的高 (宽高两个属性只用一个会自动等比缩放.)

  

9,input标签都有哪些类型?

type: text 文本输入框 
password 密码输入框 
radio 单选框 
checkbox 多选框 
submit 提交按钮 
button 按钮(需要配合js使用.) 
file 提交文件

  

10,input标签都有哪些属性?

name:表单提交项的键 
value:表单提交项的值.对于不同的输入类型,
value 属性的用法也不同 
checked:radio 和 checkbox 默认被选中 
readonly:只读. text 和 password 
disabled:对所用input都好使

  

11,src和href的区别?

src指向外部资源的位置, 用于替换当前元素, 比如js脚本, 图片等元素

href指向网络资源所在的位置, 用于在当前文档和引用资源间确定联系, 加载css

  

12,选择器中 id,class有什么区别?

在网页中 每个id名称只能用一次,class可以允许重复使用

 

13,两种=HTTP方法:get和post的区别

python闯关之路(五)前端开发_第1张图片

 

二,CSS部分

1,css的基本语法?

由两个主要的部分构成:选择器,以及一条或多条声明

  

2,css的引入方式有哪些?

1.内嵌式 

我是h1战争热诚

2.内链式 3.外链式 链接式: 4.导入式:

  

3,css的选择器有哪些?

1,基本选择器 通配符选择器 标签选择器 id选择器 类选择器 

2,组合选择器 子代选择器 后代选择器 群组选择器 交集选择器 毗邻选择器 兄弟选择器 

3,属性选择器

  

4,css伪类的作用?

CSS伪类是用来添加一些选择器的特殊效果。
a:link{ background-color: blue;} 超链接 未被访问时的状态 

a:hover{ color: green;} 鼠标悬停时的状态 

a:visited{ color: yellow;} 鼠标单击时的状态 

a:active{ color:blue;} 鼠标不松手的状态 

input:focus{ background-color:red;} 获取焦点时的状态

  

5,什么是css优先级,其基本规则是什么?

CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序。 

基本规则: 行内样式 > 内部样式表 > 外部样式表 ID选择器 > 类选择器 > 标签选择器

  

6,CSS隐藏元素的几种方法(至少说出三种)

1,Opacity:元素本身依然占据它自己的位置并对网页的布局起作用。它也将响应用户交互; 

2,Visibility:与 opacity 唯一不同的是它不会响应任何用户交互。此外,元素在读屏软件
中也会被隐藏; 

3,Display:display 设为 none 任何对该元素直接打用户交互操作都不可能生效。此外,
读屏软件也不会读到元素的内容。这种方式产生的效果就像元素完全不存在; 

4,Position:不会影响布局,能让元素保持可以操作; 

5,Clip-path:clip-path 属性还没有在 IE 或者 Edge 下被完全支持。如果要在你的
 clip-path 中使用外部的 SVG 文件,浏览器支持度还要低;

  

7,CSS清除浮动的几种方法(至少两种)

1,给父元素添加overflow:hidden (推荐使用)
.wrap{ overflow:hidden;}

2.:after伪元素; (官方推荐)
.wrap:after{
content:"";
clear:both;
display:block;
height:0;
visibility:hidden;
}

3.给父盒子设定固定高度;缺点:不灵活;

4.给浮动元素最后一个加一个空的块级元素,且该元素为不浮动float:none,
设置clear:both,就会撑开盒子。
缺点:结构冗余

  

8,页面导入样式时,使用link和@import有什么区别?

 
 

1,link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;
而@import是CSS提供的,只能用于加载CSS; 

2,页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;

3,import是CSS2.1提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;

  

9,介绍一下CSS的盒子模型?

有两种, 
IE 盒子模型和标准 W3C 盒子模型; IE的content部分包含了 border 和 pading; 
盒模型: 内容(content)、填充(padding)、边界(margin)、 边框(border)

  

10,display:none和visibility:hidden的区别是什么?

visibility:hidden----将元素隐藏,但是还占着位置 

display:none----将元素的显示设为无,不占任何的位置

  

11,设置一个div的最小宽度为100像素,最大高度为50像素

min-width:100px; max-height:50px;

  

12,在编写css样式的时候,如果想要设置标记容器和主容器之间的补白,用什么来表示?

marker-offset

  

13,CSS属性是否区分大小写?

不区分。(HTML, CSS都不区分,但为了更好的可读性和团队协作,一般都小写,
而在XHTML 中元素名称和属性是必须小写的。)

  

14,对行内元素设置margin-top 和margin-bottom是否起作用?

不起作用。(需要注意行内元素的替换元素img、input,他们是行内元素,
但是可以为其设置宽高,并且margin属性也是对其起作用的,有着类似
于Inline-block的行为) img input 行内块元素 可以设置;

  

15,对内联元素设置padding-top和padding-bottom是否会增加它的高度?

不会。同上题,要注意行内元素的替换元素,img设置padding-top/bottom是会起作用的。

  

16,screen关键词是指设备的物理屏幕大小还是指浏览器的视窗。

浏览器的视窗

  

17,rgba()和opacity的透明效果有什么不同?

rgba()和opacity都能实现透明效果,但最大的不同是opacity作用于元素,
以及元素内的所有内容的透明度, 
而rgba()只作用于元素的颜色或其背景色。(设置rgba透明的元素的子元素不会继承透明效果!)

  

18,css中可以让文字在垂直和水平方向上重叠的两个属性是什么?

垂直方向:line-height 
水平方向:letter-spacing

  

19,关于letter-spacing的妙用知道吗?

可以用于消除inline-block元素间的换行符空格间隙问题。

  

20,px和em的区别?

px和em都是长度单位,
区别是,px的值是固定的,指定是多少就是多少,计算比较容易。
           em的值不是固定的,并且em会继承父级元素的字体大小。 

浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 
1em=16px。那么12px=0.75em, 10px=0.625em

  

21,知道css有个content属性吗?有什么作用?有什么应用?

css的content属性专门应用在 before/after 伪元素上,用于来插入生成内容。 
最常见的应用是利用伪类清除浮动。

  

22,简述css动画的优缺点?

优点: 1.在性能上会稍微好一些,浏览器会对CSS3的动画做一些优化(比如专门新建一个图层用来跑动画) 
2.代码相对简单 

缺点: 1.在动画控制上不够灵活 
2.兼容性不好 
3.部分动画功能无法实现(如滚动动画,视差滚动等)

  

三,JavaScript部分

1,js的引入方式有哪些?

1,直接编写 
2,导入文件

  

2,如何在js中定义使用变量?

1,声明变量时不用声明变量类型. 全都使用var关键字 

2,一行可以声明多个变量.并且可以是不同类型 

3,声明变量时 可以不用var. 如果不用var 那么它是全局变量 

4,变量命名,首字符只能是字母,下划线,$美元符 三选一,余下的字符
可以是下划线、美元符号或任何字母或数字字符且区分大小写,x与X是两个变量

  

3,js的基本数据类型有哪些?

1,数字类型(number) 
2,字符串类型(string) 
3,布尔类型(boolean) 
4,Null类型 
5,Undefined类型

  

4,Null和Undefined的区别?

null是一个表示”无”的对象,转为数值时为0; 

undefined是一个表示”无”的原始值,转为数值时为NaN

  

5,js有哪些运算符?

1,算术运算符(+ - * / % ++ -- ) 
2,比较运算符(> >= < <= != == === !==) 
3,逻辑运算符(&& || !) 
4,赋值运算符(= += -= *= /=) 
5,字符串运算符(+ 连接,两边操作数有一个或两个是字符串就做连接运算)

  

6,js的typeof返回哪些数据类型?

number string Object function boolean underfind

  

7,分别解释数组方法pop()、push()、unshift()、shift()的功能?

shift()头部删除 pop()尾部删除
Unshift()头部添加 push()尾部添加

  

8,ajax请求的时候get 和post方式的区别?

GET方式参数放在url后面 
POST放在虚拟载体里面有大小限制 

安全问题应用不同一个是论坛等只需要请求的,一个是类似修改密码的

  

9,ajax请求时,如何解释json数据?

使用eval parse,鉴于安全性考虑 使用parse更靠谱

  

10,事件委托是什么?

事件代理: 自己完成不了当前的点击事件,交给父级元素做这件事件 

$('ul).on('click','.btn',function(){})

 让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行

  

11,添加 删除 替换 插入到某个节点的方法分别是什么?

添加:obj.appendChild() 
删除:obj.removeChild() 
替换:obj.replaceChild() 
插入:obj.insertBefore()

  

12,简述一下什么是javascript的同源策略?

一段脚本只能读取来自于同一来源的窗口和文档的属性,
这里的同一来源指的是主机名、协议和端口号的组合

  

13,简述一下对This对象的理解。

    this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。
但是有一个总原则,那就是this指的是调用函数的那个对象。 this一般情
况下:是全局对象Global。 作为方法调用,那么this就是指这个对象

  

14,编写一个b继承a的方法

function A(name){ 
    this.name = name; 
    this.sayHello = function(){alert(this.name+” say Hello!”);}; 
} 

function B(name,id){ 
    this.temp = A; this.temp(name); //相当于new A(); 
    delete this.temp; 
    this.id = id; 
    this.checkId = function(ID){alert(this.id==ID)}; 
}

  

15,如何阻止事件冒泡和默认事件

function stopBubble(e){ 
if (e && e.stopPropagation)
    e.stopPropagation() 
else 
    window.event.cancelBubble=true 
}
     return false 
$(function(ev){ 
    //1.阻止事件冒泡 
    ev.stopPropagation() 
    //2.阻止默认事件 
    eg:href submit ev.preventDefault(); 
    //阻止了冒泡和默认 
    return false; 
});

  

16,浏览器端的js包括哪几个部分?

核心( ECMAScript) , 文档对象模型(DOM), 浏览器对象模型(BOM)

  

17,js动画有哪些实现方法?

用定时器 setTimeout执行一次和setInterval

  

18,js动画的优缺点?

优点: 
1.控制能力很强,可以单帧的控制、变换 
2.兼容性好,写得好完全可以兼容IE6,且功能强大。 

缺点:     
计算没有css快,另外经常需要依赖其他的库。

  

19,跨域的几种方式?

jsonp(利用script标签的跨域能力)跨域、 
websocket(html5的新特性,是一种新协议)跨域、 
设置代理服务器(由服务器替我们向不同源的服务器请求数据)、 
CORS(跨源资源共享,cross origin resource sharing)、
 iframe跨域、
postMessage(包含iframe的页面向iframe传递消息)

  

20,3 + 2 +“7”的结果是什么?

由于3和2是整数,它们将直接相加。由于7是一个字符串,它将会被直接连接,所以结果将是57。

  

四,jQuery部分

1,jQuery是什么?

jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocuments、
events、实现动画效果,并且方便地为网站提供AJAX交互

  

2,jQuery的优势是什么?

它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择

  

3,什么是jQuery对象?

jQuery 对象就是通过jQuery包装DOM对象后产生的对象。
jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 
那么它就可以使用 jQuery 里的方法: $(“#test”).html()

  

 

4,jQuery都有哪些选择器?

1.基础选择器
id选择器 $('#brother').css('color','red');
标签选择器 $('a').css({'color':'green','font-size':'24px'});
类选择器 $('.li3').css('background','yellow');
通配符选择器 console.log($(''));
$('').html(''); // 清空整个界面的dom元素

2.层级选择器
后代选择器 $('#box p').css('color','red');
子代选择器 $('#box>p').css('color','green');
毗邻选择器,匹配所有的紧接着选中元素的兄弟 $('#father+p').css('font-size','30px');
兄弟选择器 $('#father~p').css('background','gray');

3.过滤选择器
获取第一个 $('li:first').css('background','gray');
获取最后一个 $('li:last').css('background','yellow');
获取奇数 $('li:odd').css('color','red');
获取偶数 $('li:even').css('color','green');
选中索引值为1 $('li:eq(1)').css('font-size','32px');
大于索引值1 $('li:gt(1)').css('font-size','60px');
小于索引值1 $('li:lt(1)').css('font-size','10px');

4.属性选择器
$('li[id]').css('color','red');
$('li[class=what]').css('font-size','30px');
$('li[class!=what]').css('font-size','50px');
$('input[name^=username]').css('background','gray');
$('input[name$=222]').css('background','green');
$('button[class*=danger]').css('background','orange');

解释: 标签名[属性名],查找所有含有id属性的该标签名的元素 匹配给
定的属性 是what值 [attr=value] 匹配给定的属性是某个特定值的元素 
没有class 也会发生变化,[attr!=value] 匹配所有不含有指定的属性,
或者属性不等于特定值的元素 匹配给定的属性是以某些值开始的元素 ^ 
匹配给定的属性是以某些值结尾的元素 $      匹配给定的属性是以包含某些值的元素 *

5.筛选选择器
$('span').eq(1).css('color','red');
$('span').first().css('font-size','28px');
$('span').last().css('color','greenyellow');
console.log($('span').parent());
$('span').parent('.p1').css({'width':'300px',height:'400px','background':'red'});
$('.list').siblings('li').css('color','red');
$('div').find('button').css('background','gray');

解释: 获取第n个元素 数值从0开始 .eq() 获取第一个元素 .first() 获取最后
一个元素 .last() 获取父亲元素 .parent() 选择所有的兄弟元素 .siblings() 
查找所有的后代元素 .find()

  

 

5,简述一下jQuery的筛选器的分类,分别简单举例介绍一下。

过滤筛选器 如:$("li").eq(2) $("li").first() $("ul li").hasclass("test") 

查找筛选器 如: 查找子标签: $("div").children(".test") $("div").find(".test") 

向下查找兄弟标签: $(".test").next() $(".test").nextAll() $(".test").nextUntil() 

向上查找兄弟标签: $("div").prev() $("div").prevAll() $("div").prevUntil()

查找所有兄弟标签: $("div").siblings() 

查找父标签: $(".test").parent() $(".test").parents() $(".test").parentUntil()

  

6,jQuery的美元符号$有什么作用?

其实美元符号$只是”jQuery”的别名,它是jQuery的选择器

  

7,body中的onload()函数和jQuery中的document.ready()有什么区别?

1,我们可以在页面中使用多个document.ready(),但只能使用一次onload()。

 2,document.ready()函数在页面DOM元素加载完以后就会被调用,而onload()
函数则要在所有的关联资源(包括图像、音频)加载完毕后才会调用。

  

 8,jQuery中的Delegate()函数有什么作用?

1,如果你有一个父元素,需要给其下的子元素添加事件,
这时你可以使用delegate()了,代码如下:

$("ul").delegate("li", "click", function(){
$(this).hide();
});

2,当元素在当前页面中不可用时,可以使用delegate()

//事件代理: 自己完成不了当前的点击事件,交给父级元素做这件事件
// 事件代理
$('ul').on('click','.name,.luffy',function () {
console.log($(this));
});

  

9,请用jQuery实现,在一个表单中,如果将所有的div元素都设置为绿色。

$(“div”).css(“color”,”green”)

  

10,jQuery中的hover()和toggle()有什么区别?

hover()和toggle()都是jQuery中两个合成事件。 
hover()方法用于模拟光标悬停事件。
toggle()方法是连续点击事件。

  

11,jquery表单提交前有几种校验方法?分别为?

formData:返回一个数组,可以通过循环调用来校验 
jaForm:返回一个jQuery对象,所有需要先转换成dom对象 
fieldValue:返回一个数组 beforeSend()

  

12,$(this) 和 this 关键字在 jQuery 中有何不同?

$(this) 返回一个 jQuery 对象,你可以对它调用多个 jQuery 方法,
比如用 text() 获取文本,用val() 获取值等等

this 代表当前元素,它是 JavaScript 关键词中的一个,表示上下文中的当前 DOM 元素。
你不能对它调用 jQuery 方法,直到它被 $() 函数包裹,例如 $(this)

 

  

13,jQuery中 detach() 和 remove() 方法的区别是什么?

detach() 和 remove() 方法都被用来移除一个DOM元素, 
两者之间的主要不同在于 
detach() 会保持对过去被解除元素的跟踪, 因此它可以被取消解除, 
而 remove() 方法则会保持过去被移除对象的引用. 

你也还可以看看 用来向DOM中添加元素的 appendTo() 方法

 var a = $('button').remove(); 
console.log(a[0],a[1]); 
$('ul').append(a[0]); // 事件没了 

var b = $('button').detach(); 
console.log(b[0]); 
$('ul').append(b[0]); // 事件会保留

 

  

 14,你要是在一个 jQuery 事件处理程序里返回了 false 会怎样?

这通常用于阻止事件向上冒泡。

  

15,如何在点击一个按钮时使用 jQuery 隐藏一个图片?

$('#ButtonToClick').click(function(){ 
    $('#ImageToHide').hide(); 
});

 

  

 16,jQuery.get() 和 jQuery.ajax()方法之间的区别是什么?

    ajax() 方法更强大,更具可配置性, 让你可以指定等待多久,以及如何处理错误。
get() 方法是一个只获取一些数据的专门化方法。

  

17,用jQuery如何将一个 HTML 元素添加到 DOM 树中的?

通过appendTo() 方法在指定的 DOM 元素末尾添加一个现存的元素或者一个新的 HTML 元素。

$('zhanzhengrecheng').appendTo($('ul')); 
    append appendTo 
    prepend prependTo 
    before  insertBefore after insertAfter 
    clone replaceWith replaceAll 
    empty remove detach

 

  

18,如何找到所有 HTML select 标签的选中项?

$('[name=NameOfSelectedTag] :selected') 

    这段代码结合使用了属性选择器和 :selected 选择器,结果只返回被选中的选项。
你可按需修改它,比如用 id 属性而不是 name 属性来获取