ホームページ  >  記事  >  ウェブフロントエンド  >  CSS をフルスクリーンで使用する 5 つの方法layout_html/css_WEB-ITnose

CSS をフルスクリーンで使用する 5 つの方法layout_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 11:19:021343ブラウズ

× Directory [1] float [2] inline-block [3] table [4]Absolute [5] flex [6] まとめ

前の単語

フルスクリーンレイアウトは実際の作業で非常によく使用されますが、管理システム、監視プラットフォームなどこの記事では、全画面レイアウトに関する 5 つのアイデアを紹介します

アイデア 1: float

[1] float + calc

calc() 関数で .middle 要素の高さを計算し、子要素を100%に

<style>body,p{margin: 0;}body,html,.parent{height: 100%;}.middle{    overflow: hidden;    height: calc(100% - 100px);}.left{    float: left;    width: 100px;    margin-right: 20px;    height: 100%;}.right{    overflow: auto;    height: 100%;}.right-in{    height: 1000px;}.top,.bottom{height:50px;}</style>

<div class="parent" id="parent" style="background-color: lightgrey;">    <div class="top" style="background-color: lightblue;">        <p>top</p>    </div>      <div class="middle" style="background-color: pink;">        <div class="left" style="background-color: orange;">            <p>left</p>        </div>        <div class="right" style="background-color: lightsalmon;">            <div class="right-in">                <p>right</p>            </div>        </div>    </div>              <div class="bottom" style="background-color: lightgreen;">        <p>bottom</p>    </div>        </div>

【2】float +Absolute + (fix)

構造を追加して互換性を向上、.middle要素は高さを100%に設定、.topと.bottomは絶対オーバーレイをオンに設定.middle

<style>body,p{margin: 0;}body,html,.parent{height: 100%;}.top,.bottom{    position: absolute;    height:50px;    left: 0;    right: 0;}.top{top: 0;}.bottom{bottom: 0;}.middleWrap{    height: 100%;    overflow: hidden;}.middle{    overflow: hidden;    height: 100%;    margin: 50px 0;}.left{    float: left;    width: 100px;    margin-right: 20px;    height: 100%;}.right{    overflow: auto;    height: 100%;}.right-in{    height: 1000px;}</style>

<div class="parent" id="parent" style="background-color: lightgrey;">    <div class="top" style="background-color: lightblue;">        <p>top</p>    </div>      <div class="middleWrap">        <div class="middle" style="background-color: pink;">            <div class="left" style="background-color: orange;">                <p>left</p>            </div>            <div class="right" style="background-color: lightsalmon;">                <div class="right-in">                    <p>right</p>                </div>            </div>        </div>            </div>     <div class="bottom" style="background-color: lightgreen;">        <p>bottom</p>    </div>        </div>

アイデア 2: inline-block

【1】inline-block + calc

<style>body,p{margin: 0;}body,html,.parent{height: 100%;}.middle{    height: calc(100% - 100px);    font-size: 0;}.left,.right{    display: inline-block;    vertical-align: top;    font-size: 16px;}.left{    width: 100px;    margin-right: 20px;    height: 100%;}.right{    width: calc(100% - 120px);    height: 100%;    overflow: auto;}.right-in{    height: 1000px;}.top,.bottom{height: 50px;}</style>

<div class="parent" id="parent" style="background-color: lightgrey;">    <div class="top" style="background-color: lightblue;">        <p>top</p>    </div>      <div class="middle" style="background-color: pink;">        <div class="left" style="background-color: orange;">            <p>left</p>        </div>        <div class="right" style="background-color: lightsalmon;">            <div class="right-in">                <p>right</p>            </div>        </div>    </div>            <div class="bottom" style="background-color: lightgreen;">        <p>bottom</p>    </div>        </div>

【2】インラインブロック + 絶対 + (修正)

<style>body,p{margin: 0;}body,html,.parent{height: 100%;}.top,.bottom{    position: absolute;    left: 0;    right: 0;    height: 50px;}.top{top: 0;}.bottom{bottom: 0;}.middleWrap{    height: 100%;    font-size: 0;    overflow: hidden;}.middle{    position: relative;    height: 100%;    margin: 50px 0;    overflow: hidden;}.left,.rightWrap{    display: inline-block;    vertical-align: top;    font-size: 16px;}.left{    position: absolute;    width: 100px;    margin-right: 20px;    height: 100%;}.rightWrap{    width: 100%;    height: 100%;}.right{    height: 100%;    margin-left: 120px;    overflow: auto;}.right-in{    height: 1000px;}</style>

<div class="parent" id="parent" style="background-color: lightgrey;">    <div class="top" style="background-color: lightblue;">        <p>top</p>    </div>      <div class="middleWrap">        <div class="middle" style="background-color: pink;">            <div class="left" style="background-color: orange;">                <p>left</p>            </div>            <div class="rightWrap">                <div class="right" style="background-color: lightsalmon;">                    <div class="right-in">                        <p>right</p>                    </div>                </div>                            </div>        </div>             </div>    <div class="bottom" style="background-color: lightgreen;">        <p>bottom</p>    </div>        </div>

3 つのアイデア: table

水平方向のサブ要素の間隔は、境界線を使用して実現できます。すべてのブラウザは、table-cell 要素のオーバーフロー属性の設定をサポートしません。 Firefox および IE11 ブラウザーは、表セル要素の高さが 100% である子要素のオーバーフロー属性の設定をサポートしていません。えー

アイデア 5: flex

Flex は小規模なレイアウトによく使用されます。全画面レイアウトを使用すると、パフォーマンスの問題により遅延が発生する可能性があります。全画面アダプティブ レイアウトを使用したい場合、その効果を実現できるのは flex だけです

<style>body,p{margin: 0;}body,html,.parent{height: 100%;}.top,.bottom{    position: absolute;    width: 100%;    height: 50px;}.bottom{bottom: 0;}.middleWrap{    height: 100%;    overflow: hidden;}.middle{    width: 100%;    height: 100%;    display: table;        margin: 50px 0;    table-layout: fixed;}.left{    display: table-cell;    width: 120px;    border-right: 20px solid lightgray;}.rightWrap{    display: table-cell;    height: 100%;}.right{    height: 100%;    overflow: auto;}.right-in{    height: 1000px;}</style>

<div class="parent" id="parent" style="background-color: lightgrey;">    <div class="top" style="background-color: lightblue;">        <p>top</p>    </div>     <div class="middleWrap">        <div class="middle" style="background-color: pink;">            <div class="left" style="background-color: orange;">                <p>left</p>            </div>                 <div class="rightWrap">                <div class="right" style="background-color: lightsalmon;">                    <div class="right-in">                        <p>right</p>                    </div>                            </div>                                </div>           </div>             </div>        <div class="bottom" style="background-color: lightgreen;">        <p>bottom</p>    </div>        </div>

概要

フルスクリーン レイアウトは、実際には 2 列または 3 列アダプティブの拡張形式です。レイアウト。フルスクリーン効果を実現するため、実際には高さが固定されるため、アイデアは等高レイアウトに制限されません。水平要素間の間隔は、実際の状況に応じて、margin、padding、border を使用して実現できます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。