温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

CSS全屏布局的5种方式

发布时间:2020-07-17 15:29:32 阅读:558 作者:jjjyyy66 栏目:网络安全
前端开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

思路一: float

【1】float + calc

  通过calc()函数计算出.middle元素的高度,并设置子元素高度为100%

CSS全屏布局的5种方式

<style>body,p{margin0;}body,html,.parent{height100%;}.middle{
    overflow: hidden;
    heightcalc(100% - 100px);}.left{
    float: left;
    width100px;
    margin-right20px;
    height100%;}.right{
    overflow: auto;
    height100%;}.right-in{
    height1000px;}.top,.bottom{height:50px;}</style>

CSS全屏布局的5种方式

CSS全屏布局的5种方式

<div class="parent" id="parent" >
    <div class="top" >
        <p>top</p>
    </div>  
    <div class="middle" >
        <div class="left" >
            <p>left</p>
        </div>
        <div class="right" >
            <div class="right-in">
                <p>right</p>
            </div>
        </div>
    </div>          
    <div class="bottom" >
        <p>bottom</p>
    </div>        </div>

CSS全屏布局的5种方式

【2】float + absolute + (fix)

  通过增加结构来提高兼容性,.middle元素设置100%的高度,.top和.bottom设置absolute覆盖在.middle上

CSS全屏布局的5种方式

<style>body,p{margin0;}body,html,.parent{height100%;}.top,.bottom{
    position: absolute;
    height:50px;
    left0;
    right0;}.top{top0;}.bottom{bottom0;}.middleWrap{
    height100%;
    overflow: hidden;}.middle{
    overflow: hidden;
    height100%;
    margin50px 0;}.left{
    float: left;
    width100px;
    margin-right20px;
    height100%;}.right{
    overflow: auto;
    height100%;}.right-in{
    height1000px;}</style>

CSS全屏布局的5种方式

CSS全屏布局的5种方式

<div class="parent" id="parent" >
    <div class="top" >
        <p>top</p>
    </div>  
    <div class="middleWrap">
        <div class="middle" >
            <div class="left" >
                <p>left</p>
            </div>
            <div class="right" >
                <div class="right-in">
                    <p>right</p>
                </div>
            </div>
        </div>        
    </div> 
    <div class="bottom" >
        <p>bottom</p>
    </div>        </div>

CSS全屏布局的5种方式

思路二: inline-block

【1】inline-block + calc

CSS全屏布局的5种方式

<style>body,p{margin0;}body,html,.parent{height100%;}.middle{
    heightcalc(100% - 100px);
    font-size0;}.left,.right{
    display: inline-block;
    vertical-align: top;
    font-size16px;}.left{
    width100px;
    margin-right20px;
    height100%;}.right{
    widthcalc(100% - 120px);
    height100%;
    overflow: auto;}.right-in{
    height1000px;}.top,.bottom{height50px;}</style>

CSS全屏布局的5种方式

CSS全屏布局的5种方式

<div class="parent" id="parent" >
    <div class="top" >
        <p>top</p>
    </div>  
    <div class="middle" >
        <div class="left" >
            <p>left</p>
        </div>
        <div class="right" >
            <div class="right-in">
                <p>right</p>
            </div>
        </div>
    </div>        
    <div class="bottom" >
        <p>bottom</p>
    </div>        </div>

CSS全屏布局的5种方式

【2】inline-block + absolute + (fix)

CSS全屏布局的5种方式

<style>body,p{margin0;}body,html,.parent{height100%;}.top,.bottom{
    position: absolute;
    left0;
    right0;
    height50px;}.top{top0;}.bottom{bottom0;}.middleWrap{
    height100%;
    font-size0;
    overflow: hidden;}.middle{
    position: relative;
    height100%;
    margin50px 0;
    overflow: hidden;}.left,.rightWrap{
    display: inline-block;
    vertical-align: top;
    font-size16px;}.left{
    position: absolute;
    width100px;
    margin-right20px;
    height100%;}.rightWrap{
    width100%;
    height100%;}.right{
    height100%;
    margin-left120px;
    overflow: auto;}.right-in{
    height1000px;}</style>

CSS全屏布局的5种方式

CSS全屏布局的5种方式

<div class="parent" id="parent" >
    <div class="top" >
        <p>top</p>
    </div>  
    <div class="middleWrap">
        <div class="middle" >
            <div class="left" >
                <p>left</p>
            </div>
            <div class="rightWrap">
                <div class="right" >
                    <div class="right-in">
                        <p>right</p>
                    </div>
                </div>                
            </div>
        </div>         
    </div>
    <div class="bottom" >
        <p>bottom</p>
    </div>        </div>

CSS全屏布局的5种方式

思路三: table

  水平方向子元素的间距可以用border实现。所有浏览器都不支持给table-cell元素设置overflow属性。firefox和IE11浏览器不支持给table-cell元素的设置100%高度的子元素设置overflow属性

CSS全屏布局的5种方式

<style>body,p{margin0;}body,html,.parent{height100%;}.top,.bottom{
    position: absolute;
    width100%;
    height50px;}.bottom{bottom0;}.middleWrap{
    height100%;
    overflow: hidden;}.middle{
    width100%;
    height100%;
    display: table;    
    margin50px 0;
    table-layout: fixed;}.left{
    display: table-cell;
    width120px;
    border-right20px solid lightgray;}.rightWrap{
    display: table-cell;
    height100%;}.right{
    height100%;
    overflow: auto;}.right-in{
    height1000px;}</style>

CSS全屏布局的5种方式

CSS全屏布局的5种方式

<div class="parent" id="parent" >
    <div class="top" >
        <p>top</p>
    </div> 
    <div class="middleWrap">
        <div class="middle" >
            <div class="left" >
                <p>left</p>
            </div>     
            <div class="rightWrap">
                <div class="right" >
                    <div class="right-in">
                        <p>right</p>
                    </div>            
                </div>                    
            </div>   
        </div>         
    </div>    
    <div class="bottom" >
        <p>bottom</p>
    </div>        </div>

CSS全屏布局的5种方式

思路四: absolute

CSS全屏布局的5种方式

<style>body,p{margin0;}body,html,.parent{height100%;}.top,.middle,.bottom{
    position: absolute;
    left0;
    right0;}.top{
    top0;
    height50px;}.bottom{
    bottom0;
    height50px;}.middle{
    top50px;
    bottom50px;}.left,.right{
    position: absolute;
    top0;
    bottom0;}.left{
    width:100px;}.right{
    left120px;
    right0;
    overflow: auto;}.right-in{
    height1000px;}</style>

CSS全屏布局的5种方式

CSS全屏布局的5种方式

<div class="parent" id="parent" >
    <div class="top" >
        <p>top</p>
    </div> 
    <div class="middle" >
        <div class="left" >
            <p>left</p>
        </div>     
        <div class="right" >
            <div class="right-in">
                <p>right</p>
            </div>            
        </div>                    
    </div>              
    <div class="bottom" >
        <p>bottom</p>
    </div>        </div>

CSS全屏布局的5种方式

思路五: flex

  flex常用于小范围的布局,使用全屏布局时会因为性能问题,出现卡顿现象。如果要使用全屏自适应布局,则只有flex才能达到效果

CSS全屏布局的5种方式

<style>body,p{margin0;}body,html,.parent{height100%;}.parent{
    display: flex;
    flex-direction: column;}.top,.bottom{
    height50px;}.middle{
    display: flex;
    flex1;}.left{
    width100px;
    margin-right20px;}.right{
    flex1;
    overflow: auto;}.right-in{
    height1000px;}</style>

CSS全屏布局的5种方式

CSS全屏布局的5种方式

<div class="parent" id="parent" >
    <div class="top" >
        <p>top</p>
    </div> 
    <div class="middle" >
        <div class="left" >
            <p>left</p>
        </div>     
        <div class="right" >
            <div class="right-in">
                <p>right</p>
            </div>            
        </div>                    
    </div>              
    <div class="bottom" >
        <p>bottom</p>
    </div>        </div>

CSS全屏布局的5种方式

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×