发表于: 2022-11-15 21:39:28
0 806
4.知道css有个content属性吗?有什么作用?有什么应用?
4.知道css有个content属性吗?有什么作用?有什么应用?
content属性早在CSS2.1的时候就被引入了,可以使用:before以及:after伪元素生成内容。此特性目前已被所有主流浏览器支持。
在CSS 3 Generated Content工作草案中,content属性添加了更多的特征,
例如:插入以及移除文档内容的能力,以创建脚注,结语,及段落注释。但是目前还没有浏览器支持content的扩展功能。
CSS 的 content 属性就用于替换内容,也可以说,content 属性决定了是替换元素还是非替换元素。
content的意思顾名思义,是“内容”,它的作用就是在css中直接生成网页显示的 内容, 这个属性要结合:before和:after这俩个伪类属性来使用。
before和after是什么呢?
before和:after的作用就是在指定的元素内容(而不是元素本身)之前或者之后插入一个包含content属性指定内容的行内元素.
需要注意的是如果没有content属性,伪类元素将没有任何作用。但是可以指定content为空,插入的内容默认是一个行内元素,
并且在HTML源代码中无法看到,这就是为什么称之为伪类元素的理由,所以也就无法通过DOM对其进行操作。
伪类元素也会像其他子元素一样正常继承父元素的一些CSS属性,比如字体等
<style>
h1:after{
content: "这里是插入内容";
}
</style>
<body><h1>11111</h1>
</body>
5.知道什么是微格式吗?谈谈理解。在前端构建中应该考虑微格式吗?
所谓微格式,是建立在已有的、被广泛采用的标准基础之上的一组简单的、开放的数据格式。
具体表现是把语义嵌入到 HTML 中,以便有助于分离式开发,
并通过制定一些简单的约定,来兼顾 HTML 文档的人机可读性,相当于对 Web 网页进行了语义注解。
所谓微格式,是建立在已有的、被广泛采用的标准基础之上的一组简单的、开放的数据格式。
具体表现是把语义嵌入到 HTML 中,以便有助于分离式开发,并通过制定一些简单的约定,来兼顾 HTML 文档的人机可读性,
相当于对 Web 网页进行了语义注解。
采用微格式的 Web 页面,在 HTML 文档中给一些标签增加一些属性,这些属性对信息的语义结构进行注解,有助于处理 HTML 文档的软件,
更好的理解该 HTML 文档。
在前端构建中微格式的意义
微格式按照某种已有的被广泛应用的标准,通过对内容块的语义标记,可以让外部应用程序、聚合程序和搜索引擎能够做以下事情:
在爬取 Web 内容时,能够更为准确地识别内容块的语义;
对内容进行操作,包括提供访问、校对,还可以将其转化成其他的相关格式,提供给外部程序和Web服务使用。
总结: 微格式可以对网站进行 SEO 优化,如果需要可以考虑。
6.HTML5的离线储存怎么使用?
HTML5提供了很多新的功能以及相应的接口,离线存储就是其中的一个,离线存储可以将站点的一些文件存储在本地,
在没有网络的时候还是可以访问到以缓存的对应的站点页面,其中这些文件可以包括html,js,css等等文件,
但其实即使在有网络的时候,浏览器也会优先使用已离线存储的文件,返回一个200(from cache)头。这跟HTTP的缓存使用策略是不同的。
它是浏览器自己的一种机制,随着移动互联网时代的到来,网络可靠性降低,如果我们已经将需要的文件缓存下下来,一旦网络无法访问,也能继续访问。
而且做好相应资源的缓存可以带来更好的用户体验,当用户使用自己的流量上网时,本地缓存不仅可以提高用户访问速度,而且大大节约用户的使用流量。
HTML5的离线存储是基于一个新建的.manifest文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,
这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示
Manifest是一个简单的 文本文件,它的扩展名是任意的,定义需要缓存的文件、资源,当第一次打开时,浏览器会自动缓存相应的资源。
Manifest 的特点:
离线浏览:即当网络断开时,可以继续访问你的页面。
访问速度快:将文件缓存到本地,不需每次都从网络上请求。
稳定性:做了Manifest缓存,遇到突发网络故障或者服务器故障,继续访问本地缓存
7.渐进增强和优雅降级之间有什么不同?
什么是渐进增强(progressive enhancement)、优雅降级(graceful degradation)呢?
渐进增强(progressive enhancement):针对低版本浏览器进行构建页面,保证最基本的功能,
然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。
(从被所有浏览器支持的基本功能开始,逐步地添加那些只有新式浏览器才支持的功能,向页面添加无害于基础浏览器的额外样式和功能。
当浏览器支持时,它们会自动地呈现出来并发挥作用。)
优雅降级(graceful degradation):一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。
(Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。
由于IE独特的盒模型布局问题,针对不同版本的IE的hack实践过优雅降级了,为那些无法支持功能的浏览器增加候选方案,
使之在旧式浏览器上以某种形式降级体验却不至于完全失效。)
区别:
优雅降级是从复杂的现状开始,并试图减少用户体验的供给。
而渐进增强则是从一个非常基础的、能够起作用的版本开始,并不断扩充,以适应未来环境的需要。
渐进增强观点:
渐进增强观点认为应该关注于内容本身。内容是我们建立网站的诱因,有的网站展示它,有的则收集它,有的寻求、有的操作,
还有的网站甚至包含以上的种种,但相同点是他们全都涉及到内容,这使得“渐进增强”成为一种更为合理的设计范例。
这也是它立即被Yahoo!所采纳并用以构建其“分级式浏览器支持(Graded Browser Support)“策略的原因所在。
优雅降级观点:
优雅降级观点认为应该针对那些最高级、最完善的浏览器来设计网站。
而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段,
并把测试对象限定为主流浏览器(如IE、Mozilla等)的前一个版本。
在这种设计范例下,旧版的浏览器被认为仅能提供“简陋却无妨(poor,but passable)”的浏览体验。
你可以做一些小的调整来适应某个特定的浏览器。但由于它们并非我们所关注的焦点,因此除了修复较大的错误之外,其它的差异将被直接忽略。
8.Quirks模式是什么?它和Standards模式有什么区别?
什么是 Quirks Mode? 简单来说,Quirks Mode 就是浏览器为了兼容很早之前针对旧版本浏览器设计,
并未严格遵循 W3C 标准的网页而产生的一种页面渲染模式
Quirks Mode是一种浏览器(像IE,Firefox,Opera)操作模式。
从根本上说,怪异模式(也称之为兼容模式)意味着一个相对新的浏览器故意模拟许多在旧浏览器中存在的bug,特别是在IE4和IE5中。
Quirks Mode是由文档类型探查法触发。也就是大家熟知的文档类型切换。这意味着浏览器检查一个HTML文档的开始,
看它是否包含一个HTML规范所要求的文档类型声明。
Quirks Mode的目标是使旧页面显示出他们的作者想要的那样。旧页面可能利用旧浏览器已知的特性写成,或者至少是适应旧浏览器。
Quirks Mode是什么没有权威的规范。毕竟,实质上Quirk Mode是一个故意违反CSS和HTML的规
现代浏览器在Quirks Mode下,页面会发生哪些变化,怎么样去避免?
1.在Quirks Mode下,为body设置一个margin是无效的。
2.默认情况下,IE有一个垂直滚动条,尽管当没有东西可以滚动的时候,
它是非活动状态(迟钝状态),在Quirks Mode下,你可以通过设置body { overflow: auto;}删除它(当不需要它的时候),
但是在标准模式下,你仍然需要增加html { overflow: auto;}。
3.默认的浮动图片的水平margin是3像素(而不是0)。
4.在CSS中,使用margin: 0 auto使一个块居中是无效的。;
5.字体属性不会从body或其他封闭元素继承到table中。特别是font-size。字体,颜色,行高也都有可能。
9.经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用hack的技巧 ?
浏览器兼容性问题
出现浏览器兼容性问题的主要原因,是不同浏览器对同一段代码的有不同解析,造成的页面显示效果不统一。
在大多数情况下,我们的需求是,无论用户在什么浏览器上查看我们的网站或登录我们的系统,显示效果都应该是一致的。
所以浏览器兼容性问题是我们web前端开发人员经常会碰到和必须解决的问题。
什么是css hack
不同的浏览器对CSS的解析结果是不同的,因此会导致相同的CSS输出的页面效果不同,这就需要CSS Hack来解决浏览器局部的兼容性问题。
而这个针对不同的浏览器写不同的CSS 代码的过程,就叫CSS Hack。
10.描述一个你在实际使用中有用过什么比较好的布局方式(不拘泥于页面整体布局,页面中某一小版块也行),深入讲解下其中的原理?
就拿响应式布局来说,pc站当然是把所有能呈现的东西都呈现出来,而且一般整体是纵向布局,局部用横向布局(float较多)。
到了平板电脑,基本上和pc的布局也是差不多的。到了手机,才开始有了很大的变化,整体依然是纵向布局,
但是横向布局却变得越来越少,因为手机能呈现在一屏的内容确实是少之又少,而且还要考虑到分辨率大小的问题,
所以一般都是不用float布局,把最重要的功能呈现出来,没有pc里面那么多的效果。
左侧固定宽度,右侧自适应 给父盒子设置高度和左内边距如200px 给左侧子盒子设置设置高度和左外边距-200px,
设置float:left,设置宽度为200px 右侧子盒子设置高度
左侧固定宽度,右侧自适应 给父盒子设置高度和左内边距如200px 给左侧子盒子设置设置高度和左外边距-200px,
设置float:left,设置宽度为200px 右侧子盒子设置高度
部分js练习:
<!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>js练习</title>
<!-- 内嵌式的js-->
<script>
// var num = 10;
// var a = 0;
// for ( var i = 1; 1<=100; i++) {
// num = num + i;
// }
// console.log(num);
// a = num / 100;
// console.log(a);
// var num = prompt('请输入学生人数');
// var sum = 0;
// var average = 0;
// for ( var i = 1; i <= num; i++) {
// var a = prompt('请输入第' + i + '个学生成绩');
// //因为从来prompt转化过来的数据是字符串型,需要转化成字符型所以需要parseFloat转化
// sum = sum + parseFloat(a);
// }
// average = sum / num;
// alert('班级总成绩是:' + sum);
// alert('班级平均成绩是:' + average);
// var str = '';
// for (var i = 1; i <=5; i++) {
// str = str + '★';
// }
// console.log(str);
var num = prompt('请输入小星星数量');
var str = '';
for (var i = 1 ; i <= num; i++) {
for (var j = 1; j <=5; j++) {
str = str + '★';
}
str = str +'\n';
}
console.log(str);
</script>
</head>
<body>
<!-- 行内式的js 直接写到元素的内部 -->
<!-- onclick是点击的意思 alert是弹出框的意思 -->
<!-- <input type="button" value="唐伯虎" onclick="alert('秋香')">-->
</body>
</html>
明天计划:完成接下来的任务。
评论