• css-面试题


    参考:https://www.cnblogs.com/chenwenhao/p/11217590.html

    盒模型

    /* 红色区域的大小是多少?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;    内容+padding  ===》红色区域   =200px
     /*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种方法实现水平居中垂直居中http://louiszhai.github.io/2016/03/12/css-center/

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

    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>
    

      

    画三角形  border+transparent

    .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;
    }
    

      

    link @import导入css

    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的高度时,浮动元素也会参与计算。

    Rem:

    rem原理

      rem布局的本质是等比缩放,一般是基于宽度,假设将屏幕宽度分为100份,每份宽度是1rem,1rem的宽度是屏幕宽度/100,饭后子元素设置rem单位的属性,通过改变html元素的字体大小,就可以设置子元素的时机大小。

    rem的布局加载闪烁的问题

      解决方案:媒体查询设置根元素字体的大小,比如设计稿是750px,对应的开发方式是1rem=100px,那375px的font-size大小就是50px

    比rem更好的方案(缺点兼容性不好)

    vw(1vw是视口宽度的1%,100vw就是视口宽度),vh(100vh就是视口高度)

     

    定位、transform:tranlate、scareX

  • 相关阅读:
    工作实战之项目常用技术
    Thymeleaf的错误解决方式
    实用小demo
    idea常用的几个插件
    idea2019+Plugins中搜索不到任何插件解决办法
    git的初体验
    springboot2.+的整合log4j2错误解决浅谈
    MobaXterm百度网盘下载
    阿里云RDS云数据库连接步骤
    读源码学编程之——死循环妙用
  • 原文地址:https://www.cnblogs.com/jcxfighting/p/11667133.html
Copyright © 2020-2023  润新知