Graphics Programs Reference
In-Depth Information
h e most obvious way to make an element disappear is to switch of its display.
.hide
{
display
:
none
;}
h at will suppress display of any element with a
class
of
hide
, of course. h at means any
such element will generate no element box at all. It will therefore have no ef ect on the layout
of any other element. It's like it never even existed. Like it was a ninja.
h ere are a couple of pitfalls with
display: none
, though—one potential, one persistent.
h e potential problem is if you directly set the value of
none
via JavaScript, then how do you
know how to unset it? h is is trickier than it might seem. Suppose you wrote:
var
obj
=
document.getElementById('linker');
obj.style.display
=
'none';
h en, later in the JS, you want to show the element again. What value do you give? It depends
on the element, doesn't it? If it's a
span
element, you probably want it to be
inline
. If it's a
p
, then you probably want
block
. (h en again, maybe not: You can make
span
s generate
block
boxes and
div
s generate
inline
boxes easily enough.)
h ere's one fairly commonplace solution: assign no value at all:
obj.style.display
=
'';
81
h at will cause the element to default back to whatever
display
value is called for in the rest
of the CSS, or by the browser's built-in styles.
h e other commonplace solution is to not set the
display
value directly, but instead add a
class
value of, say,
hide
to the element. When you want to reveal it again later, you just
strip of the
class
. h is is a little more complicated because it requires you to write (or i nd
via Google) JavaScript that will add or remove
class
values, but it's a very workable solution.
h e persistent problem is that (as of this writing) elements with a
display
of
none
are not
“seen” by the vast majority of assistive technologies like screen readers. Since the element isn't
rendered to the screen, the reader can't i nd it and so doesn't read it. h is is ot en exactly what
is wanted, but at other times, it's exactly what isn't wanted.
For example, suppose you have assistive links (generally called “skiplinks”) in your page. You
want them there for people who are using screen readers so they can jump forward in the
document, but you don't want them on-screen getting in the way of people who are sighted. If
you set their container to
display: none
, then they disappear … for everyone, sighted or
not. h e people who need them don't hear them.
Similarly, if you have dropdown menus that are hidden (absent mouse action) for sighted
users, screen readers won't be able to i nd them if they're hidden with
display: none
.
























Search WWH ::

Custom Search