943,989 Members | Top Members by Rank

Ad:
Jul 5th, 2007
0

display:block to show a table?

Expand Post »
Hello, and congratulations for this beautiful and meticulous forum.

I have a javascript/html/css issue that I'm trying to solve for about 3 days now, with no luck.
I'm using javascript to toggle the visibility of a certain table. I set the table's display property to none (via js) in order to hide it and to block in order to show it.
However, applying block in the display property of a table seems to be having trouble with firefox.

See below what display:block does to a table in firefox:
This simple html code:
JavaScript / DHTML / AJAX Syntax (Toggle Plain Text)
  1. <table style="display:block" border="1" width="100%">
  2. <tr><td width="100%">test</td></tr></table>
produces this result in firefox:
Click image for larger version

Name:	the_problem.gif
Views:	611
Size:	829 Bytes
ID:	3713

Notice how the td has the size of the content and does not stretch to the size of the table (although it has a width="100%")? In IE it works fine btw.

If I change my js code to apply "table" to the display property of the table in order to show it, it doesn't show up at all in IE!

Any ideas?
Thanks in advance.

PS: Sorry for any mistakes, my native language is not english
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
Lucrezia is offline Offline
18 posts
since Jul 2007
Jul 6th, 2007
0

Re: display:block to show a table?

> Hello, and congratulations for this beautiful and meticulous forum.
Hello and welcome. :-)

Now to your problem. 'display' property of CSS decides how an element would be displayed. Since you already have a table, it doesn't make sense to set the display property to table.

Normally this property is used to alter the way a paragraph, a div block or a span block i.e. any container tag displays the data. So what to do when the tag under consideration is a 'table' tag? Simple, set its property to nothing.
html Syntax (Toggle Plain Text)
  1. <table id="tab" border="1" width="100%">
  2. <tr>
  3. <td width="100%">test</td>
  4. </tr>
  5. </table>

and when making it hidden do something like:

html Syntax (Toggle Plain Text)
  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function hide(id)
  5. {
  6. document.getElementById(id).style.display = 'none';
  7. }
  8. function show(id)
  9. {
  10. document.getElementById(id).style.display = '';
  11. }
  12. </script>
  13. </head>
  14. <body onmousedown="hide('tab');" onmouseup="show('tab');">
  15. <table id="tab" border="1" width="100%">
  16. <tr>
  17. <td>test</td>
  18. </tr>
  19. </table>
  20. </body>
  21. </html>
Super Moderator
Featured Poster
Reputation Points: 3233
Solved Threads: 720
Failure as a human
~s.o.s~ is offline Offline
8,872 posts
since Jun 2006
Jul 6th, 2007
0

Re: display:block to show a table?

Thanks for your reply.
Setting the display property to nothing was the first thing I tried, before I even tried block. Mysteriously enough, it didn't work neither in IE nor in any other browser! And that's quite weird because I remember using the exact same techinique in another site I was developing about a year ago...
Reputation Points: 10
Solved Threads: 0
Newbie Poster
Lucrezia is offline Offline
18 posts
since Jul 2007
Jul 13th, 2007
0

Re: display:block to show a table?

Use the visibility property. There are three selections: visible, hidden, and collapse. Visibility is also a recognized style method.
Reputation Points: 730
Solved Threads: 181
Nearly a Senior Poster
MidiMagic is offline Offline
3,314 posts
since Jan 2007
Jul 13th, 2007
0

Re: display:block to show a table?

Click to Expand / Collapse  Quote originally posted by MidiMagic ...
Use the visibility property. There are three selections: visible, hidden, and collapse. Visibility is also a recognized style method.
That would be a nice solution!
Does this property work cross-browser?
Thanks!
Reputation Points: 10
Solved Threads: 0
Newbie Poster
Lucrezia is offline Offline
18 posts
since Jul 2007
Jul 14th, 2007
0

Re: display:block to show a table?

Yes, the visibility property works cross browser. But the catch here is that when the visibility is set to 'hidden', the element is still present there and still contributes to the layout of the page, it just isn't visible.

On the other hand, setting the display property to nothing('') will remove the element and effect the layout of the page since the element is physically not there (though I guess it exists in the DOM since we can always make it come back).

Choose the method which suits you the most in the given scenario keeping the above things in mind. Here is an interesting read.
Super Moderator
Featured Poster
Reputation Points: 3233
Solved Threads: 720
Failure as a human
~s.o.s~ is offline Offline
8,872 posts
since Jun 2006
May 27th, 2008
0

Re: display:block to show a table?

put your table in a div and apply the display property to the div as below



html Syntax (Toggle Plain Text)
  1. <html>
  2.  
  3. <head>
  4.  
  5. <script type="text/javascript">
  6.  
  7. function hide(id)
  8.  
  9. {
  10.  
  11. document.getElementById("myTable").style.display = 'none';
  12.  
  13. }
  14.  
  15. function show(id)
  16.  
  17. {
  18.  
  19. document.getElementById("myTable").style.display = 'block';
  20.  
  21. }
  22.  
  23. </script>
  24.  
  25. </head>
  26.  
  27. <body onmousedown="hide('tab');" onmouseup="show('tab');">
  28.  
  29. <div id="myTable" >
  30. <table id="tab" border="1" width="100%">
  31.  
  32. <tr>
  33.  
  34. <td>test</td>
  35.  
  36. </tr>
  37.  
  38. </table>
  39.  
  40. </div>
  41.  
  42. </body>
  43.  
  44. </html>
Last edited by peter_budo; May 29th, 2008 at 7:58 pm. Reason: Keep It Organized - please use [code] tags
Reputation Points: 10
Solved Threads: 1
Newbie Poster
emmanueloladele is offline Offline
15 posts
since Nov 2007
Jul 23rd, 2009
0

Re: display:block to show a table?

The solution helped! Thanks!.

Using display='' instead of display='block' while trying to make a table visible from javascript worked.
Reputation Points: 10
Solved Threads: 1
Newbie Poster
praveen64 is offline Offline
1 posts
since Jul 2009
May 23rd, 2011
0

Javascirpt

How to display the blocked images in javascript
Reputation Points: 10
Solved Threads: 0
Newbie Poster
Johnsoncom is offline Offline
1 posts
since May 2011

This thread is solved

Either the thread starter or a moderator has marked this thread as solved. You can most likely trust the responses and answers given. There is most likely no reason for any further responses to be posted here. If you have a related question, please start a new thread in this forum instead.

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in JavaScript / DHTML / AJAX Forum Timeline: Passing Multiple Variables In AJAX
Next Thread in JavaScript / DHTML / AJAX Forum Timeline: IE Problem? (AJAX, PHP, javascript )





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC