Прежде всего, подумайте о своем контенте. Разметка вашего контента должна отражать ваш контент; не позволяйте CSS определять атрибуты класса, которые вы используете. Характер этого контента также влияет на то, какой CSS вы должны использовать.
Случай 1: различное содержание в элементах 2 <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. Атрибуты класса являются идентификаторами элементов и должны иметь смысловой смысл.
Случай 1.1: Левая <div>
имеет фиксированную ширину
Как только вы дойдете до своего CSS, в таком случае, как этот, изображение будет иметь фиксированную ширину, которая, вероятно, не подвергается значительным изменениям; таким образом, вы можете использовать технику № 2 из вашего вопроса, чтобы дать второе <div>
a margin-left
:
.profile-picture {
width:80px;
height:80px;
float:left;
}
.about-me {
margin-left:81px;
}
Вот пример JsFiddle.
Случай 1.2: левый <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;
}
Вот еще один пример JsFiddle .
Случай 2: аналогичное содержание в элементах 2 <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
.