Rumah hujung hadapan web tutorial css CSS等高布局的6种方式介绍

CSS等高布局的6种方式介绍

Mar 13, 2017 pm 05:49 PM
css

下面小编就为大家带来一篇CSS等高布局的6种方式介绍。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

前面的话

等高布局是指子元素在父元素中高度相等的布局方式。等高布局的实现包括伪等高和真等高,伪等高只是看上去等高而已,真等高是实实在在的等高。本文将介绍边框模拟、负margin这两种伪等高以及table实现、absolute实现、flex实现和js判断这四种真等高布局

伪等高

边框模拟  

因为元素边框和元素高度始终是相同高度,用元素的边框颜色来伪装左右两个兄弟元素的背景色。然后将左右两个透明背景的元素使用absolute覆盖在中间元素的左右边框上,实现视觉上的等高效果

[注意]左右两侧元素高度不能大于中间元素高度,否则无法撑开容器高度


CSS Code复制内容到剪贴板

<style>   
body,p{margin: 0;}   
.parent{   
    position: relative;   
}   
.center{   
    box-sizing:border-box;   
    padding: 0 20px;   
    background-clip: content-box;   
    border-left: 210px solid lightblue;   
    border-right: 310px solid lightgreen;   
}   
.left{   
    position: absolute;   
    top: 0;   
    left: 0;   
    width: 200px;   
}   
.rightright{   
    position: absolute;   
    top: 0;   
    rightright: 0;   
    width: 300px;   
}   
</style>
Salin selepas log masuk


XML/HTML Code复制内容到剪贴板

<p class="parent" style="background-color: lightgrey;">
    <p class="left">
        <p>left</p>
    </p>
    <p class="center" style="background-color: pink;">
        <p>center</p>
        <p>center</p>
    </p>
    <p class="right">
        <p>right</p>
    </p>
</p>
Salin selepas log masuk


CSS等高布局的6种方式介绍

负margin  

因为背景是在padding区域显示的,设置一个大数值的padding-bottom,再设置相同数值的负的margin-bottom,使背景色铺满元素区域,又符合元素的盒模型的计算公式,实现视觉上的等高效果

[注意]如果页面中使用锚点跳转时,将会隐藏部分文字信息

[注意]如果页面中的背景图片定位到底部,将会看不到背景图片


CSS Code复制内容到剪贴板

<style>   
body,p{margin: 0;}   
.parent{   
    overflow: hidden;   
}   
.left,.centerWrap,.rightright{   
    float: left;   
    width: 50%;   
    padding-bottom: 9999px;   
    margin-bottom: -9999px;   
}   
.center{   
    margin: 0 20px;   
}   
.left,.rightright{   
    width: 25%;   
}   
</style>
Salin selepas log masuk



XML/HTML Code复制内容到剪贴板

<p class="parent" style="background-color: lightgrey;">
    <p class="left" style="background-color: lightblue;">
        <p>left</p>
    </p>
    <p class="centerWrap">
        <p class="center" style="background-color: pink;">
            <p>center</p>
            <p>center</p>
        </p>
    </p>

    <p class="right" style="background-color: lightgreen;">
        <p>right</p>
    </p>
</p>
Salin selepas log masuk


CSS等高布局的6种方式介绍

真等高

table  

table元素中的table-cell元素默认就是等高的


CSS Code复制内容到剪贴板

<style>   
body,p{margin: 0;}   
.parent{   
    display: table;   
    width: 100%;   
    table-layout: fixed;   
}   
.left,.centerWrap,.rightright{   
    display: table-cell;   
}   
.center{   
    margin: 0 20px;   
}   
</style>
Salin selepas log masuk



XML/HTML Code复制内容到剪贴板

<p class="parent" style="background-color: lightgrey;">
    <p class="left" style="background-color: lightblue;">
        <p>left</p>
    </p>
    <p class="centerWrap">
        <p class="center" style="background-color: pink;">
            <p>center</p>
            <p>center</p>
        </p>
    </p>
    <p class="right" style="background-color: lightgreen;">
        <p>right</p>
    </p>
</p>
Salin selepas log masuk


CSS等高布局的6种方式介绍

absolute  

设置子元素的top:0;bottom:0;使得所有子元素的高度都和父元素的高度相同,实现等高效果


CSS Code复制内容到剪贴板

<style>   
body,p{margin: 0;}   
.parent{   
    position: relative;   
    height: 40px;   
}   
.left,.center,.rightright{   
    position: absolute;   
    top: 0;   
    bottombottom: 0;   
}   
.left{   
    left: 0;   
    width: 100px;   
}   
.center{   
    left: 120px;   
    rightright: 120px;   
}   
.rightright{   
    width: 100px;   
    rightright: 0;   
}   
</style>
Salin selepas log masuk




XML/HTML Code复制内容到剪贴板

<p class="parent" style="background-color: lightgrey;">
    <p class="left" style="background-color: lightblue;">
        <p>left</p>
    </p>
    <p class="center" style="background-color: pink;">
        <p>center</p>
        <p>center</p>
    </p>
    <p class="right" style="background-color: lightgreen;">
        <p>right</p>
    </p>
</p>
Salin selepas log masuk
Salin selepas log masuk


CSS等高布局的6种方式介绍

flex  

flex中的伸缩项目默认都拉伸为父元素的高度,也实现了等高效果


CSS Code复制内容到剪贴板

<style>   
body,p{margin: 0;}   
.parent{   
    display: flex;   
}   
.left,.center,.rightright{   
    flex: 1;   
}   
.center{   
    margin: 0 20px;   
}   
</style>
Salin selepas log masuk



XML/HTML Code复制内容到剪贴板

<p class="parent" style="background-color: lightgrey;">
    <p class="left" style="background-color: lightblue;">
        <p>left</p>
    </p>
    <p class="center" style="background-color: pink;">
        <p>center</p>
        <p>center</p>
    </p>
    <p class="right" style="background-color: lightgreen;">
        <p>right</p>
    </p>
</p>
Salin selepas log masuk
Salin selepas log masuk


CSS等高布局的6种方式介绍

js  

当子元素高度不同时,进行js判断,增加较低子元素的padding-bottom,使得各个子元素实现等高效果


CSS Code复制内容到剪贴板

<style>   
body,p{margin: 0;}   
.parent{overflow: hidden;}   
.left,.center,.rightright{   
    float: left;   
    width: 25%;   
}       
.center{   
    width: 50%;   
    padding: 0 20px;   
    background-clip: content-box;   
    box-sizing: border-box;   
}   
</style>
Salin selepas log masuk



XML/HTML Code复制内容到剪贴板

<p class="parent" id="parent" style="background-color: lightgrey;">
    <p class="left" style="background-color: lightblue;">
        <p>left</p>
    </p>
    <p class="center" style="background-color: pink;">
        <p>center</p>
        <p>center</p>
    </p>
    <p class="right" style="background-color: lightgreen;">
        <p>right</p>
    </p>
</p>
Salin selepas log masuk



JavaScript Code复制内容到剪贴板

<script>   
function getCSS(obj,style){   
    if(window.getComputedStyle){   
        return getComputedStyle(obj)[style];   
    }   
    return obj.currentStyle[style];   
}   
var oParent = document.getElementById(&#39;parent&#39;);   
var oLeft = oParent.getElementsByTagName(&#39;p&#39;)[0];   
var oCenter = oParent.getElementsByTagName(&#39;p&#39;)[1];   
var oRight = oParent.getElementsByTagName(&#39;p&#39;)[2];   
function eqHeight(obj1,obj2){   
    var oDis = obj1.clientHeight - obj2.clientHeight;   
    if(oDis > 0){   
        obj2.style.paddingBottom = parseFloat(getCSS(obj2,&#39;padding-bottom&#39;)) + oDis + &#39;px&#39;;   
    }else{   
        obj1.style.paddingBottom = parseFloat(getCSS(obj1,&#39;padding-bottom&#39;)) +  Math.abs(oDis) + &#39;px&#39;;   
    }   
}   
eqHeight(oLeft,oCenter);   
eqHeight(oLeft,oRight);   
</script>
Salin selepas log masuk


CSS等高布局的6种方式介绍

以上这篇浅析CSS等高布局的6种方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持PHP中文网。


Atas ialah kandungan terperinci CSS等高布局的6种方式介绍. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan bootstrap di vue Cara menggunakan bootstrap di vue Apr 07, 2025 pm 11:33 PM

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Peranan HTML, CSS, dan JavaScript: Tanggungjawab Teras Peranan HTML, CSS, dan JavaScript: Tanggungjawab Teras Apr 08, 2025 pm 07:05 PM

HTML mentakrifkan struktur web, CSS bertanggungjawab untuk gaya dan susun atur, dan JavaScript memberikan interaksi dinamik. Ketiga melaksanakan tugas mereka dalam pembangunan web dan bersama -sama membina laman web yang berwarna -warni.

Memahami HTML, CSS, dan JavaScript: Panduan Pemula Memahami HTML, CSS, dan JavaScript: Panduan Pemula Apr 12, 2025 am 12:02 AM

WebDevelopmentReliesOnhtml, CSS, andjavascript: 1) HtmlStructuresContent, 2) CSSStylesit, dan3) JavaScriptaddsInteractivity, Formingthebasisofmodernwebexperiences.

Cara Menulis Garis Pecah Di Bootstrap Cara Menulis Garis Pecah Di Bootstrap Apr 07, 2025 pm 03:12 PM

Terdapat dua cara untuk membuat garis perpecahan bootstrap: menggunakan tag, yang mewujudkan garis perpecahan mendatar. Gunakan harta sempadan CSS untuk membuat garis perpecahan gaya tersuai.

Cara Menyiapkan Kerangka untuk Bootstrap Cara Menyiapkan Kerangka untuk Bootstrap Apr 07, 2025 pm 03:27 PM

Untuk menubuhkan rangka kerja bootstrap, anda perlu mengikuti langkah -langkah ini: 1. Rujuk fail bootstrap melalui CDN; 2. Muat turun dan tuan rumah fail pada pelayan anda sendiri; 3. Sertakan fail bootstrap di HTML; 4. Menyusun sass/kurang seperti yang diperlukan; 5. Import fail tersuai (pilihan). Setelah persediaan selesai, anda boleh menggunakan sistem grid Bootstrap, komponen, dan gaya untuk membuat laman web dan aplikasi yang responsif.

Cara memasukkan gambar di bootstrap Cara memasukkan gambar di bootstrap Apr 07, 2025 pm 03:30 PM

Terdapat beberapa cara untuk memasukkan imej dalam bootstrap: masukkan imej secara langsung, menggunakan tag HTML IMG. Dengan komponen imej bootstrap, anda boleh memberikan imej yang responsif dan lebih banyak gaya. Tetapkan saiz imej, gunakan kelas IMG-cecair untuk membuat imej boleh disesuaikan. Tetapkan sempadan, menggunakan kelas IMG-Sempadan. Tetapkan sudut bulat dan gunakan kelas IMG-bulat. Tetapkan bayangan, gunakan kelas bayangan. Saiz semula dan letakkan imej, menggunakan gaya CSS. Menggunakan imej latar belakang, gunakan harta CSS imej latar belakang.

Cara menggunakan butang bootstrap Cara menggunakan butang bootstrap Apr 07, 2025 pm 03:09 PM

Bagaimana cara menggunakan butang bootstrap? Perkenalkan CSS bootstrap untuk membuat elemen butang dan tambahkan kelas butang bootstrap untuk menambah teks butang

Cara mengubah saiz bootstrap Cara mengubah saiz bootstrap Apr 07, 2025 pm 03:18 PM

Untuk menyesuaikan saiz unsur-unsur dalam bootstrap, anda boleh menggunakan kelas dimensi, yang termasuk: menyesuaikan lebar: .col-, .w-, .mw-adjust ketinggian: .h-, .min-h-, .max-h-

See all articles