zoukankan      html  css  js  c++  java
  • 前端面试问题(CSS3)

    CSS(3)

    1.水平居中的方法

    1.元素为行内元素,设置父元素text-align:center

    2.如果元素宽度固定,可以设置左右margin为auto;

    3.如果元素为绝对定位,设置父元素position为relative,元素设left:0;right:0;margin:auto;

    4.使用flex-box布局,指定justify-content属性为center

    5.display设置为tabel-ceil

    2.垂直居中的方法

    1.将显示方式设置为表格,display:table-cell,同时设置vertial-align:middle

    2.使用flex布局,设置为align-item:center

    3.绝对定位中设置bottom:0,top:0,并设置margin:auto

    4.绝对定位中固定高度时设置top:50%,margin-top值为高度一半的负值

    5.文本垂直居中设置line-height为height值

    3.简要介绍一下CSS3的新特性

    在布局方面新增了flex布局,

    在选择器方面新增了例如:first-of-type,nth-child等选择器,

    在盒模型方面添加了box-sizing来改变盒模型,

    在动画方面增加了animation、2d变换、3d变换等。

    在颜色方面添加透明、rgba等,

    在字体方面 允许嵌入字体和设置字体阴影,同时当然也有盒子的阴影

    最后还有关键的媒体查询。

    4.如何使用CSS实现硬件加速?

    硬件加速是指通过创建独立的复合图层,让GPU来渲染这个图层,从而提高性能, 一般触发硬件加速的CSS属性有transform、opacity、filter,为了避免2D动画在 开始和结束的时候的repaint操作,一般使用tranform:translateZ(0)

    5.说一说css3的animation

    6.绝对定位和相对定位的区别?

    绝对定位是相对于最近的已经定位的祖先元素,没有则相对于body,绝对定位脱离文档流,

    而相对定位是相对于元素在文档中的初始位置,并且 相对定位的元素仍然占据原有的空间。

    7.BFC是什么?介绍一下,如何触发BFC?

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

    8.css sprite是什么,有什么优缺点

    概念:将多个小图片拼接到一个图片中。通过background-position和元素尺寸调节需要显示的背景图案。

    优点:

    1. 减少HTTP请求数,极大地提高页面加载速度
    2. 增加图片信息重复度,提高压缩比,减少图片大小
    3. 更换风格方便,只需在一张或几张图片上修改颜色或样式即可实现

    缺点:

    1. 图片合并麻烦
    2. 维护麻烦,修改一个图片可能需要从新布局整个图片,样式

    9.display: none;visibility: hidden;的区别

    联系:它们都能让元素不可见

    区别:

    1. display:none;会让元素完全从渲染树中消失,渲染的时候不占据任何空间;visibility: hidden;不会让元素从渲染树消失,渲染师元素继续占据空间,只是内容不可见
    2. display: none;是非继承属性,子孙节点消失由于元素从渲染树消失造成,通过修改子孙节点属性无法显示;visibility: hidden;是继承属性,子孙节点消失由于继承了hidden,通过设置visibility: visible;可以让子孙节点显式
    3. 修改常规流中元素的display通常会造成文档重排。修改visibility属性只会造成本元素的重绘。
    4. 读屏器不会读取display: none;元素内容;会读取visibility: hidden;元素内容

    10.link@import的区别

    1. link是HTML方式, @import是CSS方式
    2. link最大限度支持并行下载,@import过多嵌套导致串行下载,出现FOUC
    3. link可以通过rel="alternate stylesheet"指定候选样式
    4. 浏览器对link支持早于@import,可以使用@import对老浏览器隐藏样式
    5. @import必须在样式规则之前,可以在css文件中引用其他文件
    6. 总体来说:link优于@import

    11.display: block;display: inline;的区别

    block元素特点:

    1.处于常规流中时,如果width没有设置,会自动填充满父容器

    2.可以应用margin/padding

     3.在没有设置高度的情况下会扩展高度以包含常规流中的子元素

    4.处于常规流中时布局时在前后元素位置之间(独占一个水平空间)

    5.忽略vertical-align

    inline元素特点

    1.水平方向上根据direction依次布局

    2.不会在元素前后进行换行

    3.受white-space控制

    4.margin/padding在竖直方向上无效,水平方向上有效

    5.width/height属性对非替换行内元素无效,宽度由元素内容决定

    6.浮动或绝对定位时会转换为block

    7.vertical-align属性生效

    8.非替换行内元素的行框高由line-height确定,替换行内元素的行框高由height,margin,padding,border决定

    12.容器包含若干浮动元素时如何清理(包含)浮动

    1. 容器元素闭合标签前添加额外元素并设置clear: both
    2. 父元素触发块级格式化上下文(见块级可视化上下文部分)
    3. 设置容器元素伪元素进行清理推荐的清理浮动方法
    /**
    * 在标准浏览器下使用
    * 1 content内容为空格用于修复opera下文档中出现
    *   contenteditable属性时在清理浮动元素上下的空白
    * 2 使用display使用table而不是block:可以防止容器和
    *   子元素top-margin折叠,这样能使清理效果与BFC,IE6/7
    *   zoom: 1;一致
    **/
    
    .clearfix:before,
    .clearfix:after {
        content: " "; /* 1 */
        display: table; /* 2 */
    }
    
    .clearfix:after {
        clear: both;
    }
    
    /**
    * IE 6/7下使用
    * 通过触发hasLayout实现包含浮动
    **/
    .clearfix {
        *zoom: 1;
    }

    13.如何创建块级格式化上下文(block formatting context),BFC有什么用

    创建规则:

    1. 根元素
    2. 浮动元素(float不是none
    3. 绝对定位元素(position取值为absolutefixed
    4. display取值为inline-block,table-celltable-caption,flexinline-flex之一的元素
    5. overflow不是visible的元素

    作用:

    1. 可以包含浮动元素
    2. 不被浮动元素覆盖
    3. 阻止父子元素的margin折叠

     

  • 相关阅读:
    AppBoxFuture(六): 前端组件化开发
    AppBoxFuture(五): 分布式文件存储-Store Everything
    Mysql自动填充测试数据
    萌新带你开车上p站(番外篇)
    B站百大UP主党妹被黑客勒索!!!
    合天网络靶场-大规模网络环境仿真服务平台
    XSS语义分析的阶段性总结(二)
    想学习CTF的一定要看这篇,让你学习效率提升80%
    XSS语义分析的阶段性总结(一)
    逆向入门分析实战(二)
  • 原文地址:https://www.cnblogs.com/FunkyEric/p/8979230.html
Copyright © 2011-2022 走看看