• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Automatische Breite eines DIVs

lisaaa17

Neues Mitglied
Ist es möglich eine "Lightbox" zu erstellen, dessen Breite automatisch gesetzt wird?

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <style type="text/css">
    .lightbox
    {    
      background-color: #ffff33;    
      width: auto;
      margin-top: 10px;    
      padding: 15px;    
      border: 3px solid black;    
      text-align: center;
    }
    </style>
  </head>

  <body>
    <div class="lightbox">
        Diese Box soll leuchten!
    </div>

  </body>
</html>
Das DIV Element lightbox soll genauso breit sein, wie es nötig ist, nicht mehr und nicht weniger.

In dem Code von mir wird das Div immer 100% breit gemalt.

Eine Lösung ist mir eingefallen, die verstößt allerdings gegen die "Vorschrift" strikte Trennung von HTML und CSS.

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <style type="text/css">
    .lightbox
    {    
      background-color: #ffff33;    
      width: auto;
      margin-top: 10px;    
      padding: 15px;    
      border: 3px solid black;    
      text-align: center;
    }
    </style>
  </head>

  <body>
    <div class="lightbox" style="width:10em;">
        Diese Box soll leuchten!
    </div>

  </body>
</html>



Sollte das mit CSS nicht möglich sein, wäre mir auch eine PHP Lösung recht.
 
Zuletzt bearbeitet:
Werbung:
setz doch den width style, den du im 2. code im html-teil stehen hast, einfach an die Stelle, wo "width: auto" steht
 
nein, ich möchte eine box, die sich für mehrere texte eignet!

einmal sollte die box breiter sein, das nächste mal schmaler, da nur 1 wort angezeigt wird....
 
Werbung:
In dem Code von mir wird das Div immer 100% breit gemalt.

Wenn man einem div keine Breite gibt nimmt es immer 100% der zur Verfügung stehenden Breite ein.

In deine Fall würde es aber vielleicht auch schon genügen deinen Inhalt semantisch korrekt auszuzeichnen und auf die divs zu verzichten.

Gruss
Elroy
 
Wenn man einem div keine Breite gibt nimmt es immer 100% der zur Verfügung stehenden Breite ein.

In deine Fall würde es aber vielleicht auch schon genügen deinen Inhalt semantisch korrekt auszuzeichnen und auf die divs zu verzichten.

Gruss
Elroy

sry, ich weiß nicht was du mit "semantisch korrekt auszuzeichnen" meinst.

leider kams in meinem startposting nicht vor, deswegen nocheinmal:

ich möchte mehrere Texte in mehreren DIVs der class="lightbox" hervorheben. da ich Texte unterschiedlicher Länge hervorheben möchte, darf dieses DIV keine feste Breite im css definiert haben.

vielleicht gibts auch eine Lösung in php, wobei mir eine html/css variante bei weitem lieber wäre.
 
Hallo.

Dann verwende eben keine divs sondern gib die Lightbox deinen Texten.
Die Texte wirst du ja bestimmt auszeichnen und nicht einfach in das div schreiben.

Mit semantsich korrekt auszeichnen meine ich ihrer Bedeutung entsprechend.
Das HTML eine Auszeichnungsprache ist weisst du ja wohl hoffentlich.

Gruss
Elroy
 
Werbung:
Hallo.

Dann verwende eben keine divs sondern gib die Lightbox deinen Texten.
Die Texte wirst du ja bestimmt auszeichnen und nicht einfach in das div schreiben.

Mit semantsich korrekt auszeichnen meine ich ihrer Bedeutung entsprechend.
Das HTML eine Auszeichnungsprache ist weisst du ja wohl hoffentlich.

Gruss
Elroy

so ganz folgen kann ich dir noch nicht. ich glaube du meinst, dass ich anstatt des DIVs einfach <p class="lightbox">...</p> verwenden kann??
das ganze hat dann aber den Hacken, dass ich das ganze bei einem Image nicht verwenden kann (ja ich weiß, das stand nicht in meinen vorposts :( )
tut mir leid, dass ich so begriffsstützig bin, könntest du mir bitte ein kleines html code Beispiel schreiben?
 
Hallo.

Wieso kannst du kein <p> bei einem Image verwenden?
Wer sagt das?

HTML:
<p><img src="bilder/Fotolia_2724552_XS_small.jpg" width="250" height="167" alt="Blick auf den Fujijama"></p>
Gruss
Elroy
 
Hallo.

Wieso kannst du kein <p> bei einem Image verwenden?
Wer sagt das?

HTML:
<p><img src="bilder/Fotolia_2724552_XS_small.jpg" width="250" height="167" alt="Blick auf den Fujijama"></p>
Gruss
Elroy


vielen dank für die mühe, allerdings gefällt mir die lösung nicht.
ich möchte html und css (aussehen) trennen!
selbst wenn es ein "background-color:yellow;" attribut gibt (z.b. in älteren ie vers.), möchte ich nicht bei jeder lightbox, jedesmal die selben 10 attribute schreiben.
 
Werbung:
Hallo.

Tut mir leid aber ich verstehe dich nicht.
Was gefällt dir an meiner Lösung nicht.

Ich wollte dir damit nur zeigen das man ein Image durchaus mit <p> auszeichnen kann.
Ausserdem gehören die Grössenangaben des Bildes durchaus in den HTML Tag und nicht in ein seperates CSS

Gruss
Elroy
 
Hallo.

Tut mir leid aber ich verstehe dich nicht.
Was gefällt dir an meiner Lösung nicht.

Ich wollte dir damit nur zeigen das man ein Image durchaus mit <p> auszeichnen kann.
Ausserdem gehören die Grössenangaben des Bildes durchaus in den HTML Tag und nicht in ein seperates CSS

Gruss
Elroy

HTML ist nicht dazu gedacht, um anzugeben, wie ein Element aussehen soll
Warum sind HTML und CSS getrennt?


ich verstehe auch nicht worauf du hinauswillst, selbst wenn ich kein div nehme, muss ich trotzdem eine breite angeben, es hat sich also nichts verbessert.
 
Werbung:
im <img> width und height anzugeben fällt nicht unter diese regel.
es ist durchaus sinnvoll die dimensionen eines bildes im html-quelltext anzugeben, da der browser dann bereits den benötigten platz beim seitenaufbau berücksichtigen kann, bevor das bild vollständig geladen wurde.
das verhindert ein "springen" der anderen inhalte bei der aufbaukorrektur.
außerdem ist es wenig sinnvoll, für jedes verwendete bild eine css-klasse anzulegen.
 
HTML ist nicht dazu gedacht, um anzugeben, wie ein Element aussehen soll
Warum sind HTML und CSS getrennt?


ich verstehe auch nicht worauf du hinauswillst, selbst wenn ich kein div nehme, muss ich trotzdem eine breite angeben, es hat sich also nichts verbessert.

Zuerst einmal solltest du hier nicht so herumschreien.

Deine Äusserungen zeigen mir das du noch nicht einmal die Grundlagen von HTML und CSS beherrschst, sonst würdest du wissen das man die Grösse eines Bildes durchaus im HTML Tag angibt.

Mein Rat an dich ist dich erst einmal mit den Grundlagen von HTML und CSS zu beschäftigen dann wirst du auch die Lösungshinweise die wir dir geben verstehen.

Gruss
Elroy
 
Zuerst einmal solltest du hier nicht so herumschreien.

Deine Äusserungen zeigen mir das du noch nicht einmal die Grundlagen von HTML und CSS beherrschst, sonst würdest du wissen das man die Grösse eines Bildes durchaus im HTML Tag angibt.

Mein Rat an dich ist dich erst einmal mit den Grundlagen von HTML und CSS zu beschäftigen dann wirst du auch die Lösungshinweise die wir dir geben verstehen.

Gruss
Elroy

also zuerst einmal muss ich sagen, dass ich mich hier sehr höflich verhalte. nur weil mir eine "lösung" nicht gefällt heißt das nicht, dass ich hier herumschreie!

das war jz mein 6. post, entweder du willst mir nicht helfen oder du kannst es nicht.
ich denke meine frage ist mittlerweile recht deutlich formuliert und mein wunsch dürfte nicht allzuschwer in einem html file (siehe startpost) unterbringen zu sein!
 
Werbung:
im <img> width und height anzugeben fällt nicht unter diese regel.
es ist durchaus sinnvoll die dimensionen eines bildes im html-quelltext anzugeben, da der browser dann bereits den benötigten platz beim seitenaufbau berücksichtigen kann, bevor das bild vollständig geladen wurde.
das verhindert ein "springen" der anderen inhalte bei der aufbaukorrektur.
außerdem ist es wenig sinnvoll, für jedes verwendete bild eine css-klasse anzulegen.

danke, dass mit den "springen" habe ich nicht gewusst.
es stimmt schon, es macht wenig sinn für jedes img eine id zu vergeben, dass hatte ich aber auch nicht vor.

img benötigt nicht zwingend eine größenangabe:
<img src="tanzmaus.png" alt="Tanzmaus">
 
Hallo.

Dein Text in Fettschrift gilt in einem Forum normalerweise als schreien.

Die Größennangaben sind nicht nötig, aber auch nicht wie du behauptet hast falsch.

Wenn du eine auf dich zugeschnittene Antwort willst dann zeig uns doch mal endlich was genau du willst.
Du schreibst hier von verschieden langen Texten und Bildern. In deinem Beispiel ist davon nichts zu sehen Dort sehe ich nur ein leeres und somit sinnloses div.

Das dieses div falsch ist darauf habe ich dich ja schon hingewiesen.
Ebenso habe ich dich darauf hingewiesen das man die Lightbox auch dem HTML Tag zuweisen kann den du zur Auszeichnung deines Textes oder deiner Bilder benutzt.

Diese Hinweise hast du aber offensichtlich nicht verstanden was mich vermuten lässt das du die Grundlagen von HTML und CSS noch nicht beherrschst.

Wenn aber hier jemand gesucht wird der deine Arbeit macht und dir ein Copy & Paste Beispiel zur Verfügung stellt dann soll das bitte jemand anders tun.
Da ich dir anscheind nicht helfen kann was das jetzt mein letzter Beitrag zu diesen Thema.

Gruss
Elroy
 
Dein Text in Fettschrift gilt in einem Forum normalerweise als schreien.
ich hab den text von einer anderen seite kopiert. beim einfügen hat der text automatisch fett gestellt (man konnte das auch nicht auf normal zurücksetzen).
es war aber in keinster weise so gemeint, tut mir leid.

Die Größennangaben sind nicht nötig, aber auch nicht wie du behauptet hast falsch.
ich hab nicht geschrieben, dass sie falsch sind, mir gefallen sie einfach nicht (zumindest nicht im html file).

Das dieses div falsch ist darauf habe ich dich ja schon hingewiesen.
Ebenso habe ich dich darauf hingewiesen das man die Lightbox auch dem HTML Tag zuweisen kann den du zur Auszeichnung deines Textes oder deiner Bilder benutzt.
ich seh keines, in diesem div steht der Text "Diese Box soll leuchten!", ist das etwa leer?
ich kann hier auch nirgends finden, wo du geschrieben hast, das div von mir wäre falsch.
du hast lediglich geschrieben es könnte auch genügen den Inhalt semantisch korrekt auszuzeichnen und auf die divs zu verzichten.


Wenn aber hier jemand gesucht wird der deine Arbeit macht und dir ein Copy & Paste Beispiel zur Verfügung stellt dann soll das bitte jemand anders tun.
Da ich dir anscheind nicht helfen kann was das jetzt mein letzter Beitrag zu diesen Thema.

es war nicht gedacht, dass jemand anderer meine arbeit macht, sondern dass jemand anderer mir zeigt (am besten in form eines beispiels, da ich davon am meisten lerne) wie man mein problem löst. ich glaube genau dass ist der sinn und zweck eines solchen forums.

Wenn du eine auf dich zugeschnittene Antwort willst dann zeig uns doch mal endlich was genau du willst.
Du schreibst hier von verschieden langen Texten und Bildern. In deinem Beispiel ist davon nichts zu sehen Dort sehe ich nur ein leeres und somit sinnloses div.

dann wiederhole ich meine frage nocheinmal:

wie kann man in html bestimmte elemente (div, img, p, ...) die breite automatisch setzen. Ich möchte bestimmte elemente optisch hervorheben (mit einem border zu umranden, die hintergrundfarbe auf gelb zu setzen, ...)
Natürlich solle nur der Background der Elemente (also die Breite des Elements) gelb hintermalt werden, nicht die ganze Bildschirmbreite.
Alle Elemente sollen also nur so breit sein, wie sie es zwingend sein müssen, nicht überflüssig länger -> WIE GEHT DAS?


Für mein Problem habe ich bereits eine Lösung, nämlich für jedes Element eine Breite im HTML File anzugeben. Diese Lösung gefällt mir jedoch nicht, da ich HTML und CSS strikt trennen möchte.

Ich habe hier eine Html Datei geschrieben, wie es aussehen sollte:

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <style type="text/css">
    .lightbox
    {   
      background-color: #ffff33;   
      width: auto;
      margin-top: 10px;   
      padding: 15px;   
      border: 3px solid black;   
      text-align: center;
    }
    .SoNicht{
      color: red;
      font-size: 20px;
    }
    .Besser{
      margin-top: 50px;
      color: green;
      font-size: 20px;
    }
    </style>
  </head>

  <body>
   
    <p class="SoNicht">So soll es nicht aussehen:</p>
    <p class="lightbox"> Diese Box soll leuchten!</p>
    <p class="lightbox"> Diese Box mit einem etwas längerem Text soll auch leuchten!</p>
    <p class="lightbox"> <img src="http://mechanik.uibk.ac.at/aboutifm/staff/schueller/figures/html_icon.gif" alt=""></p>

   
    <p class="Besser">So soll es aussehen:</p>
    <p class="lightbox" style="width:9.5em;"> Diese Box soll leuchten!</p>
    <p class="lightbox" style="width:23em;"> Diese Box mit einem etwas längerem Text soll auch leuchten!</p>
    <p class="lightbox" style="width:3em;"> <img src="http://mechanik.uibk.ac.at/aboutifm/staff/schueller/figures/html_icon.gif" alt=""></p>
   
  </body>
</html>
 
Werbung:
Zurück
Oben