Henning Kröger: width= funktioniert bei <span> nicht

Hallo,

habe folgende HTML-Seite:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
<head>
     <title>Working Title</title>
     <link rel="stylesheet" type="text/css" href="inc/elite.css">
</head>
<body>
<div class="logo">logo</div>
<div class="interface">
     <span class="navmain">navigation</span>
     <span class="userinfo">userinfo</span>
</div>
</body>
</html>

Dazu passend folgendes Stylesheet elite.css:

body{
 background-image: url(../images/bg.gif);
 margin: 10px 0px 0px 0px;
 text-align: center;
}

div.logo{
 border-width: 1px;
 border-style: solid;
 border-color: blue;
 padding: 0px;
 width: 600px;
}

div.interface{
 border-top-width: 0px;
 border-bottom-width: 1px;
 border-left-width: 1px;
 border-right-width: 1px;
 border-style: solid;
 border-color: blue;
 padding: 0px;
 text-align: left;
 width: 600px;
}

span.navmain{
 border-top-width: 1px;
 border-bottom-width: 1px;
 border-left-width: 1px;
 border-right-width: 1px;
 border-style: solid;
 border-color: red;
 padding: 0px;
 width: 200px;
}

span.userinfo{
 border-top-width: 1px;
 border-bottom-width: 1px;
 border-left-width: 1px;
 border-right-width: 1px;
 border-style: solid;
 border-color: green;
 padding: 0px;
 width:200px;
}

###############################################

Beides ist validiert vom W3C. Folgendes Problem: Die <span>-Elemente werden nicht 200px breit angezeigt (wie im CSS-File definiert), sondern sind nur so breit, dass der Text (z.B. "userinfo" hineinpasst). Als normales Inline-Element müsste <span> doch so formatierbar sein, oder?
Hoffentlich nur irgendein blöder Fehler von mir.
Freue mich auf Antworten,

mfg
Henning Kröger

  1. Hi,

    habe folgende HTML-Seite:

    Beides ist validiert vom W3C. Folgendes Problem: Die <span>-Elemente werden nicht 200px breit angezeigt (wie im CSS-File definiert), sondern sind nur so breit, dass der Text (z.B. "userinfo" hineinpasst). Als normales Inline-Element müsste <span> doch so formatierbar sein, oder?

    Ok, Du hast also schon erkannt, daß span ein inline-Element ist.
    Und auf welche Elemente ist width anwendbar?
    Genau, auf
    "all elements but non-replaced inline elements, table rows, and row groups"
    replaced inline elements sind IMG, INPUT, TEXTAREA, SELECT, und OBJECT. Alle anderen inline-Elemente sind "non-replaced".

    span ist also ein non-replaced inline Element und kennt daher die Property width nicht.

    Andreas

    1. Ok, vielen Dank für alle Antworten!

      mfg
      Henning

  2. Moin!

    Beides ist validiert vom W3C. Folgendes Problem: Die <span>-Elemente werden nicht 200px breit angezeigt (wie im CSS-File definiert), sondern sind nur so breit, dass der Text (z.B. "userinfo" hineinpasst). Als normales Inline-Element müsste <span> doch so formatierbar sein, oder?

    Ein normales Inline-Element ist immer nur so breit, wie es ist. Wenn du eine Breite definieren willst, nimm ein Block-Element, oder mach das span zu einem Blockelement (display:block). Bedenke aber, dass Blockelemente eben anders angezeigt werden, als Inline-Elemente.

    - Sven Rautenberg

    1. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

      Hallo du da draußen,

      !!!
      Sag's doch gleich. Das behebt mein 1. Problem im Posting nach diesem

      Danke von hier drinnen,
      Dogfish