4

我的网站上有两个 div,一个在左侧,另一个在右侧。但是客户说不要使用float:right。所以我使用margin:left 了不使用的优点是什么float:rightmargin-left或者float:right,或者我错了吗?请帮我。

#left
{
float:left;
width:200px;
}
#right
{
float:right;
width:200px;
}

或者

#left
    {
    float:left;
    width:200px;
    }
    #right
    {
    margin-left:250px;
    width:200px;
    }
4

5 回答 5

4

我想这与标记的顺序有关。原则上,您应该先编写所有标记,因此没有任何 css 是有意义的,然后再添加 css 规则。

如果您需要移动标记以满足 css 条件,您可能会破坏搜索引擎优化、可访问性或可读性以及代码的清晰结构。

如果您正确浮动某些内容,有时您需要将元素放在标记中的第一位,即使它在视觉上看起来是第二位。

这当然是猜测,正如 Marcus Aurelius 在他的书中所写的冥想 - 试图理解另一个人(在这种情况下是你的客户)或多或少是在浪费时间,因为你永远无法真正成功,只能自欺欺人地思考你完全理解他们和他们的动机。相反,你应该关注确保自己的动机和行为是正确的——所以要确保你知道什么时候什么时候不让事情左右浮动(你现在正在这样做),并将这些真相揭示给你的客户。

于 2012-08-06T10:01:50.040 回答
3

实际上,如果您float:left;在第二个 div 中使用,那么第二个 div将在第一个 div之后立即开始。

像这样:- http://tinkerbin.com/FfuvHZw4

如果您float:right在第二个 div 中使用,则第二个 div将从父 div 或主体的右侧开始。

像这样:- http://tinkerbin.com/EgtjAJA1

于 2012-08-06T09:46:58.897 回答
3

好吧,使用 float:right; 没有错。也许您的客户对此有想法。可能是发展问题。

于 2012-08-06T09:50:39.293 回答
3

我能想到不使用的唯一可能的“加号”float: right是它会导致向右浮动的内联元素以相反的顺序出现(除非父元素是浮动的,在这种情况下,它的子元素将出现在正确的顺序)。因此,如果以特定顺序从数据库中提取内容(例如项目列表),则ORDER_BY需要反转以使它们以所需的顺序出现。与普通 HTML 元素的顺序类似。他们可能不想让你使用float: right,因为他们不想重构其他代码。

小提琴:http: //jsfiddle.net/nxdD4/1/

这是我唯一能想到的。

于 2012-08-06T09:50:45.677 回答
0

在确定你不会因为提问而显得愚蠢之后,我会问你的客户。也许他们的理由还有其他你应该意识到的含义,也许奥勒留斯的推理可能会不必要地束缚你的手,万一你的客户也没有从古代哲学的角度思考。

我能想到的最可能的解释是,如果代码与呈现的顺序相同,则代码更容易更新(尽管我认为在 CSS 中使用正确的语义更重要),您的代码将出现在具有其他代码的页面中,或者您的代码将由 CMS 生成,如果事情按照相同的顺序,其设置/管理会更简单,可能已经脱离上下文,或者可能引用了一些善意的论坛响应者少于他们的相关来源。罗马皇帝从来都不擅长这种敏感的感觉。

于 2012-08-06T13:19:53.950 回答