ホームページ  >  記事  >  ウェブフロントエンド  >  ページの左右に 2 つの div を配置するための div CSS コード。 floatを使わずに実装するにはどうすればよいでしょうか? _html/css_WEB-ITnose

ページの左右に 2 つの div を配置するための div CSS コード。 floatを使わずに実装するにはどうすればよいでしょうか? _html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 12:08:312055ブラウズ

页面里有一个container, 里面有两个div
e0e6b80c2b871989cf94b51f0a97caf2
827ffefe6029f55daaae0f96acea492016b28748ea4df4d9c2150843fecfba68
e2725cf7f2dfd6322cb43961d0c2960316b28748ea4df4d9c2150843fecfba68
16b28748ea4df4d9c2150843fecfba68
已知container的宽是800
让leftDiv宽为200, rightDiv宽为600 横向排列起来,请问要怎么写?

如果不使用float应该怎么实现?(我的页面比这个复杂很多,用了float后ie和firefox显示差异太大,我想知道有没有什么好的技巧能够代替float,所以提了这个问题) 


回复讨论(解决方案)

1,页面再复杂,各种浏览器对float解释的还是不错的。
2,不用float的话,我唯一知道的就是绝对定位了。。。一侧用绝对定位,另外一侧用margin 赋值。
3,推荐还是用float,绝对定位会越搞越麻烦。
4,float的话,左右都要float,下面用clear清除一下,就不会有问题了。ie6 下的双倍边距用_display:inline解决。firefox下的清除,可以写#container:after{overflow:hidden;display:block,content:"";height:0;line-height:0;}就可以解决了。

几点额外的建议:
1. 不要认为你把container宽度设为800,leftDiv设为200,rightDiv设为600就能拥有“实诚”的布局。
实际上,有些宽度是你很容易忽略的,比如border,padding,margin,这些都是很容易忽略的,建议把leftDiv和rightDiv按百分比设定,并且加起来小雨100%。比如:leftDiv = 24%, rightDiv = 74%。
2. 不用一味地float:left; 不要忘记还有float:right。给rightDiv设定float:right有时会有意想不到的收获。

简单地,可以这样写:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=gb_2312" /><title>No Title</title></head><style>#container { width:800px; padding:0; margin:0 auto; height:100%;}#leftDiv { width:24%; float:left; text-align:center; line-height:600px; height:600px; display:block; background-color:#ccc; color:#f00;}#rightDiv { width:74%; float:right; text-align:center; line-height:600px; height:600px; display:block; background-color:#c00; color:#fff;}</style><body><div id="container"> 	<div id="leftDiv">	leftDiv	</div> 	<div id="rightDiv">	rightDiv	</div> </div> </body></html>


table
布局格式已经固定的话 最外面直接包TABLE一行2列 何必写这么多CSS搞自己头晕 而且里面2个DIV是独立的以后修改也不麻烦

display:inline吧

100db36a723c770d327fc0aef2ce13b1
93f0f5c25f18dab9d176bd4f6de5d30e9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
cefba791f019827b23c6d5357c0fcbfb16b28748ea4df4d9c2150843fecfba68
cefba791f019827b23c6d5357c0fcbfb16b28748ea4df4d9c2150843fecfba68
36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e

float这里就不贴代码了,不用float的话,可以用定位来做,这种方法的优点是可以按DIV的顺序来决定优先显示的顺序,代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="zh-CN" lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /></head><body><style type="text/css">body {font-size:9pt;text-align:center;}#container {position:relative;margin:auto;width:800px;height:200px;}#leftDiv {position:absolute;top:0;left:0;width:200px;height:200px;background:#ddd;}#rightDiv {position:absolute;top:0;right:0;width:600px;height:200px;background:#eee;}</style>1、先显示leftDiv<div id="container"> <div id="leftDiv">leftDiv</div> <div id="rightDiv">rightDiv</div> </div>2、先显示rightDiv<div id="container"> <div id="rightDiv">rightDiv</div> <div id="leftDiv">leftDiv</div> </div></body></html>

说白了就是如果不想用float定位,那么就请使用position:absolute吧
使用时请注意在父层div中设定position:relative
然后left和right两个子层position:absolute

多说一句,子层这时候会脱离文本流,但是如果想让此div中数据能够自动撑开div,那么请在该层最下面添加一个清除浮动的元素如 519e184c3e3c9e9d2446fd6b8ee4047116b28748ea4df4d9c2150843fecfba68

float这里就不贴代码了,不用float的话,可以用定位来做,这种方法的优点是可以按DIV的顺序来决定优先显示的顺序,代码如下:
HTML codeb585974ae3b7dba3039af53a9593f9c4a7d4c161155ae32f950812f79f3ce2e093f0f5c25f18dab9d176bd4f6de5d30ed570094f1f1c89fec1c07886e66d28669c3bca370b5104690d9ef395f2c5f8d16c04bd5ca3fcae76e30b72ad730ca86ddcdb7717c62c7708d2cdd643cd0a399b
body{
font-size:9pt;
text-align:center;}
#container{
position:relative;
margin:auto;
width:800px;
height:200px;}
#leftDiv{
position:absolute;
top:0;
left:0;
width:200px;
height:200px;
background:#ddd;}
#rightDiv{
position:absolute;
top:0;
right:0;
width:600px;
height:200px;
background:#eee;}531ac245ce3e4fe3d50054a55f265927

1、先显示leftDiv86542c4a784326f7f6d9d0c158d9660aa6aee891db45e2fb1ee617e085d7f039leftDiv16b28748ea4df4d9c2150843fecfba685002f9a2c35ee925b1aa664c9611712arightDiv16b28748ea4df4d9c2150843fecfba6816b28748ea4df4d9c2150843fecfba68

2. rightDiv を最初に表示します41eeda04e0cea2640f8321ae4ae217e45002f9a2c35ee925b1aa664c9611712arightDiv16b28748ea4df4d9c2150843fecfba68c3c0371dcd5d17d8ba06d47247a4ed84leftDiv16b28748ea4df4d9c2150843fecfba6816b28748ea4df4d9c2150843fecfba6836cc49f0c466276486e50c850b7e495673a6ac4ed44ffec12cee46588e518a5e

浮動配置が許可されていない場合は、絶対配置を使用します

div のデフォルトは行レベルですタグ いいえ float を使用する場合は、それをインラインで表示し、2 つの div の幅を適切に設定できます

要約すると、CSS の学習を開始するときは、
混乱するまで float: left、right を実行します...
次のいくつかのテンプレートを勉強しましょう

要約すると、 CSS を学び始めたとき、

float: left、right に混乱しました...
いくつかのテンプレートを勉強しましょう
悪くない、私はすべてを勉強しました... 、、、

位置指定または TBALE を使用します

float:right;

float を使用するだけで、各ブラウザの効果はほぼ同じに設定できますが、まったく同じにすることは不可能です

1. float

2. Position

3. diaplay: inline
4. table
5.... .何かありますか?

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