面试答案

1.css盒子模型

2.子元素宽高固定,css水平居中

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#parent {
background: gray;
400px;
height: 400px;
display: flex;
 
}
#children {
background: red;
200px;
height:200px;
margin: auto;
}
</style>
</head>
<body>
<div id="parent">
<div id="children"居中吧居中吧></div>
</div>
</body>
</html>
一、子元素设置 margin-left:auto;margin-right:auto;
#children{
background: red;
200px;
height:200px;
margin-left:auto;
margin-right:auto;
}
二、子元素设置 position: absolute和margin负值
#children {
background: red;
200px;
height: 200px;
position: absolute;//父元素设置position:relative
left: 50%;
margin-left: -100px;
}
三、子元素设置position: absolute和margin:auto
#children {
background: red;
position: absolute;//注意父元素要加position:relative
200px;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
}
四、子元素position: absolute和transform: translateX(-50%);
#children {
background: red;
200px;
height: 200px;
position: absolute;//父元素设置position:relative
left: 50%;
transform: translateX(-50%);
}
五、父元素设置dispaly:flex
#parent {
background: gray;
400px;
height: 400px;
display: flex;
justify-content: center;
align-content: center;
}
六、父元素设置dispaly:flex子元素设置margin:auto
#parent {
background: gray;
400px;
height: 400px;
display: flex;
 
}

#children {
background: red;
200px;
height:200px;
margin: auto;
}

3

浮动产生的原因是因为元素使用了float:left;或者position:absolute;position:fixed。导致元素脱离标准文档流。而向上浮动。

为了不让父元素发生高度坍塌,布局不混乱,需要清除浮动。

常见的清除浮动方法:

<style>
.topDiv {
 500px;
border: 2px solid black;
}

.floatDiv {
 100p
height: 100px;
border: 2px dotted red;
color: red;
margin: 4px;
float: left;
}
.bottomDiv {
 500px;
height: 100px;
margin: 5px 0;
border: 2px dotted black;
}
 
.textDiv {
color: blue;
border: 2px solid blue;
}
</style>
<div class="topDiv">
 
<div class="textDiv">...省略若干文字</div>
<div class="floatDiv">float left</div>
<!-- <div style="clear: both;"></div> -->
</div>

<div class="bottomDiv">....省略若干文字.</div>

一、父元素添加伪元素
.topDiv::after {
content: "";
display: block;
clear: both;
}
二、父元素结束标签之前插入清除浮动的块级元素

<div class="topDiv">
<div class="textDiv">...省略若干文字</div>
<div class="floatDiv">float left</div>
<div style="clear: both;"></div>
</div>
三、父元素利用overflow非visible清除浮动
.topDiv {
 500px;
border: 2px solid black;
overflow: auto; //只要能构建出建构出BFC都可以

}
其他一些方法根据实际条件环境处理(主要还是在需要清除浮动的元素上加clear:both/left/right):
1.如果子元素都浮动,那么父级设置固定高度可不发生高度坍塌
2.父元素也一起浮动

4.

display的取值,常见有
 
1、none 此元素不会被显示,并且不占据页面空间,这也是与visibility:hidden不同的地方,设置visibility:hidden的元素,不会被显示,但是还是会占据原来的页面空间。
 
2、inline 行内元素 元素会在一行内显示,超出屏幕宽度自动换行,不能设置宽度和高度,元素的宽度和高度只能是靠元素内的内容撑开。有margin和padding,但是只能够设置左右的值,设置上下的值是无效的。
示例元素:span,b,i,a,u,sub,sup,strong,em
 
3、block 块级元素 会独占一行,如果不设置宽度,其宽度会自动填满父元素的宽度,可以设置宽高,即使设置了宽度,小于父元素的宽度,块级元素也会独占一行。可以设置margin和padding上下左右的四个值,margin可以有负值,padding不允许有负值。
示例元素:div,h1-h6,ul,ol,dl,p
 
4、inline-block 行内块元素 与行内元素一样可以再一行内显示,而且可以设置宽高,可以设置margin和padding(上下左右都可以)。
示例元素:input,button,img
 
5、list-item 列表元素
示例元素:li
 
6、table 会作为块级表格来显示(类似于<table>),表格前后带有换行符。
 
7、inline-table 会作为内联表格来显示(类似于<table>),表格前后没有换行符。
 
8、flex 多栏多列布局,一个Flexbox布局是由一个伸缩容器(flex containers)和在这个容器里的伸缩项目(flex items)组成。
伸缩容器(flex  containers)是一个HTML标签元素,并且“display”属性显式的设置了“flex”属性值。在伸缩容器中的所有子元素都会自动变成伸缩项目(flex  items)。对于
复杂的布局,推荐使用。
 
 
5.
js的基本数据类型

js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Undefined,Null),和一种复杂数据类型(Object:Function,Array,Date等)。

常用的typeof会返回一个变量的基本类型,只有以下几种:number,boolean,string,object,undefined,function;

 

6

常用sessionStorage和localStorage以及cookie三种浏览器端的数据存储

具体区别省略……

7

react.js

vue.js

angular.js

对react.js有点了解。正在学习中……

7

原文地址:https://www.cnblogs.com/susan-home/p/9985116.html