Inset定位

position定位的原子化,使用inset代替position以区别Postion模块。

简单使用

对css中的position属性进行原子化处理,将原本的5个属性改写如下:

  • _inset-fixed:对应position:fixed
  • _inset-abs:对应position:absolute
  • _inset-rel:对应position:relative
  • _inset-sticky:对应position:sticky
  • _inset-static:对应position:static
  • 输出
  • HTML
  • JS
  • 定位容器
  •                 
                    
                
  •                 
                    let demo0001 = document.querySelector('#demo0001');
                    demo0001btn01.onclick=()=>{
                        demo0001.setAttribute('class', '_container _bg-prim _c-white  _p _r-2 _inset-fixed');
                    }
                    demo0001btn02.onclick=()=>{
                        demo0001.setAttribute('class', '_container _bg-prim _c-white  _p _r-2 _inset-abs');
                    }
                    demo0001btn03.onclick=()=>{
                        demo0001.setAttribute('class', '_container _bg-prim _c-white  _p _r-2 _inset-rel');
                    }
                    demo0001btn04.onclick=()=>{
                        demo0001.setAttribute('class', '_container _bg-prim _c-white  _p _r-2 _inset-sticky');
                    }
                    demo0001btn05.onclick=()=>{
                        demo0001.setAttribute('class', '_container _bg-prim _c-white  _p _r-2 _inset-static');
                    }
                    
                

0定位

提供值为0的四角定位,分别如下:

  • inset-t-0:对应top=0
  • inset-b-0:对应bottom=0
  • inset-s-0:对应left=0(inset-inline-start)
  • inset-e-0:对应right=0(inset-inline-end)
  • inset-0:对应top/bottom/left/right=0,实际效果是占满整个容器
  • 输出
  • HTML
  • JS
  • 定位容器
  •                 
                    
                
  •                 
                    let demo0002 = document.querySelector('#demo0002');
                    demo0002btn01.onclick=()=>{
                        demo0002.setAttribute('class', ' _bg-prim _c-white  _p _r-2 _inset-abs _inset-t-0');
                    }
                    demo0002btn02.onclick=()=>{
                        demo0002.setAttribute('class', '_bg-prim _c-white  _p _r-2 _inset-abs _inset-b-0');
                    }
                    demo0002btn03.onclick=()=>{
                       demo0002.setAttribute('class', '_bg-prim _c-white  _p _r-2 _inset-abs _inset-s-0');
                    }
                    demo0002btn04.onclick=()=>{
                        demo0002.setAttribute('class', '_bg-prim _c-white  _p _r-2 _inset-abs _inset-e-0');
                    }
                    demo0002btn05.onclick=()=>{
                        demo0002.setAttribute('class', '_bg-prim _c-white  _p _r-2 _inset-abs _inset-0');
                    }
                    demo0002.onclick = ()=>{
                        demo0002.setAttribute('class', '_bg-prim _c-white  _p _r-2 _inset-rel');
                    }
                    
                

快捷角落定位

容器定位最常见的是定位在容器的四个角落,所以提供了以下快捷的角落定位css类:

  • inset-st:对应left/top=0
  • inset-sb:对应left/bottom=0
  • inset-et:对应right/left=0
  • inset-eb:对应right/bottom=0
  • 输出
  • HTML
  • JS
  • 定位容器
  •                 
                    
                
  •                 
                    let demo0003 = document.querySelector('#demo0003');
                    demo0003btn01.onclick=()=>{
                        demo0003.setAttribute('class', ' _bg-prim _c-white  _p _r-2 _inset-abs _inset-st');
                    }
                    demo0003btn02.onclick=()=>{
                        demo0003.setAttribute('class', '_bg-prim _c-white  _p _r-2 _inset-abs _inset-sb');
                    }
                    demo0003btn03.onclick=()=>{
                       demo0003.setAttribute('class', '_bg-prim _c-white  _p _r-2 _inset-abs _inset-et');
                    }
                    demo0003btn04.onclick=()=>{
                        demo0003.setAttribute('class', '_bg-prim _c-white  _p _r-2 _inset-abs _inset-eb');
                    }
                    demo0003.onclick = ()=>{
                        demo0003.setAttribute('class', '_bg-prim _c-white  _p _r-2 _inset-rel');
                    }
                    
                

复原定位

复原定位的方式有两种,一是设置inset-staticinset-relative;二是将left/top值设为auto,对应的样式类如下:

  • inset-t-auto:对应top=auto(inset-block-start)
  • inset-b-auto:对应bottom=auto(inset-block-end)
  • inset-s-auto:对应left=auto(inset-inline-start)
  • inset-e-auto:对应right=auto(inset-inline-end)
  • inset-auto:对应top/bottom/left/right=auto
  • 输出
  • HTML
  • JS
  • 定位容器
  •                 
                    
                
  •                 
                    let demo0004 = document.querySelector('#demo0004');
                    demo0004btn01.onclick=()=>{
                        demo0004.setAttribute('class', ' _bg-prim _c-white  _p _r-2 _inset-abs _inset-st');
                    }
                    demo0004btn02.onclick=()=>{
                        demo0004.setAttribute('class', '_bg-prim _c-white  _p _r-2 _inset-abs _inset-auto');
                    }
                    demo0004.onclick = ()=>{
                        demo0004.setAttribute('class', '_bg-prim _c-white  _p _r-2 _inset-rel');
                    }