Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

scrollbar dans table

8 réponses
Avatar
unbewusst.sein
ma page est découpée par un table :

<table>
<thead>
<tr>
<td id="header"><h1>Rewrite innerHTML</h1></td>
<td id="header_right">màj le 05 04 08</td>
</tr>
</thead>
<tbody>
<tr>
<td id="content">
<!-- blablabla -->
<td id="content_right">
<div id="menu"></div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td id="footer">pied de page</td>
<td id="footer_right">pied de droite</td>
</tr>
</tfoot>
</table>

si le contenu de '<td id="content">' dépasse la hauteur de la fenêtre,
le scrollbar vertical apparaît à droite de cette fenêtre.

ce qui fait disparaitre le pied de page.

je préférerais avoir l'ascensseur vertical dans '<td id="content">' un
simple :
td#content {
overflow:scroll;
}

ne suffit pas...
bizarement, si le contenu de '<td id="content">' contient un <object />
alors un ascensseur est attribué automatiquement à cet objet... (s'il
dépasse en hauteur)
--
Une Bévue

8 réponses

Avatar
Olivier Miakinen
Bonjour,

Je n'ai pas la réponse à ta question, juste une remarque :

Le 10/04/2008 16:42, Une Bévue a écrit :

<thead>
<tr>
<td id="header"><h1>Rewrite innerHTML</h1></td>
<td id="header_right">màj le 05 04 08</td>
</tr>
</thead>




Pour ce qui est dans le thead, personnellement j'aurais mis des th au
lieu des td (idem pour le tfoot).
Avatar
SAM
Une Bévue a écrit :
ma page est découpée par un table :



tbody { height: 100px; overflow: scroll }
ou
tbody { max-height: 100px; overflow-y: scroll }

Ne fonctionne qu'avec Fx chez moi.

myTbody.style.overflowY = 'scroll';


bizarement, si le contenu de '<td id="content">' contient un <object />
alors un ascensseur est attribué automatiquement à cet objet... (s'il
dépasse en hauteur)



Ton objet a une hauteur définie ?
Ton TD est en relative ?

--
sm
Avatar
unbewusst.sein
Olivier Miakinen <om+ wrote:


Pour ce qui est dans le thead, personnellement j'aurais mis des th au
lieu des td (idem pour le tfoot).



vouais, merci, ça va être "dur" à changer ;-)
j'ai une dizaine de pages comme ça...

merci !

--
Une Bévue
Avatar
unbewusst.sein
SAM wrote:

Une Bévue a écrit :
> ma page est découpée par un table :

tbody { height: 100px; overflow: scroll }
ou
tbody { max-height: 100px; overflow-y: scroll }

Ne fonctionne qu'avec Fx chez moi.

myTbody.style.overflowY = 'scroll';


> bizarement, si le contenu de '<td id="content">' contient un <object />
> alors un ascensseur est attribué automatiquement à cet objet... (s'il
> dépasse en hauteur)

Ton objet a une hauteur définie ?



oui et non, au départ oui, dans le html j'ai :
<object id="object" data="doc/changess.html" type="text/html"
width="100%" height="100%">
alt : <a href="doc/changess.html">test.html</a>
</object>


ce qui est OK pour Safari, MAIS avec FF, l'objet n'apparaît qu'avec une
"petite" hauteur aussi j'ai ajouté du js pour remédier à cela :

$("object").style.height=document.body.offsetHeight-$("header").offsetHe
ight-$("footer").offsetHeight-5+'px';


Ton TD est en relative ?



dans mon td, en css, il y a juste cela :
tbody td { vertical-align: top; text-align: left; }

en fait, c'est toi qui m'a fourni la solution css...
--
Une Bévue
Avatar
Mickaël Wolff
Une Bévue a écrit :
vouais, merci, ça va être "dur" à changer ;-)
j'ai une dizaine de pages comme ça...



Un coup de sed et il n'y parait plus ;) Quelque chose dans ce goût là :
sed
'{s/(<tr>[^<>/]*)<td>([^<>/])</td>(<td>.*</td>)*(</tr>)/1<th>2</th>34/}'

--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org
Avatar
SAM
Une Bévue a écrit :
SAM wrote:



Dans le code-exemple donné précédemment il me semble qu'il y manque un
td fermant.
(balise +/- facultative en html mais sans doute pas en xhtml)

Une Bévue a écrit :

bizarement, si le contenu de '<td id="content">' contient un <object />
alors un ascensseur est attribué automatiquement à cet objet... (s'il
dépasse en hauteur)







au fait : c'est un comportement normal ça

Ton objet a une hauteur définie ?



oui et non, au départ oui, dans le html j'ai :
<object id="object" data="doc/changess.html" type="text/html"
width="100%" height="100%">
alt : <a href="doc/changess.html">test.html</a>
</object>



voilà, c'est sensé régler la hauteur de l'object sur celle de son conteneur
(et si pas assez haut pour le contenu de l'object celui-ci met ses
ascenseurs)

ce qui est OK pour Safari, MAIS avec FF, l'objet n'apparaît qu'avec une
"petite" hauteur aussi j'ai ajouté du js pour remédier à cela :

$("object").style.height=document.body.offsetHeight-$("header").offsetHe
ight-$("footer").offsetHeight-5+'px';



Heu ...
$("object").style.height = +$('menu').offsetHeight-5+'px';
ou :
$("object").style.height = +$('content').offsetHeight-5+'px';

Ton TD est en relative ?



dans mon td, en css, il y a juste cela :
tbody td { vertical-align: top; text-align: left; }
en fait, c'est toi qui m'a fourni la solution css...



Peut-être ?
C'est normalement pour centrer le contenu et le coller en haut du td.

Sans le JS marteau-pilon de redimensionnement, le TD est-il de la
hauteur attendue ?
Si oui, il devrait suffire de styler l'object max-height:100%;

Si ça ne suffit pas, tenter le tbody td { position: relative }
Si ça ne suffit pas, tenter le tbody td { overflow: auto }
Si ça ne suffit pas, tenter le tbody td object { overflow: auto }

Sinon ... tant pis le JS de secours.
(mais ça manque d'élégance)

--
sm
Avatar
unbewusst.sein
SAM wrote:

Dans le code-exemple donné précédemment il me semble qu'il y manque un
td fermant.
(balise +/- facultative en html mais sans doute pas en xhtml)




oui, ce n'est que dans le code exemple...

en xhtml, safari s'arrête à la première erreur de ce genre...

>> Une Bévue a écrit :
>>
>>> bizarement, si le contenu de '<td id="content">' contient un <object />
>>> alors un ascensseur est attribué automatiquement à cet objet... (s'il
>>> dépasse en hauteur)

au fait : c'est un comportement normal ça

>> Ton objet a une hauteur définie ?
>
> oui et non, au départ oui, dans le html j'ai :
> <object id="object" data="doc/changess.html" type="text/html"
> width="100%" height="100%">
> alt : <a href="doc/changess.html">test.html</a>
> </object>

voilà, c'est sensé régler la hauteur de l'object sur celle de son conteneur
(et si pas assez haut pour le contenu de l'object celui-ci met ses
ascenseurs)

> ce qui est OK pour Safari, MAIS avec FF, l'objet n'apparaît qu'avec une
> "petite" hauteur aussi j'ai ajouté du js pour remédier à cela :
>
> $("object").style.height=document.body.offsetHeight-$("header").offsetHe
> ight-$("footer").offsetHeight-5+'px';

Heu ...
$("object").style.height = +$('menu').offsetHeight-5+'px';
ou :
$("object").style.height = +$('content').offsetHeight-5+'px';




ah oui...tiens pourquoi faire simple quand on peut complique ? ;-)

>> Ton TD est en relative ?
>
> dans mon td, en css, il y a juste cela :
> tbody td { vertical-align: top; text-align: left; }
> en fait, c'est toi qui m'a fourni la solution css...

Peut-être ?
C'est normalement pour centrer le contenu et le coller en haut du td.

Sans le JS marteau-pilon de redimensionnement, le TD est-il de la
hauteur attendue ?
Si oui, il devrait suffire de styler l'object max-height:100%;

Si ça ne suffit pas, tenter le tbody td { position: relative }
Si ça ne suffit pas, tenter le tbody td { overflow: auto }
Si ça ne suffit pas, tenter le tbody td object { overflow: auto }

Sinon ... tant pis le JS de secours.
(mais ça manque d'élégance)



bon, j'essaie demain à la fraiche...
--
Une Bévue
Avatar
unbewusst.sein
Mickaël Wolff wrote:


Un coup de sed et il n'y parait plus ;) Quelque chose dans ce goût là :
sed



'{s/(<tr>[^<>/]*)<td>([^<>/])</td>(<td>.*</td>)*(</tr>)/1<
th>2</th>34/}'

OK, merci beaucoup, je vais tenté qqc dans ce goût-là à la fraiche...
--
Une Bévue