2011-07-16 1 views
0

Le problème est facilement représenté avec un exemple here.Lors de l'ajout d'un élément <details> à un div avec innerHTML, le div descend également

Le code va comme ceci:

HTML:

<div id="example">Hello </div> 

JS:

document.getElementById('example').innerHTML += '<details style="display: inline"><summary>World</summary>Something</details>'; 

Le problème est que lorsque je clique sur "World", "Something" apparaît mais " Bonjour "descend également, comme ceci:

enter image description here

Je voudrais que lorsque vous cliquez sur "Monde", "Bonjour" reste en position.

Des suggestions? Merci d'avance!

+0

J'ai marqué cette html5 question à cause de l'élément de détails, mais je ne suis pas 100 % certain que l'étiquette est appropriée. N'hésitez pas à suggérer/modifier et supprimer. Merci! – Trufa

+0

Quel navigateur utilisez-vous? Je comprends tout sur une seule ligne dans Safari et Firefox. –

+0

@muistooshort: google-chrome Je ne pense pas que cela fonctionne dans de nombreux autres navigateurs. N'a pas essayé cependant! – Trufa

Répondre

2

Le réglage vertical-align: top pour #example semble obtenir la disposition que je pense que vous voulez. Le code HTML:

<div id="example">Hello <details><summary>World</summary>Something</details></div> 

Et le CSS:

#example { 
    vertical-align: top; 
} 
details { 
    display: inline; 
} 

Et, enfin, le violon obligatoire: http://jsfiddle.net/ambiguous/cJPRz/

+0

Cela semble fonctionner très bien! Je vous remercie! J'essaie juste de comprendre comment prendre à mon exemple réel un manuscrit ... – Trufa

+0

désolé pour le retard. Merci pour la réponse! – Trufa

+0

@ Trufa: Désolé, je n'ai pas une explication décente pour expliquer pourquoi cela fonctionne. La technique du «bidouiller avec ça jusqu'à ce que ça marche» me laisse un peu mal à l'aise. –

Questions connexes