前端校招面试题目合集-day09

如何实现图片在某个容器中居中的?

参考答案

参考回答:

父元素固定宽高,利用定位及设置子元素margin值为自身的一半。

父元素固定宽高,子元素设置position: absolute,margin:auto平均分配margin

css3属性transform。子元素设置position: absolute; left: 50%; top: 50%;transform: translate(-50%,-50%);即可。

将父元素设置成display: table, 子元素设置为单元格 display: table-cell。

弹性布局display: flex。设置align-items: center; justify-content: center

 

如何实现元素的垂直居中

参考答案

参考回答:

法一:父元素display:flex,align-items:center;

法二:元素绝对定位,top:50%,margin-top:-(高度/2)

法三:高度不确定用transform:translateY(-50%)

法四:父元素table布局,子元素设置vertical-align:center;

 

隐藏页面中某个元素的方法

参考答案

参考回答:

display:none; visibility:hidden; opacity: 0; position移到外部,z-index涂层遮盖等等

 

三栏布局的实现方式,尽可能多写,浮动布局时,三个div的生成顺序有没有影响

参考答案

参考回答:

三列布局又分为两种,两列定宽一列自适应,以及两侧定宽中间自适应

两列定宽一列自适应:

1、使用float+margin:

给div设置float:left,left的div添加属性margin-right:left和center的间隔px,right的div添加属性margin-left:left和center的宽度之和加上间隔

2、使用float+overflow:

给div设置float:left,再给right的div设置overflow:hidden。这样子两个盒子浮动,另一个盒子触发bfc达到自适应

3、使用position:

父级div设置position:relative,三个子级div设置position:absolute,这个要计算好盒子的宽度和间隔去设置位置,兼容性比较好,

4、使用table实现:

父级div设置display:table,设置border-spacing:10px//设置间距,取值随意,子级div设置display:table-cell,这种方法兼容性好,适用于高度宽度未知的情况,但是margin失效,设计间隔比较麻烦,

5、flex实现:

parent的div设置display:flex;left和center的div设置margin-right;然后right 的div设置flex:1;这样子right自适应,但是flex的兼容性不好

6、grid实现:

parent的div设置display:grid,设置grid-template-columns属性,固定第一列第二列宽度,第三列auto,

对于两侧定宽中间自适应的布局,对于这种布局需要把center放在前面,可以采用双飞翼布局:圣杯布局,来实现,也可以使用上述方法中的grid,table,flex,position实现

 

什么是BFC

参考答案

参考回答:

BFC也就是常说的块格式化上下文,这是一个独立的渲染区域,规定了内部如何布局,并且这个区域的子元素不会影响到外面的元素,其中比较重要的布局规则有内部box垂直放置,计算BFC的高度的时候,浮动元素也参与计算,触发BFC的规则有根元素,浮动元素,position为absolute或fixed的元素,display为inline-block,table-cell,table-caption,flex,inline-flex,overflow不为visible的元素

 

有一个width300,height300,怎么实现在屏幕上垂直水平居中

参考答案

参考回答:

对于行内块级元素,

1、父级元素设置text-alig:center,然后设置line-height和vertical-align使其垂直居中,最后设置font-size:0消除近似居中的bug

2、父级元素设置display:table-cell,vertical-align:middle达到水平垂直居中

3、采用绝对定位,原理是子绝父相,父元素设置position:relative,子元素设置position:absolute,然后通过transform或margin组合使用达到垂直居中效果,设置top:50%,left:50%,transform:translate(-50%,-50%)

4、绝对居中,原理是当top,bottom为0时,margin-top&bottom设置auto的话会无限延伸沾满空间并平分,当left,right为0时,margin-left&right设置auto会无限延伸占满空间并平分,

5、采用flex,父元素设置display:flex,子元素设置margin:auto

6、视窗居中,vh为视口单位,50vh即是视口高度的50/100,设置margin:50vh auto 0,transform:translate(-50%)

 

display:table和本身的table有什么区别

参考答案

参考回答:

Display:table和本身table是相对应的,区别在于,display:table的css声明能够让一个html元素和它的子节点像table元素一样,使用基于表格的css布局,是我们能够轻松定义一个单元格的边界,背景等样式,而不会产生因为使用了table那样的制表标签导致的语义化问题。

之所以现在逐渐淘汰了table系表格元素,是因为用div+css编写出来的文件比用table边写出来的文件小,而且table必须在页面完全加载后才显示,div则是逐行显示,table的嵌套性太多,没有div简洁

 

position属性的值有哪些及其区别

参考答案

参考回答:

Position属性把元素放置在一个静态的,相对的,绝对的,固定的位置中,

Static:位置设置为static的元素,他始终处于页面流给予的位置,static元素会忽略任何top,buttom,left,right声明

Relative:位置设置为relative的元素,可将其移至相对于其正常位置的地方,因此left:20会将元素移至元素正常位置左边20个像素的位置

Absolute:此元素可定位于相对包含他的元素的指定坐标,此元素可通过left,top等属性规定

Fixed:位置被设为fiexd的元素,可定为与相对浏览器窗口的指定坐标,可以通过left,top,right属性来定位

 

z-index的定位方法

参考答案

参考回答:

z-index属性设置元素的堆叠顺序,拥有更好堆叠顺序的元素会处于较低顺序元素之前,z-index可以为负,且z-index只能在定位元素上奏效,该属性设置一个定位元素沿z轴的位置,如果为正数,离用户越近,为负数,离用户越远,它的属性值有auto,默认,堆叠顺序与父元素相等,number,inherit,从父元素继承z-index属性的值

 

line-height和height的区别

参考答案

参考回答:

line-height一般是指布局里面一段文字上下行之间的高度,是针对字体来设置的,height一般是指容器的整体高度,

 

设置一个元素的背景颜色,背景颜色会填充哪些区域?

参考答案

参考回答:

background-color设置的背景颜色会填充元素的content、padding、border区域,

 

inline-block、inline和block的区别;为什么img是inline还可以设置宽高

参考答案

参考回答:

Block是块级元素,其前后都会有换行符,能设置宽度,高度,margin/padding水平垂直方向都有效。

Inline:设置width和height无效,margin在竖直方向上无效,padding在水平方向垂直方向都有效,前后无换行符

Inline-block:能设置宽度高度,margin/padding水平垂直方向 都有效,前后无换行符

猜你喜欢

转载自blog.csdn.net/qq_45065517/article/details/107324203