美文网首页
10月31号面试问题

10月31号面试问题

作者: 七_五 | 来源:发表于2017-10-31 22:20 被阅读0次

    1、如何让几个block元素在同一行垂直居中对齐(尽可能说出更多的方法)

    • 第一种:flex布局实现
      首先为这几个block元素添加一个父元素<div class="parent"></div>
    .parent {
       display: flex;
       justify-content: center;
       align-content: center;
       flex-wrap: nowrap;
    }
    

    效果查看:http://js.jirengu.com/zitaletecu/21/edit

    • 第二种:table
      与上一个类似也会为几个block元素添加一个父元素:
    <div class="parent">
      <div class="child">1</div>
      <div class="child">2</div>
      <div class="child">3</div>
    </div>
    
    .parent {
      text-align: center;   //水平居中
      display: table-cell;
      vertical-align: middle;  //垂直居中
    }
    .child {
      display: inline-block;   //防止块级元素独占一行
    }
    

    效果查看:http://js.jirengu.com/zitaletecu/17/edit

    • 第三种:absolute+transform 水平垂直居中
      还是同样的为这几个块级元素加一个父元素
    <div class="parent">
      <div class="child child1">1</div>
      <div class="child child2">2</div>
    </div>
    
    <style>
    .parent {
      position: relative;
      height: 100px;
      border: 1px solid red;
    }
    .child {
      position: absolute;
      padding: 10px;
      background: blue;
    }
    .child1 {
      left:33.33%;
      top: 50%;
      transform: translate(-50%,-50%)
    }
    .child2 {
      left: 66.67%;
      top: 50%;
      transform: translate(-50%,-50%)
    }
    </style>
    

    效果查看:http://js.jirengu.com/zitaletecu/15/edit
    附上之前写过的一篇博客:http://www.jianshu.com/p/0fc76e1b1558

    2.如何阻止事件的冒泡?jQuery中on方法和delegate方法的区别

    阻止事件的冒泡:在DOM的事件模型中,事件分为捕获阶段和冒泡阶段,事件冒泡阶段是事件已经到达了具体的元素,然后逐渐向上传播,到达不具体的元素,阻止冒泡:event.stopPropagation()


    jQuery中on方法是对选中的元素直接绑定事件,常见用法如下(以点击事件为例)

    $('xxx').on('click',function(){
       xxxx
    })
    

    delegate() 方法为指定的元素(属于被选元素的子元素)绑定事件,处理的是子元素上的事件效果,用法如下:

    $("parent").delegate("child","click",function(){
       xxxx
    });
    

    写了一个demo:http://js.jirengu.com/ducuwicixi/3/edit
    多用于当前或未来的元素(比如由脚本创建的新元素)

    3、父元素 div{display:flex; position:relative} ,子元素div {float:right; position:absolute; top:8px},子元素表现形式如何,为什么?

    表现形式:子元素的位于父元素的左侧、顶部下面8px处。
    参考demo:http://js.jirengu.com/gahoserequ/4/edit

    分析:在子元素中定义了绝对定位position:absolute会让向右浮动float:right这一特性失效,同时父元素是相对定位的position:relative,所有子元素相对于父元素top:8px会位于父元素顶部下面8px。

    4、bootstrap弹性布局的原理

    实现原理:利用媒体查询(media query)来创建关键的分界点的阈值,针对不同设备的宽度来调整栅格系统中的行和列的组合,下面我依据bootstrap原理来写了一个弹性布局的demo:
    预览:http://www.guohezu.me/CSS/Grid.html (请调整页面宽度查看效果)

    PC (min-width:1200px):

    pc.png

    pad: (min-width: 992px)

    pad.png

    phone:

    phone.png

    实现源码:https://github.com/joinmouse/CSS/blob/master/Grid.html

    5、正则表达式/(W{1,2}面积.*?(\d+)平方米)/的含义是什么?

    根据这个正则表达式的条件推测应该是匹配:xx面积yy(y为数字)平方米,这边不太确定业务逻辑,推测应该是爬虫过滤数据用的,chrome测试如下:

    match.png

    6、最近解决的技术问题

    利用webpack的实现了js部分的实现代码模块化打包:将原来的一个js文件中比较混乱的代码,分为了5个逻辑清晰的js代码块文件,最后再用webpack打包后形成一个js文件,然后引入页面。
    项目地址:https://github.com/joinmouse/movie-douban

    相关文章

      网友评论

          本文标题:10月31号面试问题

          本文链接:https://www.haomeiwen.com/subject/edxipxtx.html