2012-02-13 137 views
0

我有两个链接:购物者和商店。这两个链接都有自己独立的左右花车。 Store链接应该处于正确的浮动状态,但在向左侧的浮动框添加边框样式时,它会从其div中快照。我如何恢复到原位?例如,请看http://jsfiddle.net/JuCKU/CSS:我如何解决我的超链接对齐问题?

我完全忘了用新代码更新jfiddle。 http://jsfiddle.net/JuCKU/3/

firefox有对齐问题,而谷歌浏览器似乎正确呈现布局。

+0

首先,你的意思是你最后的CSS规则选择是'#shopper,#store'?我也没有看到Chrome 17上的布局有什么问题。 – 2012-02-13 16:21:45

+2

您可以在布局破坏的地方放置一个小提琴吗?我给#shopper添加了一个边框,但一切都保持原样。 – Hersha 2012-02-13 16:22:57

+0

@Hersha看看http://jsfiddle.net/JuCKU/3/ – dottedquad 2012-02-13 16:29:53

回答

1

掉落的宽度从50%至49%。既然你有一个边框,它占用了空间,并给每个div 50%的宽度,总的有点太宽,第二个div弹出一点。或者摆脱边界。

jsFiddle

变化

#shopper, #store 
{ 
    width: 50%; 
    text-align: center; 
} 

到:

#shopper, #store 
{ 
    width: 49%; 
    text-align: center; 
} 
+0

感谢您的解释。尽管我不喜欢IE浏览器,但我仍然希望将IE用户融入其中。更改宽度似乎更像是一个通用浏览器修补程序。 – dottedquad 2012-02-13 16:59:39

+0

很高兴我能帮到你。 – j08691 2012-02-13 17:11:26

1

这是一个四舍五入的问题。这不是一个四舍五入的问题,50%+ 50%+ 1px边框超过100%。使宽度略小于50%是一个快速修复。

更改此:

#shopper, #store 
{ 
    width: 50%; 
    text-align: center; 
} 

此:

#shopper, #store 
{ 
    width: 49.9999%; 
    text-align: center; 
} 

http://jsfiddle.net/JuCKU/4/

+0

这实际上更像是一个盒子模型问题。边框被绘制在元素的外部,因此使其比您定义的大,所以div的实际宽度应该是50% - (边框的宽度)。你可以让边框在元素内部绘制,但我现在忘记了如何去做。 – Hersha 2012-02-13 16:36:42

+0

@Hersha这就是我意识到的,因此编辑。关于如何在框内渲染边框,你是否想过“box-sizing”? http://www.w3.org/TR/css3-ui/#box-sizing – MrMisterMan 2012-02-13 16:39:40

+0

是啊,这是我想到的财产。 – Hersha 2012-02-13 16:41:36

1

添加边界增加了箱子的整体尺寸,以50%+ 1像素,所以一起他们的组合宽度大于100%,而且必须给予。

您可以使用CSS3属性box-sizing:border-box将边框合并到Firefox的全部50%宽度或更具体的-moz-box-sizing中,在Chrome/Safari中使用-webkit-box-sizing,并将框中的大小歌剧。不幸的是IE浏览器还不支持这一点。

因此,将此添加到您的代码。

#shopper, #store { 
    -moz-box-sizing:border-box; 
    -webkit-box-sizing:border-box; 
    box-sizing:border-box; 
} 

更多信息 - http://www.css3.info/preview/box-sizing/

正如其他人所说在所有浏览器的防弹解决方案,以减少你的箱子分数低于50%的宽度。

1

简单给margin-right:-1pxshopper div

#shopper 
{ 
    float: left; 
    border-right: 1px solid #ccc; 
    margin-right:-1px; 
} 

入住这http://jsfiddle.net/JuCKU/6/

OR

您可以使用CSS3 box-sizing属性这一点,但它的工作,直到上述IE8 &。

入住这http://jsfiddle.net/JuCKU/7/

+0

应用负边距的问题是您的其余内容会随之移动。如果您有其他与之相符的边界,这可能会让事情看起来很有趣。 – Hersha 2012-02-13 16:45:17

+0

@Hersha我首先根据OP标记和第二个答案给出两个答案,如果OP给它添加任何新东西的话。 – sandeep 2012-02-13 16:49:29

+0

我知道。只是指出你的第一种方法的副作用,而不是试图折扣它。 :) – Hersha 2012-02-13 17:47:14