牛客 错题整理1

关于表单的 select option错误原题链接
MDN参考
果然还是学好英文重要,很多文档英文原版是很健全的,翻译成中文要么不全面要么不太能表达清楚意思。

原题

如何获取下面表单 select

<form name="a">
	<select name="a" size="1" id=”obj”>
		<option value="a">1</option>
		<option value="b">2</option>
		<option value="c">3</option>
	</select>
</form> 

域的选择部分的文本?()

注意审题 是选择文本,而不是获取option里面的value

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>Document</title>
    </head>
    <body>
        <form name="a">
            <select name="a" size="1" id="obj">
                <option value="a">1</option>
                <option value="b">2</option>
                <option value="c">3</option>
            </select>
        </form>
        <script>
            window.onload = function() {
                // var obj = document.getElementById("obj");
                // console.log(obj)
                // var options = document.getElementsByTagName("option")
                console.log(obj.options[obj.selectedIndex].value);
                console.log(obj.options[obj.selectedIndex].text);
            };
            window.addEventListener("click", function() {
                console.log(obj.options[obj.selectedIndex].value);
                console.log(obj.options[obj.selectedIndex].text);
            });
        </script>
    </body>
</html>

注意这里的id值obj 和 options(所有option的集合吧)不用通过dom元素去获取 是直接可以拿到的。

2.下面关于块内声明函数的做法哪些是正确的?

正确答案: B 你的答案: C (错误)
if (x) { function foo() {}}
if (x) { var foo = function() {}}
if (x) { foo = function() {}}
ECMAScript明确的规范了块内函数,javascript实现了这个规范

不要在块内声明一个函数(严格模式会报语法错误)。
如果确实需要在块中定义函数,可以使用函数表达式来声明函数。
A:函数声明的形式定义函数有声明提升的特性,也就是不论是否进入if(x),foo都定义了
C:函数表达式形式,foo前无var,所以foo为全局变量

CSS Sprites
1.简介
CSS Sprites在国内很多人叫css精灵,是一种网页图片应用处理方式。它允许将一个页面涉及到的所有零星图片都包含到一张大图中, 利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位, 访问页面时避免图片载入缓慢的现象。
2.优点
(1)CSS Sprites能很好地减少网页的http请求,从而大大的提高页面的性能,这是CSS Sprites最大的优点,也是其被广泛传播和应用的主要原因;
(2)CSS Sprites能减少图片的字节;
(3)CSS Sprites解决了网页设计师在图片命名上的困扰,只需对一张集合的图片命名,不需要对每一个小图片进行命名,从而提高了网页制作效率。
(4)CSS Sprites只需要修改一张或少张图片的颜色或样式来改变整个网页的风格。
3.缺点
(1)图片合并麻烦:图片合并时,需要把多张图片有序的合理的合并成一张图片,并留好足够的空间防止版块出现不必要的背景。
(2)图片适应性差:在高分辨的屏幕下自适应页面,若图片不够宽会出现背景断裂。
(3)图片定位繁琐:开发时需要通过工具测量计算每个背景单元的精确位置。
(4)可维护性差:页面背景需要少许改动,可能要修改部分或整张已合并的图片,进而要改动css。在避免改动图片的前提下,又只能(最好)往下追加图片,但这样增加了图片字节。

3.有一段python的编码程序如下:urllib.quote(line.decode(“gbk”).encode(“utf-16”)),请问经过该编码的字符串的解码顺序是( )

字符串编译的过程:gbk==>unicode==>utf16==>url解码
字符串解码顺序为:url解码==>utf16==>unicode==>gbk

问题:span标签的width和height分别为多少?

<div style="width:400px;height:200px;">
            <span style="float:left;width:auto;height:100%;">
                <i
                    style="position:absolute;float:left;width:100px;height:50px;"
                    >hello</i
                >
            </span>
        </div>

正确答案 width = 0px,height = 200px
这题考点其实有几个:
1.span标签是无法设置宽高的;
2.float会把浮动元素变成块级元素;
3.绝对定位脱离了文档流
首先span不是块级元素,是不支持宽高的,但是style中有了个float:left;就使得span变成了块级元素支持宽高,height:100%;即为,200,宽度由内容撑开。
但是内容中的 i 是绝对定位,脱离了文档流,所以不占父级空间,所以span的width=0
在这里插入图片描述
注意这里的span的width设置的是auto 所以宽度由内容撑起,如果设成100%,则继承父级宽度。
如果去掉i标签的绝对定位 则span的宽度会变为100px 由i元素撑起。

<img src=”” onerror=”alert(1)/>

onerror 事件 当图片不存在时,将触发;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值