好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

非固定定位

非固定定位实现吕形布局

1. 前言

除了将上栏固定在屏幕上,我们还有另一种选择,那就是上栏和主盒子都在屏幕的那个位置不动,那有人可能会说了,主盒子里的 内容 要是多了,超出了屏幕的高度该怎么办呢?这就要用到 一个 属性 叫做 overflow-y 。

2. 实现

  <!DOCTYPE html> 
   < html   lang   =  " en "   >  
   < head  >  
     <  Meta    charset   =  " UTF-8 "   >  
     <  Meta    name   =  " viewport "    content   =  " width=device-width, initial-scale=1.0 "   >  
     < title  >  Document   </ title  >  
   <!--  在这里 用link 标签 引入 中文 渐变色 --> 
     < link   rel   =  " stylesheet "    href   =  " https://cdn.jsdelivr.net/npm/chi nes e-gradient "   >  
     < style  >   
     /* 清除 默 认样式 */ 
     *   {   padding  :   ;   margin  :   ;   } 

     /* 令html和body全屏 显示  */ 
     html, body   {   height  :    } 

     /* 上面的那栏 */ 
      .top    { 
       /* 设置 一个 合适的高度 */ 
       height  :   ; 

       /* 蓝色背景 */ 
       background  :   var  ( --靛蓝 )  ; 
     } 

     /* 主 显示 区 */ 
      .main    { 
       /* 给个合适的高度 */ 
       height  :   ; 

       /* 给个好看的渐变色 */ 
       background  :   var  ( --天蓝 )  ; 

       /* 竖直方向的溢出设置为 自动  */ 
       overflow-y  :  auto ; 
     } 

     /* 盒子的 默 认样式 */ 
     div   { 
       font-size  :  px ; 
       color  :  white ; 
     } 
      </ style  >  
   </ head  >  
   < body  >  
     < div   class   =  " top "   >     </ div  >  
     < div   class   =  " main "   >  
    这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子这里是主盒子
     </ div  >  
   </ body  >  
   </ html  >  
 

运行结果:


可以看到这个案例虽然 文字 撑开了 内容 导致溢出,然后出现滚动条可以上下滚动,但背景色却没有变化,这是因为我们是在主盒子上面加的背景色。
这种靠子元素来撑开 内容 的溢出应该把样式全部写在子元素上面去,父元素只提供 一个 高度和 一个 overflow-y 即可:

  <!DOCTYPE html> 
   < html   lang   =  " en "   >  
   < head  >  
     <  Meta    charset   =  " UTF-8 "   >  
     <  Meta    name   =  " viewport "    content   =  " width=device-width, initial-scale=1.0 "   >  
     < title  >  Document   </ title  >  
   <!--  在这里 用link 标签 引入 中文 渐变色 --> 
     < link   rel   =  " stylesheet "    href   =  " https://cdn.jsdelivr.net/npm/chi nes e-gradient "   >  
     < style  >   
     /* 清除 默 认样式 */ 
     *   {   padding  :   ;   margin  :   ;   } 

     /* 令html和body全屏 显示  */ 
     html, body   {   height  :    } 

     /* 上面的那栏 */ 
      .top    { 
       /* 设置 一个 合适的高度 */ 
       height  :   ; 

       /* 蓝色背景 */ 
       background  :   var  ( --靛蓝 )  ; 
     } 

     /* 主 显示 区 */ 
      .main    { 
       /* 给个合适的高度 */ 
       height  :   ; 

       /* 竖直方向的溢出设置为 自动  */ 
       overflow-y  :  auto ; 
     } 

      .child    { 
       height  :  px ; 

       /* 给个好看的渐变色 */ 
       background  :   var  ( --天蓝 )  ; 
     } 

     /* 盒子的 默 认样式 */ 
     div   { 
       font-size  :  px ; 
       color  :  white ; 
     } 
      </ style  >  
   </ head  >  
   < body  >  
     < div   class   =  " top "   >     </ div  >  
     < div   class   =  " main "   >  
       < div   class   =  " child "   >     </ div  >  
     </ div  >  
   </ body  >  
   </ html  >  
 

运行结果:

3. 小结

这里一定要记住这几个要点:

上栏和下栏的宽度加起来要刚好是屏幕的高度; 下栏一定要写 overflow-y: auto ; 下栏的背景什么的最好写在子元素上,除非你就是想要这种背景不动的 效果 。

固定定位+渐隐渐现 ? ? 外边距的作用

查看更多关于非固定定位的详细内容...

  阅读:21次

上一篇

下一篇

第1节:中文布局 CSS 库    第2节:绝对定位    第3节:绝对定位+负边距    第4节:绝对定位+平移    第5节:网格布局    第6节:弹性布局    第7节:表格布局    第8节:外边距    第9节:绝对定位 + 平移    第10节:行内块元素    第11节:增光添彩    第12节:中文布局CSS库    第13节:多列属性    第14节:左浮动法    第15节:固定定位    第16节:非固定定位    第17节:固定定位+渐隐渐现    第18节:边框九宫格    第19节:加入边框    第20节:改进版    第21节:经典面试题    第22节:课程简介    第23节:移动端的迭代速度    第24节:移动端的屏幕长宽比    第25节:居中布局简介    第26节:中文布局 CSS 库实现居中布局    第27节:绝对定位实现居中布局    第28节:绝对定位+负边距实现居中布局    第29节:绝对定位+平移实现居中布局    第30节:网格布局实现居中布局    第31节:弹性布局实现居中布局    第32节:表格布局实现居中布局    第33节:单列布局简介    第34节:外边距实现单列布局    第35节:弹性布局实现单列布局    第36节:网格布局实现单列布局    第37节:网格布局实现单列布局    第38节:绝对定位+平移实现单列布局    第39节:行内块元素实现单列布局    第40节:增光添彩单列布局    第41节:双列布局简介    第42节:中文 布局CSS库实现双列布局    第43节:多列属性实现双列布局    第44节:左浮动实现双列布局    第45节:绝对定位实现双列布局    第46节:弹性布局实现双列布局    第47节:网格布局实现双列布局    第48节:增光添彩双列布局    第49节:吕形布局简介    第50节:固定定位实现吕形布局    第51节:中文布局CSS库实现吕形布局    第52节:外边距的作用    第53节:非固定定位实现吕形布局    第54节:固定定位+渐隐渐现吕形布局    第55节:上下栏布局简介    第56节:上下栏布局中文布局CSS库    第57节:固定定位实现上下栏布局    第58节:外边距的作用上下栏布局    第59节:非固定定位实现上下栏布局    第60节:固定定位+渐隐渐现上下栏布局    第61节:九宫格简介    第62节:中文布局CSS库实现九宫格    第63节:网格布局实现九宫格布局    第64节:表格布局实现九宫格布局    第65节:绝对定位实现九宫格布局    第66节:弹性布局实现九宫格布局    第67节:左浮动实现九格宫布局    第68节:弹性布局实现九宫格布局    第69节:加入边框 九宫格    第70节:边框九宫格实现九宫格    第71节:改进版九宫格布局    第72节:九宫格经典面试题    第73节:响应式简介    第74节:响应式布局中文布局CSS库    第75节:网格布局之应式布局    第76节:弹性布局之响应式布局    第77节:左浮动法之响应式布局    第78节:媒体查询简介    第79节:媒体属性    第80节:逻辑操作符