Pixel et le pourcentage de la largeur de divs side-by-side

J'ai trouvé beaucoup de questions similaires, et essayé plusieurs solutions (y compris certains de la soi-disant "saint graal" de mises en forme CSS), mais ils ne sont pas tout à fait faire ce dont j'ai besoin.

J'ai un div contenant (CSS contient un bloc) avec l'id right. À l'intérieur sur le côté gauche, je veux une largeur fixe div (une barre de séparation, mais il n'a pas d'importance ce qu'il est utilisé pour des; id splitpane); sur la droite, en remplissant le reste de l'espace, une autre div (id right-box ci-dessous).

J'ai essayé de faire les deux intérieure divs display: inline-block (avec vertical-align: top), réglage de la gauche pour width: 3px, mais alors il n'y a aucun moyen de définir le droit d'avoir la largeur à 100% de 3px. J'ai aussi essayé d'utiliser le float: left/margin-left: -100%/margin-left: 3px truc, mais il a le même problème: le 100%, plus le 3px déborde les parents bloc contenant et provoque une barre de défilement dans une fenêtre contextuelle. (Bien sûr, ce n'est pas la barre de défilement en soi qui est le problème; je pourrais utiliser overflow: hidden de l'enlever, mais alors le contenu sur la droite serait tronquée.)

Actuellement, je suis en utilisant width: 99.5% pour le droit div, mais c'est une terrible hack (et est soumis à débordement en fonction de la largeur de l'écran). Il ressemble un peu à ceci:

<div id="right"><div id="splitpane"></div><div id="right-box">
  ...
</div></div>

Avec CSS comme suit (float version, mais le inline-block version est similaire):

#right {
  display: inline-block;
  vertical-align: top;
  height: 100%;
  width: 85%;  /* this is part of a larger div */
}
#right-box {
  width: 99.5%; /* stupid hack; actually want 100% - 3px for splitter */
  height: 100%;
}
#splitpane {
  float: left;
  width: 3px;
  height: 100%;
  background: white;
  border-left: solid gray 1px;
  border-right: solid gray 1px;
  cursor: e-resize;
}

Est-il possible de faire cela? C'est pour l'une, interne, app., par conséquent, des solutions seulement besoin de travailler dans Firefox 3 (si elles sont spécifiques à FF3, mais, de préférence, c'est parce que la solution est conforme aux normes, mais les autres navigateurs ne sont pas, non pas parce que c'est à l'aide de Firefox uniquement code).

OriginalL'auteur dbrobins | 2009-03-13