ホームページ  >  記事  >  ウェブフロントエンド  >  2つの列があり、右側に固定幅、左側に自動幅が必要です。 _html/css_WEB-ITnose

2つの列があり、右側に固定幅、左側に自動幅が必要です。 _html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-21 09:48:441173ブラウズ

css


#main {
margin-right:220px;
}
#side {
float:right;
}

2 列の効果を実現するには、div を使用します。右メインの下になります。
メインと並べて作る方法はありますか?
9bf2e68d476856a575fed9fa872a61fa ="side">サイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイドサイド & LT;/Div & GT;
& LT;/DIV & GT;
なぜ float:right がこの効果を達成できないのかをまだ聞きたいです。注意すべき点はありますか?


mainの前にsideを配置し、CSSを変更しないようにすると、結果が正しく表示されます。
理由が分かりません。

すごい

次々に読み込まれる div のレイアウトが違うのはテキストフローの問題のはずです

何があっても、コード分析は常にトップダウンです


ブロック属性要素に遭遇したとき、ブロックが原因です。属性要素自体 何があっても自分だけの行を持ちます。

それでは、フローティングとは何でしょうか?


次のように定義できます。フローティングにより、要素がドキュメント フローから離れ、隣接するフローティング要素または親の境界が停止するまで指定された方向に移動できます。

1. ブロック要素は上部に配置され、フロートは に配置されます。これらは上からのものなので、以下の分析で、排他的な行を占有し、その親と同じ幅を持つブロック要素に遭遇した場合、浮動要素に遭遇した場合、ブロック要素の下に右に移動する必要があります。親境界
2. 最初にブロック要素を下に置き、フロートを上に置きます。フロートが見つかると、ドキュメント フローから切り離され、右の親境界まで移動されます。その後、次の div がブロックになります。フロートをクリアしないでください。確実に押し上げられるので、連続して表示されます

これを何度も繰り返しましたが、ページレイアウトを行うときは、レイアウト方法に注意する必要があります。統一された方法でレイアウトを作成し、通常の考え方は何ですか、このレイアウトを試して、特定のスタイルを追加して、望んでいた結果が得られたと言うのではなく、他の問題を引き起こします

ツーブロックが必要な場合同じ行に表示したい要素は両方にfloatを追加してください

おそらく多くの人は次のようにするでしょう、左側のブロックをfloatにし、右側のdivにはfloatを設定せず、要素を後ろに移動します同様の効果を得るには、多くの人が次のようなコードを書くことを検討するかもしれません

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><style>#main {    margin-right:220px;}#side {    position:absolute;    width:200px;	right:0;	top:0;}.container {	position:relative;}</style></head><body><div class="container">    <div id="main">    main main main main main main main main main main main main main main main main main main main main main main main main     </div>     <div id="side">SIDE SIDE SIDE SIDE SIDE SIDE SIDE SIDE SIDE SIDE SIDE IDE SIDE SIDE SIDE SIDE SIDE IDE SIDE SIDE SIDE SIDE SIDE IDE SIDE SIDE SIDE SIDE SIDE IDE SIDE SIDE SIDE SIDE SIDE  SIDE SIDE SIDE SIDE SIDE SIDE SIDE</div>    </div></body></html>


標準ブラウザでは問題ありませんが、IE6 では 2 つのブロック要素間に 3 ピクセルのギャップが発生するため、この問題は発生しません。フローティングが統一されない限り修正される可能性があります

あなたのコードは上記とは多少異なりますが、私は同じカテゴリに分類することにまだ慣れており、そのような問題の解決策は均一にフローティングすることです

これは...まだjsを使用していますコントロールが良くなりました。

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