我只是想把一个div放在另一个旁边。我发现了两种不同的方式。你在这里有他们。但我不知道它们中哪些更正确..
<html>
<head>
<style type="text/css">
.jander1{
width: 100px;
height: 100px;
float: left;
border: 5px solid;
}
</style>
</head>
<body>
<div class="jander1">jander1</div>
<div class="jander1">jander1</div>
</body>
</html>
<html>
<head>
<style type="text/css">
.jander1{
width: 100px;
height: 100px;
float: left;
border: 5px solid;
}
.jander2{
width: 100px;
height: 100px;
margin-left:100px;
border: 5px solid;
}
</style>
</head>
<body>
<div id="container">
<div class="jander1">jander1</div>
<div class="jander2">jander2</div>
</body>
</html>
哈维
答案 0 :(得分:1)
浮动两者更简单,并且意味着如果在前两个旁边添加更多元素,则不必小心。浮动只是一个更不寻常,更常用于需要实际的浮动效果(如文本环绕浮动元素)。
正如krs1所说,你可能想用一些方法来清除浮子。最简单的方法是使用包含元素(如第二个示例中所示),并将overflow: hidden
或overflow: auto
应用于它。这可能有副作用(如果框中的内容溢出),但不会使标记复杂化。
#container { overflow: hidden; }
#container div { width: 100px; height: 100px; float: left; }
答案 1 :(得分:1)
首先,考虑一下你的内容。您的内容标记应反映您的内容;不要让CSS确定您使用的类属性。该内容的性质也会影响您应该使用的CSS。
<div>
元素中的不同内容如果我们在讨论两个<div>
元素之间的不同内容,例如图片和某些文字......
<div class="profile-picture"><img src="http://www.gravatar.com/avatar/0be84773790974af8d6a1d5d55801736?s=128&d=identicon&r=PG" alt="Profile picture for Richard" class="" /></div>
<div class="about-me">My name is Richard and I work as a software developer!</div>
...使用不同的类。两者都不是jander
所以不要包含行话类属性来容纳你的CSS。类属性是element identifiers,应该具有语义意义。
<div>
具有固定宽度一旦你进入你的CSS,在这样的情况下,图像有一个固定的宽度,可能不会有很多变化;因此,你可以使用问题中的技巧#2给第二个<div>
一个margin-left
:
.profile-picture {
width:80px;
height:80px;
float:left;
}
.about-me {
margin-left:81px;
}
<div>
具有可变宽度但是如果我们有时需要那个图像更大,有时候会变小呢?如果我们在编写CSS时对图像的大小没有了解,该怎么办?
<div class="profile-picture"><img src="http://media03.linkedin.com/mpr/mpr/shrink_80_80/p/1/000/09a/108/11e3bdd.jpg" alt="Profile picture for Richard" class="" /></div>
<div class="about-me">My name is Richard and I work as a software developer!<br />blah<br />blah<br />blah<br />blah<br />blah</div>
<div class="profile-picture"><img src="http://www.gravatar.com/avatar/0be84773790974af8d6a1d5d55801736?s=128&d=identicon&r=PG" alt="Profile picture for Richard" class="" /></div>
<div class="about-me">My name is Richard and I work as a software developer!<br />blah<br />blah<br />blah<br />blah<br />blah</div>
...其中一张图片高128px
,另一张高80px
。
然后我们可以float
第一个<div> while simply targeting the other with an
overflow-x:hidden;`:
.profile-picture {
float:left;
}
.about-me {
overflow-x:hidden;
}
Here is another JsFiddle example
<div>
个元素然后一定要给他们相同的class
属性!
<div>
<div class="column">Here is content for column 1!</div>
<div class="column">Here is content for column 2!</div>
</div>
如果它们应该表现相同,则使用相同的规则对其进行定位,并将它们float
放在左侧。如果它们的行为不同,您可以概括上述考虑因素;你知道第一个<div>
应该有多宽吗?如果是,请继续使用margin-left
。否则使用overflow-x
。
答案 2 :(得分:0)
如果他们有效,他们就会工作。选项1看起来不错,我之前运行过类似的模式。
但是,如果您尝试将块元素放在浮动元素下面,那么您将遇到问题。在第二个“jander”类元素之后添加:
<div style="clear:both"></div>
答案 3 :(得分:0)
由于两个div共享样式,我会选择第一个例子。我还要添加一个明确的内容:两者都是#container,因为它包含了左边浮动的两个div。
由于你的第二个div只留有一个margin-left,我会使用像#container div这样的伪类:first-child或id / class来添加边距。