更好地解决html和css中的元素

更好地解决html和css中的元素,html,css,margin,Html,Css,Margin,我有一些关于css中html元素位置的问题,我有两个例子,但有人能告诉我什么是正确的解决方案吗 HTML <div class="wrapper"> <div class="left-col"></div> <div class="right-col"></div> </div> 解决方案2 CSS .wrapper{ width:100%; } .left-col{ width:50%; float:left; } .r

我有一些关于css中html元素位置的问题,我有两个例子,但有人能告诉我什么是正确的解决方案吗

HTML

<div class="wrapper">
<div class="left-col"></div>
<div class="right-col"></div>
</div>
解决方案2 CSS

.wrapper{
width:100%;
}
.left-col{
width:50%;
float:left;
}
.right-col{
width:50%;
float:right;
}
.wrapper{
width:100%;
}
.left-col{
width:50%;
float:left;
margin-right:-50%;
}
.right-col{
width:50%;
float:right;
margin-left:-50%;
}

有一些人使用的是负利润率的解决方案吗?

我认为解决方案1更好更简单。以奥利奥为例。包装后的
div
与包装重叠。您还可以使用

CSS负边距可以追溯到CSS 1.0,甚至支持(尽管支持得很差)但IE 4.0。我在一些方面使用负边距,最显著的是完美像素形式的字段。我的网站有一个登录表单,无论页面/屏幕的宽度如何(例如800x600或1920x1200),所有表单字段之间始终有一个像素,并且在您主动调整窗口大小时保持这种方式。使用
padding
也有助于实现这一点,但请记住,您希望节省使用padding,使用
margin
几乎总是一种方法。如果您认为需要在元素上填充,只需给子元素/children-elements
margin
,布局问题就会少很多。通常,您希望避免使用
位置
,因为它在大多数情况下不适合使用


我建议先查看我的,从基础开始,然后使用Firefox的使用DOM检查器对我的站点上的DOM进行实时更改,例如,这样您就可以看到更改各种CSS属性是如何改变事情的。

.wrapper{clear:tware}
是一种错误的清除方式(请参阅)。您必须清除浮动元素(而不是容器)后的元素,或者向容器添加
溢出:隐藏
(或与
可见
)不同。忘记清除,我只是举了一个简单的例子,我没有问过清除,我问过-marginas,正如我所经历的那样,当您的页面是
ltr
时,右边的边距有问题,除了你们解释所有的边距意味着右边,左边,顶部和底部。。。所以,只需对两个元素使用
margin left
,为什么还要使用-margin?@Oriol如果你真的读了我写的内容,我特别说“你想少用填充”。