Emballage de mots CSS en div


100

J'ai un div avec une largeur de 250px. Lorsque le texte interne est plus large que cela, je veux qu'il se décompose. Le div est float: left et a maintenant un débordement. Je veux que la barre de défilement disparaisse en utilisant le retour à la ligne. Comment puis-je atteindre cet objectif?

<div id="Treeview">
<div id="HandboekBox">
    <div id="HandboekTitel">
        <asp:Label ID="lblManual" runat="server"></asp:Label>
    </div>
    <div id="HandboekClose">
        <asp:ImageButton ID="btnCloseManual" runat="server" 
            ImageUrl="Graphics/close.png" onclick="btnCloseManual_Click" 
            BorderWidth="0" ToolTip="Sluit handboek" />
    </div>
</div>
<asp:TreeView ID="tvManual" runat="server" RootNodeStyle-CssClass="RootNode">
    <Nodes>

    </Nodes>
</asp:TreeView>
</div>

CSS:

#Treeview
{
padding-right: 5px;
width: 250px;
height: 100%;
float: left;
border-right: solid 1px black;
overflow-x: scroll;
}

Réponses:


110

Comme Andrew l'a dit, votre texte devrait faire exactement cela.

Il y a un exemple auquel je peux penser et qui se comportera de la manière que vous suggérez, et c'est si vous avez défini la propriété d'espace blanc.

Voyez si vous n'avez pas ce qui suit dans votre CSS quelque part:

white-space: nowrap

Cela entraînera le texte de continuer sur la même ligne jusqu'à ce qu'il soit interrompu par un saut de ligne.

OK, mes excuses, je ne sais pas si modifié ou ajouté le balisage par la suite (je ne l'ai pas vu au début).

La propriété overflow-x est ce qui fait apparaître la barre de défilement. Supprimez-le et le div s'ajustera à la hauteur nécessaire pour contenir tout votre texte.


Vous avez raison. L'arborescence est construite par Microsoft et lorsque je vérifie la source, partout un espace blanc: nowrap est utilisé
Martijn

Ah bien. PhoneGap + jquery mobile donne beaucoup de style à trier. En ajoutant "white-space: normal; overflow: auto;" cela m'a trié.
Michael Blankenship

2
essayez white-space:normal;sur votre élément de remplacer l'héritage white-space: nowrapde son parent
gordon

102

Ou utilisez simplement

word-wrap: break-word;

pris en charge dans les navigateurs IE 5.5+, Firefox 3.5+ et WebKit tels que Chrome et Safari.


19

essayez white-space:normal;Cela remplacera l'héritagewhite-space:nowrap;


8

Il est assez difficile de dire définitivement sans voir à quoi ressemble le html rendu et quels styles sont appliqués aux éléments dans le div treeview, mais ce qui me saute aux yeux tout de suite, c'est le

overflow-x: scroll;

Que se passe-t-il si vous supprimez cela?


Puis le texte dépasse la limite
Martijn

3

vous pouvez utiliser:

overflow-x: auto; 

Si vous définissez 'auto' dans overflow-x, le défilement n'apparaîtra que lorsque la taille intérieure est la plus grande de la zone DIV


2

Je suis un peu surpris que cela ne fasse pas que ça. Y a-t-il un autre élément à l'intérieur du div dont la largeur est supérieure à 250?


1

Définir uniquement les propriétés css width et float donnerait un panneau d'habillage. L'exemple suivant fonctionne très bien:

<div style="float:left; width: 250px">
Pellentesque feugiat tempor elit. Ut mollis lacinia quam. 
Sed pharetra, augue aliquam   ornare vestibulum, metus massa
laoreet tellus, eget iaculis lacus ipsum et diam. 
</div>

Peut-être y a-t-il d'autres styles en place qui modifient l'apparence?


Ça ne marche pas. Dans ma div, j'utilise des hyperliens. Peut-être que ceci a quelque chose à y voir?
Martijn le

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.