ホームページ  >  記事  >  ウェブフロントエンド  >  CSS アダプティブ レイアウト: CSS 幅の適応を実装するにはどうすればよいですか?

CSS アダプティブ レイアウト: CSS 幅の適応を実装するにはどうすればよいですか?

不言
不言オリジナル
2018-09-10 14:01:2620409ブラウズ

今日のWebページのレイアウトはさまざまな画面に適応する必要があるため、Webページ内のコンテンツを完全に表示できるように適応する必要があります。そこで、今日の記事ではCSSのコンテンツの幅の適応について紹介します。 CSS アダプティブ レイアウトで CSS 幅の適応を実装する方法について詳しく説明します。

おすすめ関連記事:
1.適応性の高いCSSを実現するには? CSSの高さをコンテンツに適応させる簡単な方法
2.CSS の一般的なアダプティブ レイアウトとは何ですか
関連ビデオの推奨事項:
1.CSS ビデオ チュートリアル - 翡翠少女般若心経編

よくこのようなページがあり、左側 (または右側) が固定ナビゲーションまたはメニュー バーの反対側は、ブラウザのズームに応じてサイズを変更します。これは実際には幅調整の実装です。

CSS の幅調整には 2 つの最も一般的な実装方法があります。1 つは 2 列レイアウト、もう 1 つは 3 列レイアウトです。

これら 2 つの方法をそれぞれ簡単に紹介します。

1. CSS 幅適応 2 列レイアウト:

例として、固定幅の右側と適応幅の左側を考えてみましょう:

1. 固定幅の領域はフローティングです。適応領域は幅なしで設定されます

<div id="wrap">
  <div id="sidebar" style="height:500px;background:red;color:#fff;">固定宽度区</div>
  <div id="content" style="height:500px;background:#000;color:#fff;">自适应区</div>
</div>
#sidebar {
  float: right; width: 300px;
}#content {
  margin-right: 300px;
}

注:

右側は常に固定されており、左側は画面の残りのサイズに応じて適応されます。

しかし実際には、この方法には制限があります。つまり、サイドバーは HTML 構造のコンテンツの前になければなりません。

2. float と margin を併用する

<div id="wrap">
  <div id="content" style="height:500px;background:#000;color:#fff;">
    <div class="contentInner">
       自适应区    </div>
  </div>
  <div id="sidebar" style="height:500px;background:red;color:#fff;">固定宽度区</div>
</div>
#content {
  margin-left: -300px; float: left; width: 100%;
}#content .contentInner{
  margin-left:300px;
}#sidebar {
  float: right; width: 300px;
}

説明: この方法では、contentInner の実際の幅は画面幅 -300px になります。

3. 固定幅領域に絶対位置を使用し、適応領域にマージンを設定します

<div id="wrap">
  <div id="content" style="height:500px;background:#000;color:#fff;">我现在的结构是在前面</div>
  <div id="sidebar" style="height:500px;background:red;color:#fff;">固定宽度区</div>
  </div>
#wrap{
  position:relative;
}#content {
  margin-right:300px;
}#sidebar {
  position:absolute;
  width:300px;
  right:0;
  top:0;
}

4. 実現するには、display:table を使用します

<div id="wrap">
  <div id="content" style="height:500px;background:#000;color:#fff;">我现在的结构是在前面</div>
  <div id="sidebar" style="height:500px;background:red;color:#fff;">固定宽度区</div>
</div>
#wrap{
  display:table;
  width:100%;
}#content {
  display:table-cell;
}#sidebar {
 width:300px;
  display:table-cell;
}

注: この方法は、IE7 以下のブラウザーとは互換性がありません。 IE7 表への設定表示が認識されません。

2. CSS 幅適応型 3 列レイアウト:

1. 固定幅の 3 列レイアウト

    <div class="div0">
        <div class="left">left</div>
        <div class="middle">middle</div>
        <div class="right">right</div>
    </div>
*{
    padding: 0;
    margin: 0;
}
.div0{
    width: 800px;
    height: 500px;/*设置高度只为结果更直观,高度可根据内容自适应*/
    margin: 50px auto;
    border: 2px solid #E51414;/*添加边框只为结果更直观*/
}
.left{
    width: 200px;
    height: 500px;/*设置高度只为结果更直观,高度可根据内容自适应*/
    background: #6E6C8A;
    float: left;/*设为左浮动*/
    text-align: center;
}
.middle{
    width: 430px;
    height: 500px;/*设置高度只为结果更直观,高度可根据内容自适应*/
    background: #806155;
    float: left;/*设为左浮动*/
    margin: 0 10px 0 10px;/*左右各加10px使得三列之间有间隙*/
    text-align: center;
}
.right{
    width: 150px;
    height: 500px;/*设置高度只为结果更直观,高度可根据内容自适应*/
    background: #8F9068;
    float: right;/*设为右浮动*/
    text-align: center;
}

2. 左右の幅が固定された 3 列のレイアウトmiddle

 <!--<div class="div0">-->
 <div class="left">left</div>
        <div class="middle">middle</div>
        <div class="right">right</div>
<!--</div>-->
*{
    padding: 0;    
    margin: 0;}
    /*.div0{
    width: 800px;
    height: 500px;
    margin: 50px auto;
    position: relative;
    border: 2px solid #E51414;
}
可以不要这个父元素div0(即默认父元素为body),如果有,需将这个父元素设置为相对定位*/
.left{
    width: 200px;    
    height: 500px;    
    background: #6E6C8A;    
    position: absolute;    
    top: 0;    l
    eft: 0;
    /*设为绝对定位并且与其父元素的top、left距离都为0*/
    text-align: center;
    }
.middle{
    height: 500px;    
    background: #806155;    
    margin: 0 160px 0 210px;
    /*左右各加10px使得三列之间有间隙*/
    text-align: center;
    }
    .right{
        width: 150px;    
        height: 500px;    
        background: #8F9068;    
        position: absolute;    
        top: 0;    
        right: 0;
        /*设为绝对定位并且与其父元素的top、right距离都为0*/
    text-align: center;
    }

説明: 左右の div の幅が固定されており、中央の div の幅が不明な場合、フローティングを使用して 3 列のレイアウトを実現することはできません。絶対配置を使用して 3 列レイアウトを実現します。左要素と右要素を絶対配置に設定し、中央要素の左マージン値と右マージン値をそれぞれ右要素と左要素の幅に設定する必要があります。 。親要素をラップしなくても 3 列のレイアウトを実現できます。親要素がある場合は、親要素を相対配置に設定する必要があります。 (配置については、

CSS マニュアルを参照してください)

関連する推奨事項:

CSS content_html/css_WEB-ITnose に従って div width適応型を実装する方法

css は、右側の固定幅と上の幅を実現します。左 Adaptive_html/css_WEB-ITnose

以上がCSS アダプティブ レイアウト: CSS 幅の適応を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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