前端面试题及答案(视图篇)

1. CSS 盒子模型,绝对定位和相对定位

盒子模型包含元素内容内边距边框外边距

w3cçå¾

2.清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法

(1)使用after元素(推荐使用)

.clearfix:after{
    content:"";/*设置内容为空*/
    height:0;/*高度为0*/
    line-height:0;/*行高为0*/
    display:block;/*将文本转为块级元素*/
    visibility:hidden;/*将元素隐藏*/
    clear:both;/*清除浮动*/
}
.clearfix{
    zoom:1;/*为了兼容IE*/
}
<body>
<div class="box clearfix">
    <div class="red">1</div>
    <div class="sienna">2</div>
    <div class="blue">3</div>
</div>
</body>

(2)使用clear:both(好用,但是会多一个div,也是常用的一种)

.clear{clear: both;}
<div class="box">
    <div class="red">1</div>
    <div class="sienna">2</div>
    <div class="blue">3</div>
    <div class="clear"></div>
</div>

(3)父级div定义overflow:hidden(不能定义height、不能和position搭配,不推荐使用)

(4)父级div定义overflow:auto(可能出现滚动条,高度不能保证的最好不用)

(5)将父级变为表格——display:table(不推荐使用,表格一大堆兼容问题,没必要,只要知道有这种方法就行)

3.水平居中的方法

(1)使用绝对定位和transform结合

 .center {
        position: absolute;
        top: 50%;
        left: 50%;
        -ms-transform: translate(-50%,-50%);
        -moz-transform: translate(-50%,-50%);
        -o-transform: translate(-50%,-50%);
        transform: translate(-50%,-50%); 
    }

(2)flex布局(做PC端不建议使用,如果是手机端基本可以放心大胆使用)

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

(3)display:table-cell(将其转换为表格,有很简单的写法,但是兼容性问题会比较严重,不建议使用,只做了解)

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

(4)利用定位与margin: auto(如果是确定的长宽才可以用,实际使用中问题会比较严重,需要谨慎使用,个人觉得是最简单的绝对定位法)

  <div class="parent">
    <div class="child">111</div>
  </div>
       .parent{
               width: 600px;
               height: 400px;
               background: red;
               position: relative;
          }
          .child{
               width: 200px;
               height: 200px;
               position: absolute;
               top: 0;
               left: 0;
               bottom: 0;
               right: 0;
               margin: auto;
               background:blue;
          }

4.样式的层级关系、选择器优先级、样式冲突

!important>内联样式>id选择器>class(类)选择器>标签选择器>*

 选择器相同时后面的会覆盖前面的属性。

如果对SEO不用太多要求,强烈建议初始化*{margin:0;padding:0}(写在公共样式里)

5.CSS3常用动画

 

(1)animation 动画:

使用场景:animation: iconA 4.8s linear infinite both;(这个是旋转图片,常用在页面加载中的图片)

(2)transition 过渡:

使用场景(常用在加载的动画):

<style> 
div{
width:100px;
height:100px;
background:blue;
transition:width 2s;
-moz-transition:width 2s; /* Firefox 4 */
-webkit-transition:width 2s; /* Safari and Chrome */
-o-transition:width 2s; /* Opera */
}

div:hover{
width:200px;
}
</style>

<div></div>





(3)transform 改变大小位置:

 

6.px、em和rem的区别

px为绝对单位,兼容性好,在兼容低版本浏览器很好用。

em为相对单位,兼容性稍差,在开发手机端和兼容高版本浏览器可选择。em并不是固定的大小,他是根据父级来确定大小。

rem也是相对单位,但是不会继承父级大小,在手机端或者响应式网站最好使用这个单位,在做PC端依然不建议使用本单位。

7.flex布局

会问这个问题的公司大概率是做H5移动端之类的,对低版本浏览器来讲兼容性差。

Flex 布局教程:语法篇 - 阮一峰的网络日志

上面这个网站可以学习flex布局,不了解的可以去学一学主要的布局方式。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值