2011-03-21 170 views
1

现在开始做我的头,我有一个名为frontwidth的div id css,其中包含1 img 1标题和1个文本。Div定位问题

当我做第二或第三frontwidth其铺设自己身后,而不是去下,背面..

帮助:-(提前http://www.e-fluential.com/offline/

感谢

+2

id是唯一的。如果您想要以相同方式设计多个项目,请使用课程。 – 2011-03-21 13:26:48

+1

当你问这样的问题时,你应该添加一个代码示例。 – 2011-03-21 13:27:20

+0

@MikeEast - 他有一个,看到帖子中的网址。 – 2011-03-21 13:28:13

回答

2

按我的评论:

哇,这是..一个独特的方法?你 有太多的position: absoluteposition: relative。我只是修复了这个在Firebug中的 ,但它要去 需要几分钟的时间写一个答案, 规则的数量我不得不切换 并添加。

从这些元素中取出position规则:

  • #mainbody
  • #frontwidth
  • #titlesbig
  • #greyline
  • #homepageimage
  • #titlesmedium
  • #homepagetext
  • 希望我没有忘记任何:d

随着mainbody例外,你使用其中每一元素多次。因此,改用class代替。

例如,在你的HTML,更改为:

<div class="frontwidth"> 

而在你的CSS,更改为:

.frontwidth { 

} 

现在我们可以为你希望他们奠定了这些元素:

  • .homepageimage,加float: left
  • On .frontwidth,add overflow: hidden(to clear the floats)。
  • On .titlesmedium and .homepagetext add margin-left: 340px
+0

Spot on perfect ....我永远无法让我的头圆圆的div ... – Lee 2011-03-21 13:45:16

1

问题在于您的使用情况的位置:绝对位置和相对位置:

如果从css中删除这些文件,则不再堆叠在彼此之上 尝试删除这些文件,然后调整t他html

+0

是最好把它们放在左边,然后右边:然后呢? – Lee 2011-03-21 13:31:05

+0

如何让Blah Blah坐在图片旁边,而不使用绝对? – Lee 2011-03-21 13:33:31

1

如果从homepageimage,titlesmedium和homepagetext类中删除position: absolute,大部分布局会自行排列。各种position: relative元素不会造成问题,因为它们没有任何对顶部,底部,左侧或右侧的引用 - 实质上,它们根本不会改变布局。

要使一个元素相邻,可以使用float。例如,将图像浮起,然后将标题左移。这会将标题放置在图像旁边。之后,一定要使用clear来再次正常启动流动元素。另外,摆脱所有额外的div - 你通过增加许多额外的元素来改变布局。为了包装和设计内联元素,请考虑使用<span>标记。

2

您已将frontwidth divs中的所有内容定位在绝对位置。绝对定位将元素排除在流程之外,并将所有其他元素定位,就好像它们不在那里一样。

最好的解决方案是不使用position: absolute(这是通常使用的“最后的手段”)。而是将图像左移,并为标题和文本留出左边距。

一些更多的建议:

  • 很多图片的缺乏alt属性。
  • 你的源代码是一个大div汤。 “无表格布局”并不意味着“仅使用div”。不要把东西包装在div中。例如,不需要将每个图像包装在一个div中。您可以将样式直接应用于图像。并使用有意义的元素,如h1,h2等用于标题,p用于文本段落,ulli用于列表(menues)等。div也是“最后的手段”。只有在没有其他HTML元素适合的情况下才使用它们。
+0

在普通div中包装图像不仅增加了不必要的结构到页面,它改变了布局。一个图像是一个内联元素,但将其包装在一个div中,现在它们都像块元素一样。 – 2011-03-21 13:40:00

+0

+1,对于贤者的建议。 – thirtydot 2011-03-21 13:45:10

+0

@thritydot:如果给它的人不知道“圣人”是什么意思,建议可以是圣人吗? – RoToRa 2011-03-21 14:29:34