Heim  >  Artikel  >  Web-Frontend  >  Vier Möglichkeiten zur Implementierung des Doppelflügel-Layouts mit CSS (mit Code)

Vier Möglichkeiten zur Implementierung des Doppelflügel-Layouts mit CSS (mit Code)

不言
不言Original
2018-09-10 16:34:554513Durchsuche

Der Inhalt dieses Artikels befasst sich mit den vier Methoden zur Realisierung eines Double-Flying-Wing-Layouts (mit Code). Ich hoffe, dass er für Sie hilfreich ist.

Holy-Grail-Layout und Double-Flying-Wing-Layout-Renderings

Vier Möglichkeiten zur Implementierung des Doppelflügel-Layouts mit CSS (mit Code)

Aus den Renderings die Effekte des Holy-Grail-Layouts und des Double-Flying-Wing Das Layout ist das gleiche.
Holy Grail Layout und Double Flying Wing Layout haben feste Breiten auf der linken und rechten Seite, und die Inhaltsbreite in der Mitte ist adaptiv, also 100 %

Holy Grail Layout

<style>
    *{
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    .clearfix:before,
    .clearfix:after{
        display: table;
        content: " ";
        clear: both;
    }
    .container{
        padding: 0 200px;
    }
    .header,
    .footer{
        height: 200px;
        font-size: 28px;
        background-color: #f3f3f3;
    }
    .left{
        position: relative;
        /* 2、将.left再次拉到最左边,否则.main的左侧会有200px的空白 */
        left: -200px;
        float: left;
        width: 200px;
        min-height: 300px;
        /* 1、将.left拉到最左边,原来.left是掉下去的 */
        margin-left: -100%;
        background-color: #f00;
    }
    .main{
        float: left;
        width: 100%;
        min-height: 300px;
        background-color: #c32228;
    }
    .right{
        position: relative;
        /* 2、将.right再次拉到最右边,否则.main的右侧会有200px的空白 */
        right: -200px;
        float: left;
        width: 200px;
        /*/1、将.right拉到最右边,原来.right是掉下去的 */
        margin-left: -200px;
        min-height: 300px;
        background-color: #f90;
    }
</style>
rrree

Schwimmend, um das Layout mit doppelten fliegenden Flügeln zu erreichen

<div>header</div>
<div>
    <div>main</div>
    <div>left</div>
    <div>right</div>
</div>
<div>footer</div>
rrree

Tabellenzelle implementiert das Layout mit doppelten fliegenden Flügeln (IE8 ist auch kompatibel~)

<style>
    *{
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    .clearfix:before,
    .clearfix:after{
        display: table;
        content: " ";
        clear: both;
    }
    .header,
    .footer{
        height: 200px;
        font-size: 28px;
        background-color: #f3f3f3;
    }
    .left{
        float: left;
        width: 200px;
        min-height: 300px;
        /* 将.left拉到最左边,原来.left是掉下去的 */
        margin-left: -100%;
        background-color: #f00;
    }
    .main{
        float: left;
        width: 100%;
        min-height: 300px;
        /* .left、.right各占了200px,因此需要将其抵消掉 */
        padding: 0 200px;
        background-color: #c32228;
    }
    .right{
        float: left;
        width: 200px;
        /* 将.right拉到最右边,原来.right是掉下去的 */
        margin-left: -200px;
        min-height: 300px;
        background-color: #f90;
    }
    
</style>
<div>header</div>
<div>
    <div>
        <div>main</div>
    </div>
    <div>left</div>
    <div>right</div>
</div>
<div>footer</div>

Absolute Positionierung implementiert doppelte Flying-Wing-Layout

Es gibt ein kleines Problem mit der absoluten Positionierung: Die Höhe des übergeordneten Containers kann nur durch die Höhe von .main bestimmt werden

<style>
    *{
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    .container{
        display: table;
    }
    .header,
    .footer{
        height: 200px;
        font-size: 28px;
        background-color: #f3f3f3;
    }
    .left,
    .right,
    .main{
        /* 外层容器使用table-cell布局,设置元素为table-cell布局后它们就能在一行显示了,display: table-cell;设置宽度无效,
因此他们的宽度由内容撑开。 */
        display: table-cell;            
    }
    .left-inner{
        width: 200px;
        min-height: 300px;
        background-color: #f00;
    }
    .main{
        width: 100%;            
    }
    .main-inner{
        min-height: 300px;
        background-color: #c32228;
    }
    .right-inner{
        width: 200px;
        min-height: 300px;
        background-color: #f90;
    }
</style>
<div>header</div>
<div>
    
    <div>
        <div>left</div>
    </div>
    <div>
        <div>main</div>
    </div>
    <div>
        <div>right</div>
    </div>
</div>
<div>footer</div>

Verwenden Sie Flex, um ein doppeltes Flying-Wing-Layout zu implementieren ( Es gibt Kompatibilitätsprobleme)

<style>
    *{
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }
    .container{
        position: relative;
        padding: 0 200px;
    }
    .header,
    .footer{
        height: 200px;
        font-size: 28px;
        background-color: #f3f3f3;
    }
    .left{
        position: absolute;
        top: 0;
        left: 0;
        width: 200px;
        min-height: 300px;
        background-color: #f00;
    }
    .main{
        min-height: 300px;
        background-color: #c32228;
    }
    .right{
        position: absolute;
        top: 0;
        right: 0;
        width: 200px;
        min-height: 300px;
        background-color: #f90;
    }    
</style>
<div>header</div>
<div>
    <div>left</div>
    <div>mian</div>
    <div>right</div>
</div>
<div>footer</div>

Verwandte Empfehlungen:

Was ist ein Doppelflügler-Layout? Teilen Sie einen Beispielcode für ein Doppelflügler-Layout

CSS-Layout Holy Grail Layout & Doppelflügler-Layout_html/css_WEB-ITnose

Das obige ist der detaillierte Inhalt vonVier Möglichkeiten zur Implementierung des Doppelflügel-Layouts mit CSS (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn