css中有哪些实现等高布局常的方法

这篇文章给大家介绍css中有哪些实现等高布局常的方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联公司是一家集网站建设,桂阳企业网站建设,桂阳品牌网站建设,网站定制,桂阳网站建设报价,网络营销,网络优化,桂阳网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

什么是css

css是一种用来表现HTML或XML等文件样式的计算机语言,主要是用来设计网页的样式,使网页更加美化。它也是一种定义样式结构如字体、颜色、位置等的语言,并且css样式可以直接存储于HTML网页或者单独的样式单文件中,而样式规则的优先级由css根据这个层次结构决定,从而实现级联效果,发展至今,css不仅能装饰网页,也可以配合各种脚本对于网页进行格式化。

等高布局的方式

指在同一个父容器中,子元素高度相等的布局.

从等高布局实现方式来说,又分为两类

伪等高

子元素高度差依然存在,只是视觉上给人感觉就是等高.

真等高

子元素高度相等

先来看看伪等高实现方式

通过负margin和Padding实现

真等高实现方式

  • table

  • absoult

  • flex

  • grid

  • js

伪等高之-负margin和padding

主要利用负margin来实现, 具体 负margin实现可以参考下这篇文章

 
        

left

                     

我是中间部分的内容

            

我是中间部分的内容

            

我是中间部分的内容

            

我是中间部分的内容

        
        

right

        11111111111
    
.parent{
    position: relative;
    overflow:hidden;
    color: #efefef;
}
.center,
.left,
.right {
    box-sizing: border-box;
    float: left;
}
.center {
    background-color: #2ECC71;
    width: 60%;
}

.left {
    width: 20%;
    background-color: #1ABC9C;
}
.right {
    width: 20%;
    background-color: #3498DB;
}
.left,
.right,
.center  {
    margin-bottom: -99999px;
    padding-bottom: 99999px;
}

真实等高之 - table布局

  
        

left

                     

我是中间部分的内容

            

我是中间部分的内容

            

我是中间部分的内容

            

我是中间部分的内容

                 

right

        11111111111     
.parent{
        position: relative;
        display: table;
        color: #efefef;
    }
    .center,
    .left,
    .right {
        box-sizing: border-box;
        display: table-cell
    }
    .center {
        background-color: #2ECC71;
        width: 60%;
    }

    .left {
        width: 20%;
        background-color: #1ABC9C;
    }
    .right {
        width: 20%;
        background-color: #3498DB;
    }

真实等高之 - absolute


        

left

                       

我是中间部分的内容

            

我是中间部分的内容

            

我是中间部分的内容

            

我是中间部分的内容

                 

right

    
   .parent{
        position: absolute;
        color: #efefef;
        width:100%;
        height: 200px;
    }

    .left,
    .right,
    .center {
        position: absolute;
        box-sizing: border-box;
        top:0;
        bottom:0;
    }
    .center {
        background-color: #2ECC71;
        left: 200px;
        right: 300px;
    }

    .left {
        width: 200px;
        background-color: #1ABC9C;
    }
    .right {
        right:0;
        width: 300px;
        background-color: #3498DB;
    }

真实等高之 - flex

.parent{
    display: flex;
    color: #efefef;
    width:100%;
    height: 200px;
}

.left,
.right,
.center {
    box-sizing: border-box;
    flex: 1;
}
.center {
    background-color: #2ECC71;
}
.left {
    background-color: #1ABC9C;
}
.right {
    background-color: #3498DB;
}

    

left

               

我是中间部分的内容

        

我是中间部分的内容

        

我是中间部分的内容

        

我是中间部分的内容

         

right

真实等高之 - grid

.parent{
        display: grid;
        color: #efefef;
        width:100%;
        height: 200px;
        grid-template-columns: 1fr 1fr 1fr;
    }

    .left,
    .right,
    .center {
        box-sizing: border-box;
    }
    .center {
        background-color: #2ECC71;
    }
    .left {
        background-color: #1ABC9C;
    }
    .right {
        background-color: #3498DB;
    }

    

left

               

我是中间部分的内容

        

我是中间部分的内容

        

我是中间部分的内容

        

我是中间部分的内容

         

right

真实等高之 - js

获取所有元素中最高列,然后再去比对再进行修改

        

left

                       

我是中间部分的内容

            

我是中间部分的内容

            

我是中间部分的内容

            

我是中间部分的内容

                 

right

    
.parent{
        overflow: auto;
        color: #efefef;
    }
    .left,
    .right,
    .center {
        float: left;
    }
    .center {
        width: 60%;
        background-color: #2ECC71;
    }
    .left {
        width: 20%;
        background-color: #1ABC9C;
    }
    .right {
        width: 20%;
        background-color: #3498DB;
    }
 // 获取最高元素的高度
    var nodeList = document.querySelectorAll(".parent > div");
    var arr = [].slice.call(nodeList,0);
    var maxHeight = arr.map(function(item){
        return item.offsetHeight
    }).sort(function(a, b){
        return a - b;
    }).pop();
    arr.map(function(item){
        if(item.offsetHeight < maxHeight) {
            item.style.height = maxHeight + "px";
        }
    });

css中有哪些实现等高布局常的方法

关于css中有哪些实现等高布局常的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


网站标题:css中有哪些实现等高布局常的方法
文章URL:http://myzitong.com/article/isjdij.html

其他资讯