Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 30.10.2005, 12:10
ulle ulle ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 02.06.2003
Beiträge: 2.441
ulle befindet sich auf einem aufstrebenden Ast
Standard IE White-Space BUG in List-Menu / CSS-Workaround

Vertikale Listen für Menüs:

IE-BUG Zeilenumbrüche = White-Space = Abstände


Bisher hatte ich dieses Problem mit (X)HTML-Kommentaren abgefangen.
Zitat:
<!--
-->[*]item 1<!--
-->
[*]item 2<!--
-->[*]<a href="#nogo">item 3
2.Zeile </a><!--
-->[*]item 4



Bei meinen letzten Entwicklungen bin ich zur folgenden Lösung gekommen:

CSS Workaround ohne Markup Veränderung
Inline-Elemente werden durch die Eigenschaft [line-height] in ihrer Höhe beeinflußt/definiert. Auch für Elemente im Block-Level bzw. im List-Item-Level ist diese Eigenschaft von Bedeutung sofern ein solches Element nicht leer ist.
Und hier liegt der IE-Bug, er zeigt zwar nicht den White-Space setzt aber den line-height für das li-Element. Nach diesem Verständnis habe ich nun einen Workaround gefunden.

Zitat:
#menu li {


/* Kontrollfarbe
*/
background-color: #FF0000;


line-height: 0;

}
Leider gibt es mit dem Firefox evtl. ein Rundungsproblem, deshalb ist es Sinnvoll dem Link-Element eine Mindesthöhe >= der Zeilenhöhe im Block-Element (a-Tag) zu definieren.


Zitat:
#menu li a {

min-height: 1.5em;
/* IE min-height */
height: auto !important;
height: 1.5em;

line-height: 1.5;

}
Hier das TEST-Case
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de-DE" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>xxxx</title>

<style type="text/css" media="screen,projection" title="Druckvorschau => Markup-Semantic">
/*<![CDATA[*/

*         {
         margin:  0;
         padding: 0;
         
         border-collapse:collapse;
         border-spacing: 0;
         }


html,
body      {
         color:      #000000;
         background:   #DDDDDD;
         line-height: 1.45;
         }

body      {
         font-size:   100.01%;
         font-family:  Verdana, Geneva, Arial, Helvetica, sans-serif;
         }




#menu         {
         width: 10em;
         
         margin: 1em auto;
         
         background-color: #00FF00;
         }
         


#menu ul   
         {
         list-style-type: none;

         margin: 0;
         padding: 0;
         }

            

#menu li    
         {
         /* Kontrollfarbe
          */
         background-color: #FF0000;

         line-height: 0;
         }
         
         

#menu li a   {
         display: block;
         
         min-height:    1.5em;
         height:       auto !important;
         height:       1.5em;
         line-height:    1.5;

         
         /* Dimension IE
          * somit voll anklickbar
          */
         position: relative;

         padding: 1px 1em 2px;
   
         background-color: #FF9922;
         }


#menu a:hover
         {
         background-color: #2299FF;
         }

         
/*]]>*/
</style>

</head><body>

<div id="menu">
   <ul>[*]item 1[*]item 2[*]<a href="#nogo">item 3
2.Zeile </a>[*]item 4[/list]</div>
      
</body></html>
__________________
</ulle>
Mit Zitat antworten
Sponsored Links