Automatisches Boxenende

Cascading Style Sheets (CSS ist eine praktische Code-Sprache, die einmal erstellt für das Aussehen der ganzen Seite gilt. So können z. B. Schriftattribute wie Farbe, Schriftart und Link-Farben und Formatierung bequem eingestellt werden.) - Fragen - Antworten - Tipps dazu hier ..

Moderator: lauras

Beiträge bitte im neuen Forum

Automatisches Boxenende

Beitragvon Shadow1911 » Mittwoch 11. Januar 2012, 17:28

Hi Community,

ich habe gerade ein Problem.
Via CSS möchte ich eine Art Nachrichtenbox für meine Website generieren. Nun möchte ich aber, dass die Länge dynamisch ist und dadurch automatisch die Länge der Box bestimmt wird. An Anfang und Ende der Box soll noch zusätzlich eine Grafik eingefügt werden, dass die Box quasi abgerundet wird.

Ihr könnt euch das so vorstellen:
|...................................|
|............Boxanfang...........|

|............Boxinhalt............|

|............Boxende.............|
|-----------------------------------|

Drei verschiedene Grafiken, Anfang und Ende sollen automatisch die Box abschließen, egal wie lang der Inhalt ist.

Schonmal vielen Dank für qualmende Köpfe und gute Antworten (:

Liebe Grüße,
Shadow
Shadow1911
HTML-Newbie
 
Beiträge: 12
Registriert: Mittwoch 11. Januar 2012, 17:22

Re: Automatisches Boxenende

Beitragvon Yamram » Mittwoch 11. Januar 2012, 17:34

Also, ich weiß jetzt nicht, wie diese Bilder für oben und unten aussehen, aber du kannst es auch anders machen:

Code: Alles auswählen
div#messagebox {
  border-radius: 5px;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
}


Falls die Bilder nicht durch CSS ersetzt werden können, dann kannst du auch mit CSS3 mehrere Hintergründe benutzen. Das machst du wie folgt:

Code: Alles auswählen
div#messagebox {
  background-image: url(bg_oben.png), url(bg_unten.png);
  background-position: top center, bottom center;
  background-repeat: no-repeat;
  background-color: #ffffff;
}

Hier schreibst du quasi einfach zwei Bilder mit einem Komma und einem Leerzeichen getrennt hin und definierst danach ebenfalls mit einem Komma und einem Leerzeichen getrennt die Eigenschaften. Falls eine Eigenschaft auf beide Bilder zutrifft, dann kannst du sie einfach ein mal hinschreiben, das wird dann für beide genommen. Hier werden beide Bilder nicht wiederholt.

Das ist viel einfacher :D Du musst aber dran denken, dass das nicht in jedem Browser funktioniert.
Benutzeravatar
Yamram
HTML-Sonderfall
 
Beiträge: 616
Registriert: Samstag 5. Februar 2011, 20:05
Wohnort: C:\Users\Yamram\Desktop\Papierkorb.ink

Re: Automatisches Boxenende

Beitragvon drPHIP132 » Mittwoch 11. Januar 2012, 17:38

die box soll dynamisch breit sein, sprich wird der inhalt größer verbreitert sie sich, aber nimmt nicht die ganze breite ein?

Code: Alles auswählen
#box
{
display: inline-block;
}
Zuletzt geändert von drPHIP132 am Mittwoch 11. Januar 2012, 17:42, insgesamt 1-mal geändert.
Benutzeravatar
drPHIP132
HTML-Acrobat
 
Beiträge: 744
Registriert: Samstag 15. Januar 2011, 19:10
Wohnort: Sachsen, Erzgebirge

Re: Automatisches Boxenende

Beitragvon webmaster3000 » Mittwoch 11. Januar 2012, 17:41

drPHIP132 hat geschrieben:die box soll dynamisch groß sein, sprich wird der inhalt größer verbreitert sie sich, aber nimmt nicht die ganze breite ein?

vllt hat er die Boxen in einem anderen Element (z. B. einer Sidebar), die schon eine feste Breite hat?
webmaster3000
HTML-Doctor
 
Beiträge: 257
Registriert: Donnerstag 29. September 2011, 16:32
Wohnort: Irgendwo in Thüringen

Re: Automatisches Boxenende

Beitragvon Yamram » Mittwoch 11. Januar 2012, 17:47

Wenn die Breite dynamisch ist, dann funktioniert das ganze natürlich nur anders. Dann müsstest Du mit 4 Bildern arbeiten. Oben links, oben rechts, unten rechts und unten links. Folgender Code wäre dann geeignet:

Code: Alles auswählen
div#messagebox {
  background-image: url(bg_obenlinks.png), url(bg_obenrechts.png), url(bg_untenrechts.png), url(bg_untenlinks.png);
  background-position: top left, top right, bottom right, bottom left;
  background-repeat: no-repeat;
  background-color: #ffffff;
}


Es ist zwar etwas umständlicher, aber es ist trotzdem möglich ;) Ich empfehle trotzdem border-radius :D Wenn der Rahmen besonders ist und du ihn mit Gimp oder Photoshop erstellt hast, dann kannst auch border-image benutzen.

Ach, ich liebe CSS3 :DDDD
Benutzeravatar
Yamram
HTML-Sonderfall
 
Beiträge: 616
Registriert: Samstag 5. Februar 2011, 20:05
Wohnort: C:\Users\Yamram\Desktop\Papierkorb.ink

Re: Automatisches Boxenende

Beitragvon Shadow1911 » Mittwoch 11. Januar 2012, 17:51

Yamram hat geschrieben:Das ist viel einfacher :D Du musst aber dran denken, dass das nicht in jedem Browser funktioniert.


Danke dir, aber das oben ist auch schon genau das Problem ;)

webmaster3000 hat geschrieben:
drPHIP132 hat geschrieben:die box soll dynamisch groß sein, sprich wird der inhalt größer verbreitert sie sich, aber nimmt nicht die ganze breite ein?

vllt hat er die Boxen in einem anderen Element (z. B. einer Sidebar), die schon eine feste Breite hat?


Webmaster liegt richtig ;)
Das ist so eine Art "News-Box" die dezente 200px breit ist.

----------

So, ich habe jetzt mal eine Beispielbox im Anhang.
Dateianhänge
news_ex.jpg
news_ex.jpg (12.41 KiB) 81-mal betrachtet
Shadow1911
HTML-Newbie
 
Beiträge: 12
Registriert: Mittwoch 11. Januar 2012, 17:22

Re: Automatisches Boxenende

Beitragvon drPHIP132 » Mittwoch 11. Januar 2012, 17:56

möchtest du nun, dass die newsbox sich an den text anpasst oder so breit ist, wie der bereich, indem der div verschachtelt ist?

gibt zum beispiel folgende möglichkeiten
drPHIP132 hat geschrieben:an den text anpasst

Code: Alles auswählen
#box
{
    display: inline-block;
}


drPHIP132 hat geschrieben:so breit ist, wie der bereich, indem der div verschachtelt ist

Code: Alles auswählen
#box
{
    display: block; /* wobei das eigentlich unnötig ist, da div's standartmäßig bei (neuen) browsern bereits "block" sind
}
Benutzeravatar
drPHIP132
HTML-Acrobat
 
Beiträge: 744
Registriert: Samstag 15. Januar 2011, 19:10
Wohnort: Sachsen, Erzgebirge

Re: Automatisches Boxenende

Beitragvon Yamram » Mittwoch 11. Januar 2012, 17:57

Okay, also die Box ist immer 200px breit und die Länge soll dynamisch sein. Dann fällt mir nur eins, was etwas umständlich ist. Du machst zwei Bilder. Das eine Bild hat unten einen kleinen Abstand und dann kommt dieses grüne ziemlich lang. Es könnte am besten 200px X 1000px sein. Das andere Bild muss oben diesen Abstand haben und unten keinen. Dann arbeitest du mit CSS3 und mutliple Backgrounds. Das erste Bild setzt du unten uns es soll sich nach oben wiederholen (repeat-y) und das andere wiederholt sich nicht, sondern ist nur einmal ganz oben und verdeckt somit das erste Bild im oberen Bereich.

ODER:
Da du ja die Breite nicht änderst, kannst du auch mit drei Grafiken arbeiten. Oben, in der Mitte und unten. Wo ist das Problem? Das mittlere Bild lässt du einfach y-repeaten und die anderen beiden lässt du nicht wiederholen. Dürfte eigentlich funktionieren. Die Bilder müssten dann natürlich entsprechend aussehen :D
Zuletzt geändert von Yamram am Mittwoch 11. Januar 2012, 18:00, insgesamt 1-mal geändert.
Benutzeravatar
Yamram
HTML-Sonderfall
 
Beiträge: 616
Registriert: Samstag 5. Februar 2011, 20:05
Wohnort: C:\Users\Yamram\Desktop\Papierkorb.ink

Re: Automatisches Boxenende

Beitragvon drPHIP132 » Mittwoch 11. Januar 2012, 17:58

sorry, grade erst gelesen das es dir um die länge geht :D

die box (nicht die newsboxes) sondern das was drumherum ist:

Code: Alles auswählen
außen_box
{
    min-height: 300px;
}

dann wird die länger wenn mehr inhalt ist^^
Benutzeravatar
drPHIP132
HTML-Acrobat
 
Beiträge: 744
Registriert: Samstag 15. Januar 2011, 19:10
Wohnort: Sachsen, Erzgebirge

Re: Automatisches Boxenende

Beitragvon lauras » Mittwoch 11. Januar 2012, 18:02

Shadow1911 hat geschrieben:
Yamram hat geschrieben:Das ist viel einfacher :D Du musst aber dran denken, dass das nicht in jedem Browser funktioniert.


Danke dir, aber das oben ist auch schon genau das Problem ;)


Manchmal muss man Kompromisse eingehen - solange es die Funktion der Box nicht beeinträchtigt, kannst du auch durchaus den Browsern, die das nicht verstehen eben keine "schicke" Box zeigen - funktionieren muss es (und gutes Aussehen ist Zusatz).
Benutzeravatar
lauras
Moderator
 
Beiträge: 2114
Registriert: Samstag 3. November 2007, 22:08

Re: Automatisches Boxenende

Beitragvon Shadow1911 » Mittwoch 11. Januar 2012, 18:05

Yamram hat geschrieben:Okay, also die Box ist immer 200px breit und die Länge soll dynamisch sein. Dann fällt mir nur eins, was etwas umständlich ist. Du machst zwei Bilder. Das eine Bild hat unten einen kleinen Abstand und dann kommt dieses grüne ziemlich lang. Es könnte am besten 200px X 1000px sein. Das andere Bild muss oben diesen Abstand haben und unten keinen. Dann arbeitest du mit CSS3 und mutliple Backgrounds. Das erste Bild setzt du unten uns es soll sich nach oben wiederholen (repeat-y) und das andere wiederholt sich nicht, sondern ist nur einmal ganz oben und verdeckt somit das erste Bild im oberen Bereich.

ODER:
Da du ja die Breite nicht änderst, kannst du auch mit drei Grafiken arbeiten. Oben, in der Mitte und unten. Wo ist das Problem? Das mittlere Bild lässt du einfach y-repeaten und die anderen beiden lässt du nicht wiederholen. Dürfte eigentlich funktionieren. Die Bilder müssten dann natürlich entsprechend aussehen :D


Funktioniert das dann auch, wenn ich mehrere solcher Boxen in diesem Bereich haben will?
Also die Boxen sind via <ul><li> eingetragen, also wie eine Navigation.
Shadow1911
HTML-Newbie
 
Beiträge: 12
Registriert: Mittwoch 11. Januar 2012, 17:22

Re: Automatisches Boxenende

Beitragvon Yamram » Mittwoch 11. Januar 2012, 18:09

Ja, klar funktioniert das. Probier das mal aus :D
Benutzeravatar
Yamram
HTML-Sonderfall
 
Beiträge: 616
Registriert: Samstag 5. Februar 2011, 20:05
Wohnort: C:\Users\Yamram\Desktop\Papierkorb.ink

Re: Automatisches Boxenende

Beitragvon Shadow1911 » Mittwoch 11. Januar 2012, 18:11

Yamram hat geschrieben:Ja, klar funktioniert das. Probier das mal aus :D


Okay, danke ;)
Shadow1911
HTML-Newbie
 
Beiträge: 12
Registriert: Mittwoch 11. Januar 2012, 17:22

Re: Automatisches Boxenende

Beitragvon Yamram » Mittwoch 11. Januar 2012, 18:48

Bitte. Dafür sind wir da. Und gibt es schon Ergebnisse? Da bin ich mal gespannt, ob meine Lösung funktioniert...
Benutzeravatar
Yamram
HTML-Sonderfall
 
Beiträge: 616
Registriert: Samstag 5. Februar 2011, 20:05
Wohnort: C:\Users\Yamram\Desktop\Papierkorb.ink

Re: Automatisches Boxenende

Beitragvon Shadow1911 » Mittwoch 11. Januar 2012, 19:06

Yamram hat geschrieben:Bitte. Dafür sind wir da. Und gibt es schon Ergebnisse? Da bin ich mal gespannt, ob meine Lösung funktioniert...


Deine Lösung funktioniert sogar super ;)
Ich habe nur das eine Problem, dass mir das Ende nicht angezeigt wird, das liegt aber sicher an mir.
Mit z-index konnt ich es auch nicht in den Vordergrund schieben.

Hier mal der Code:
Code: Alles auswählen
ul#news li {
   background-image: url(Design/news_t.jpg), url(Design/news_c.jpg), url(Design/news_b.jpg);
   background-repeat: no-repeat, repeat-y, no-repeat;
   background-position: top center, center, bottom center;
   z-index: 1, 3, 2;
   width: 150;
   list-style: none;
   padding: 25 25 25 25;
   font-size: 20;
}


So sieht man den Kopf, den dynamischen Inhalt, aber leider nicht das Ende, wobei ich nicht weiß, ob er das Ende gar nicht darstellt, oder ob es vom Inhalt überdeckt wird.
Shadow1911
HTML-Newbie
 
Beiträge: 12
Registriert: Mittwoch 11. Januar 2012, 17:22

Nächste

Beiträge bitte im neuen Forum

Zurück zu CSS

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron