Comment faire flotter un span dans un div?

Je suis en train d'apprendre comment utiliser le CSS sans l'aide de Bootstrap.

J'ai le texte suivant: (peut être consultée ici: http://plnkr.co/edit/FTCft1YOfQ4xy7FKWEHE?p=preview)

<div class="block">
  <span class="pull-left">George</span>
  <span class="pull-right">$23.20</span>
</div>

<div class="block">
  <span class="pull-left">Carl</span>
  <span class="pull-right">$4.81</span>
</div>

<div class="block">
  <span class="pull-left">Steve</span>
  <span class="pull-right">$0.34</span>
</div>

et le CSS...

.pull-left {
    float: left;
}

.pull-right {
    float: right;
}

.block {
    display: block; /* since, div, I don't need this right ?*/
    background-color: #87CEEB;
    width: 100%;
}

Si j'ai été en utilisant Bootstrap, j'ai pu atteindre l'effet désiré, en mettant mon code html dans un container div et au lieu d'utiliser ma classe personnalisée de block, ajouter la classe btn et btn-block.

Je veux avoir les noms aligner verticalement sur la gauche et les prix sont alignés verticalement sur la droite. Ce qui me manque?

Du genre:

George                                     $23.20
Carl                                        $4.81
Steve                                       $0.34

S'il vous plaît ne pas mentionner les tableaux, comme je l'ai dit, j'ai pu utiliser bootstrap et envelopper le html ci-dessus dans div.container, et ensuite utiliser button.btn.btn-block à la place de mon div.block pour obtenir exactement le même effet. Merci.

Mise à jour 1:

OK, je ne pensais pas qu'il y ait plus de peut-être une ou deux solutions, mais il est tout à fait un peu. Quelqu'un peut m'expliquer les avantages/inconvénients de chaque solution? Je suis vraiment à une perte ici.

Solution #1:

Ajouter un nouvel élément div:

<div class="block">
  <span class="pull-left">George</span>
  <span class="pull-right">$23.20</span>
  <div style='clear:both'></div>
</div>

Solution #2:

Ajouter clear:both; overflow:auto; à la block classe par thgaskel

Solution #3:

Celui-ci semble de créer des marges entre les blocs.

Changement display:block à display:inline-block pour la block classe.

Solution #4:

Ajouter float:left à la block classe.

Solution n ° 5:

Découvert, pendant que de déconner. Créer un nouveau sélecteur:

.block:after {
  content: ":" /* <--- at a complete loss why this works */ 
}

Solution #6:

Découvert celui de la lecture cette page.

.block:after {
  content:"";
  display: table;
  clear: both;
}

Je me sens assez débordé et ne sais pas laquelle choisir. Merci.

OriginalL'auteur JP Richardson | 2013-07-30