CSS

68 阅读2分钟

原文

CSS

css和js两种方式实现div右移1000px动画

// css
#box{
    width: 100px;
    height: 100px;
    background-color: brown;
    position: relative;
    animation: moveRight 3s linear 1s;
}
@keyframes moveRight {
    0%{transform: translateX(0px);}
    100%{transform: translateX(1000px);}
}
// js
oBox.onclick = function () {
    window.requestAnimationFrame(function cb() {
        if (oBox.offsetLeft != 1000) {
            oBox.style.left = oBox.offsetLeft + 10 + 'px'
            window.requestAnimationFrame(cb)
        }
    })
}

visibility、display、opacity的区别

opacity : 0visibility : hiddendisplay : none
是否占据页面空间
对子元素的影响覆盖子元素 opacity:1不覆盖子元素 visibility:visible覆盖子元素 display:none
监听的事件是否触发
被遮罩元素的监听事件是否触发(使用绝对定位覆盖)

单行截断css

// 单行
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;

// 多行
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;

flex布局

阮一峰Flex布局

flex : 1

flex属性是flex-growflex-shrink 和 flex-basis的简写,默认值为0 1 auto

flex: 1 = flex: 1 1 0%
flex: 2 = flex: 2 1 0%
flex: auto = flex: 1 1 auto
flex: none = flex: 0 0 auto,常用于固定尺寸不伸缩

transition、transform、translate的区别

  • transition: 设置过度。
  • transform: 一些变换。平移,旋转,斜切等等。
  • translate: transform一个属性,用于设置x,y方向的平移。

如何画一条 0.5px 的边框

如何画一条0.5px的边框

说一下BFC

MDN块级格式上下文

parent元素宽高不定,实现scale固定宽高比始终为4:3

  • 容器高度设为0,子元素设置padding-bottom75%
  • aspect-ratio

CSS垂直居中的方案

垂直居中

伪元素、伪类

伪元素和伪类的区别

position的几个属性和含义

CSS position 属性

说一下盒模型

MDN box-sizing

响应式布局方案

前端响应式布局原理与方案(详细版)

三栏式布局方案

  • flex布局
  • 双飞翼布局。
  • 圣杯布局。 双飞翼和圣杯都是通过设置浮动,并且将中间内容放在前面展示。这样做的好处之一是在网络不好的情况下,让中间的内容先展示。

二者的区别就是如何让中间元素的内容不被两边布局的容器遮住。

  • 双飞翼布局是在外层包裹一个div元素,让其宽度为100%,然后由于盒子模型的特性,内部元素设置margin后,会自动将剩余空间分配给内部元素作为宽度。
  • 圣杯布局直接设置padding值,将内容挤出覆盖的部分。但是需要社会中ie的怪异盒子模型。box-sizing: border-box

如何提高动画的渲染性能

这样使用GPU动画