DAY5刷面试题

今天本来有个面试…但是面试官参加管理层会议去了,我也不知道,就一个人干等了半个多小时(远程面试,但是我要去借教室QAQ)这件事告诉我,被鸽了也不要干等,搞点学习!!!
今天是CSS/HTML专场 0.0
在这里插入图片描述

行内元素、块级元素

行内元素(inline):
不能设置宽高,多个元素共享一行,占满换行。
a:超链接
i:文字倾斜
b:定义文字加粗
em:定义文字倾斜语义更加强调
span:定义文档中的节
mark:定义有记号的文本
code:定义计算机代码文本
input:
img:
textarea:
label:
select :

块级元素(block):
可以设置宽高,一个元素占满一行。
h1-h6
p:段落
div:文档中的节
ul:无序列表
ol:有序列表
li:列表里的项
hr:水平线
pre:预格式文本
form:表单
audio:声音内容
video:视频
nav:导航链接
table:表格

inline-block
可以设置宽高,多个元素共享一行,占满换行。

CSS盒子模型

1、盒模型:内容content、填充padding、边界margin、边框border
2、类型:IE盒子模型、标准W3C盒子模型
3、两个盒子区别:
标准盒模型的宽高是:内容的宽高content
IE盒模型的宽高是:content+padding+border
4、设置盒模型的方式:
标准盒模型:box-sizing:content-box
IE盒模型: box-sizing:border-box

CSS选择符优先级

1、优先级就近原则,同权重情况下样式定义最近者为准。
2、载入样式以最好载入的定位为准。
3、!important > 内联 > id > class > 标签|伪类|属性选择 > 伪对象 > 继承 > 通配符

优先级权重:
元素选择器:1
伪元素选择器:1
class选择器:10
伪元素选择器:10
属性选择器:10
id选择器:100
内联:1000

清除浮动的方式

1、为父元素添加overflow:hidden
超出部分的元素会被隐藏

<div style="overflow:hidden">
	<div></div>
	<div></div>
</div>

2、clear:both清除浮动,在浮动元素下方添加该属性可以破坏float的破坏性,但是会增加不必要的标签。

<div>
	<div></div>
	<div></div>
	<div style="clear:both"></div>
</div>

3、伪元素清除浮动
通过伪元素选择器在div后面添加一clear:both的属性。

<div class="clearfix">
	<div></div>
	<div></div>
</div>

.clearfix:after{
	content:'';
	display:block;
	clear:both;
}

给一个盒子水平垂直居中

1、定位

{
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
}

2、flex布局:给父盒子添加属性

{
	display:flex;
	justify-content:center;
	align-items:center;
}

3、给父盒子设置属性

{
	display:table-cell;
	text-align:center;
	vertical-align:middle;
}

什么是BFC

BFC:块格式化上下文。是一个独立渲染区域,不会影响到外部元素。
BFC特性:
同一个BFC下magrin会叠加。
计算BFC时会算上浮动元素。
BFC不会影响到外部元素。
BFC内部元素是垂直排列的。
BFC区域不会与float元素重叠。
如何创建BFC:
position设置为absolute或者fixed。
float不为none。
overflow设置为hidden。
display设置为inline-block或者inline-table或者flex

什么是HTML语义化标签

语义化标签旨在让标签有自己的含义。
p 标签与 span 标签都区别之一就是,p 标签的含义是:段落。而 span 标签责没有独特的含义。
优势:

代码结构清晰,方便阅读,有利于团队合作开发。
方便其他设备解析(如屏幕阅读器,盲人阅读器,移动设备)以语义化的方式来渲染页面。
有利于搜索引擎优化SEO

HTML5新增的内容

  1. HTML5 标准还在制定中
    HTML5虽然现在很火,但是HTML5标准还在制定中,标准仍在改变。

  2. 简化的语法
    HTML5简化了很多细微的语法,例如doctype的声明,你只需要写<!doctype html>就行了。HTML5与HTML5,XHTML1兼容,但是与SGML不兼容。

  3. <canvas>标签替代Flash
    Flash给很多Web开发者带来了麻烦,要在网页上播放Flash需要一堆代码和插件。<canvas>标签使得开发者只要使用一个标签就能和用户产生UI交互。虽然目前<canvas>标签还不能实现Flash的所有功能。

  4. 新增<header><footer>标签HTML5设计的一个原则是更好的体现网站的语义性,所以增加了<header><footer>这样的标签,用来明确表示网页的结构。

  5. 新增<section><article> 标签与<header>, <footer>类似,<section><article>也有利于清晰化网页的结构,更有利于SEO。

  6. 新增<menu><figure> 标签
    <menu>可以被用于创建传统的菜单,也可以用于工具栏和上下文菜单。
    <figure>标签使得网页文字和图片的排版更专业。

  7. 新增<audio><video>标签
    这两个标签可能是HTML5里面最有用的两个标签了。顾名思义,这两个标签是用来播放音频和视频的。

  8. 全新的表单
    HTML5对<form><forminput> 标签进行了大量修改,添加了很多新的属性,也修改了很多属性。

  9. 删除<b><font>标签
    我不认为删除这两个标签对代码的改进有很大的帮助。官方的解释是应该CSS来替代这两个标签。但我还是觉得对于简单的文本,这两个标签还是很方便的。

  10. 删除<frame> <center> <big>标签

position定位属性

relative:相对定位,不脱离文档流,相对于自身定位。
absolute:绝对定位,脱离文档流,相对于父级定位。
fixed:固定定位,脱离文档流,相对于浏览器窗口定位。
static:默认值,元素出现在正常流中。

first-of-type和first-child有什么区别

first-of-type:匹配的是从第一个子元素开始数,匹配到的第一个元素
first-child:必须是第一个子元素

img的title和alt的区别

title是gloab attributes之一,为元素提供附加的advisory information。通常当鼠标滑动到元素上的时候显示。
alt是img特有的属性,是图片内容的等价描述。用于图片无法加载时候的显示,读评阅读图片。提高图片可访问性,搜索引擎会重点分析。

src和href的区别

src用于替换当前元素;href用于在当前文档和引用资源之间确立联系;

  • src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在的位置;
  • href是Hypertext Reference的缩写,指向网络资源所在的位置,建立和当前元素(锚点)或当前文档之间的链接;

CSS中link和@import的区别是什么?

  • link属于HTML标签,@import是CSS提供的,只能加载CSS
  • 页面被加载时,link会同时被加载,@import引用的CSS会等页面被加载完再加载
  • @import只能在IE5以上才能被识别,link无兼容问题
  • link样式权重高于@import的权重
  • 当使用js控制DOM改变样式的时候,只能用link方式,因为@import只有CSS才能识别,DOM无法识别

CSS sprites原理、优缺点

css sprites其实就是把网页中的一些背景图片整合到一张图片文件中,在利用CSS的 background-image,background-repeat,background-position的组合进行背景定位,background-position可以用数字精确的定位出背景图片的位置。

优点:

  • 减少网页的http请求。减少图片的字节
  • 解决网页设计师在图片命名上的困扰,只需要对一张集合的图片上命名就可以了,不需要对每一个小元素进行命名
  • 更换风格方便,只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变了

缺点:

  • 在宽屏,高分辨率的屏幕下的自适应页面,如果背景图不够宽,很容易出现背景断裂
  • css sprites在开发的时候,需要通过Photoshop或其他工具测量计算每一个背景单元的精确位置
  • 在维护的时候比较麻烦,如果页面背景有少许改动,一般就要修改这张合并的图片

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

  • opacity作用于元素,以及元素内的所有内容的透明度。
  • rgba()只作用于元素的颜色或者背景颜色,设置rgba透明的元素的子元素不会继承透明效果。

CSS样式表的继承

文本相关: font-family,font-size,font-style,font-variant,font-weight, font,letter-spacing,line-height,color;
列表相关:list-style-image,list-style-position,list-style-type,list-style;

script标签中defer和async都表示了什么

默认情况下,浏览器是同步加载 JavaScript 脚本,即渲染引擎遇到<script>标签就会停下来,等到执行完脚本,再继续向下渲染。如果是外部脚本,还必须加入脚本下载的时间。

如果脚本体积很大,下载和执行的时间就会很长,因此造成浏览器堵塞,用户会感觉到浏览器“卡死”了,没有任何响应。这显然是很不好的体验,所以浏览器允许脚本异步加载。

<script src="path/to/myModule.js" defer></script>
<script src="path/to/myModule.js" async></script>

<script>标签打开defer或async属性,脚本就会异步加载。渲染引擎遇到这一行命令,就会开始下载外部脚本,但不会等它下载和执行,而是直接执行后面的命令。

defer要等到整个页面在内存中正常渲染结束(DOM 结构完全生成,以及其他脚本执行完成),才会执行;
async一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染。
如果有多个defer脚本,会按照它们在页面出现的顺序加载,而多个async脚本是不能保证加载顺序的。

px、em、rem、vw、vh、rpx单位

px 像素
em 当前元素字体大小
rem 根元素字体大小
vw 100vw总宽度
vh 100vh总高度
rpx 750是总宽度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值