• 2019前端面试系列——CSS面试题


    盒模型

    /* 红色区域的大小是多少?200 - 20*2 - 20*2 = 120 */
    .box {
         200px;
        height: 200px;
        padding: 20px;
        margin: 20px;
        background: red;
        border: 20px solid black;
        box-sizing: border-box;
    }
    
    /* 标准模型 */
    box-sizing:content-box;
     /*IE模型*/
    box-sizing:border-box;
    

    如何实现一个最大的正方形

    padding-bottom 撑开边距

     section {
        100%;
        padding-bottom: 100%;
        background: #333;
    }
    

    一行水平居中,多行居左

    <div><span>我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。</span></div>
    <div><span>我是一行文字</span></div>
    
    <style>
    div{text-align: center;}
    div span{display: inline-block;text-align: left;}
    </style>
    

    水平垂直居中

    贴上腾讯大佬的一篇文章:16种方式实现水平居中垂直居中

    两栏布局,左边固定,右边自适应,左右不重叠

    flex做自适应布局很容易,但兼容性不好,这里统一不用flex布局

    .left{
        float:left;
        300px;
        margin-right: 10px;
        background: red;
    }
    .right{
        overflow: hidden; /* 创建BFC */
        background: yellow;
    }
    

    如何实现左右等高布局

    table布局兼容性最好,当然flex布局的align-items: stretch;也行

    <div class="layout">
      <div class="layout left">left</div>
      <div class="layout right">center</div>
    </div>
    
    <style>
    .layout{
      display: table;
       100%;
    }
    .layout div{
      display: table-cell;
    }
    .layout .left{
       50%;
      height: 200px;
      background: red;
    }
    .layout .right{
       50%;
      background: yellow;
    }
    </style>
    

    画三角形

    .shape {
    	 0;
    	height: 0;
    	border-left: 50px solid transparent;
    	border-right: 50px solid transparent;
    	border-top: 50px solid transparent;
    	border-bottom: 50px solid blue;
    	background: white;
    }
    
    1. link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS
    2. link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载
    3. link无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持
    4. link支持使用Javascript控制DOM去改变样式;而@import不支持

    BFC理解

    BFC触发条件:

    1. 根元素,即html
    2. float的值不为none(默认)
    3. position的值为absolute或fixed
    4. overflow的值不为visible(默认)
    5. display的值为inline-block、table-cell、table-caption

    BFC特性:

    1. 内部的Box会在垂直方向上一个接一个放置。
    2. Box垂直方向的距离由margin决定,属于同一个BFC的两个相邻Box的margin会发生重叠。
    3. 每个元素的margin box 的左边,与包含块border box的左边相接触。
    4. BFC的区域不会与float box重叠。(可用于清浮动)
    5. BFC是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。
    6. 计算BFC的高度时,浮动元素也会参与计算。

    2019前端面试系列——CSS面试题
    2019前端面试系列——JS面试题
    2019前端面试系列——JS高频手写代码题
    2019前端面试系列——Vue面试题
    2019前端面试系列——HTTP、浏览器面试题

  • 相关阅读:
    计算机基础-day1
    Day3:Spring-JDBC、事务管理
    Day2:Spring-AOP
    Android------Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER
    Day1:Spring-IoC、DI
    Spring MVC的一例低级错误:Element 'mvc:annotation-driven' must have no character or element information item [children]
    Java阶段小总结
    Day20:DOM(Document Object Model)
    Day13:IO流(补充内容:特殊流对象)
    Android自学路线
  • 原文地址:https://www.cnblogs.com/chenwenhao/p/11217590.html
Copyright © 2020-2023  润新知