• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] Breitenabhängige Spalten

mikdoe

Moderator
Hallo!

Wie bekomme ich breitenabhängige Spalten definiert?
Habe eine variierende Anzahl von Wörtern (eine Art Keywords) die in Spalten untereinander aufgelistet werden sollen. Und die Anzahl der Spalten soll der Browser nach der Anzeigebreite des Fensters allein ermitteln.
Bei schmalen Anzeigen z.B. nur 3 Spalten, bei breiten Anzeigen ruhig 10 und mehr Spalten.

Schön wäre, wenn die alphabetische Sortierung vertikal wäre, Beispiel:
Code:
Alpha    Delta            Gustav
Beta     Epsilon          Heinrich
Ceta     Friedrich        Ida
usw.

Was ich NICHT möchte ist eine horizontale Sortierung wie diese:
Code:
Alpha      Beta       Ceta
Delta      Epsilon    Friedrich
Gustav     Heinrich   Ida

Falls JS erforderlich ist gern mit jQuery.
 
Zuletzt bearbeitet:
Ich glaube, das sollte eigenlich mit CSS3 und dem neuen Textflussmodell funktionieren (hab' mich selbst noch nicht im Detail damit auseinandergesetzt).

Aber wenn es auch in älteren Browsern funktionieren soll, wirst du um JS nicht herum kommen. Das einfachste ist wahrscheinlich, wenn du deinen Elementen ein display:inline-block gibst, damit sie alle die gleiche Breite haben, und beim window.onload und window.resize sortierst du die Elemente im DOM so um, dass sie richtig dargestellt werden. Also der Browser macht immer noch von links nach rechts und dann von oben nach unten, aber es sieht anders aus. Eventuell braucht man dann noch Platzhalterelemente für eventuelle Leerstellen in der letzten Spalte.

PS: den griechischen Buchstaben Zeta schreibt man mit "z"...
 
Hi Korbinian!
Danke für das Zeta :)
Ich brauche ausdrücklich hier keine alten Browser.
Sollen wir uns das neue Textflussmodell mal zusammen anschauen? Wie ist das Stichwort zum suchen?
 
Code:
<!DOCTYPE html>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Fenstertitel</title>
<script type="text/javascript"></script>
<style type="text/css">
body {
	-moz-column-width: 280px;
	-moz-column-gap: 40px;
	-webkit-column-width: 280px;
	-webkit-column-gap: 40px;
	-ie-column-width: 280px;
	-ie-column-gap: 40px;
	column-width: 280px;
	column-gap: 40px;
}
span {
	display: inline-block;
	width: 200px;
	border: 1px solid black;
	margin: 4px;
	padding: 5px;
	text-align: center;
}
</style>
</head>
<body>
<span>a</span>
<span>b</span>
<span>c</span>
<span>d</span>
<span>e</span>
<span>f</span>
<span>g</span>
<span>h</span>
<span>i</span>
</body>
</html>
- funktioniert im IE10, FF23, Safari 5, Opera 12
Grundinfos hab' ich aus: CSS-3-Spaltenlayouts: Flexibler Textumbruch mit dem Multi-Column-Layout-Modul - Dr. Web Magazin
 
Danke dir!
Hmmm, sieht gut aus aber es sortiert genau so wie ich es nicht haben wollte, nämlich horizontal.
Und habe ich es richtig verstanden, dass die "gap" die Spaltenbreite ist?
Na ja, die soll der Browser eigentlich auch selbst ermitteln. Und zwar soll er das größte "gap" aus der gesamten Tabelle auf alle anwenden.
Ich kann im Backend zwar ermitteln, welches das längste Wort ist aber das muss ja in der Darstellung nicht unbedingt auch die größte Breite haben.
Kann man das "gap" auch flexibilisieren?
 
Bei mir sortiert das so:
Code:
a	d	g
b	e	h
c	f	i
So wolltest du es doch... in welchem Browser hast du's dir denn angesehen?

Die "gap" ist der Abstand zwischen zwei Spalten. Die Spaltenbreite ist die "width" und die musst du fix angeben, wenn du eine variable Anzahl von Spalten haben willst.
 
Auch im IE10 ist es bei mir
Code:
a	d	g
b	e	h
c	f	i

Welches OS hast du? Hast du alle Updates für den IE installiert? Bist du sicher, dass du im IE10 Modus läufst und nicht im IE9 - der IE kann das wirklich erst ab 10.
 
Ich weiß, woran das liegt.
Ich hatte bei allen 4 width Angaben 100 % eingesetzt. Dann sortieren sowohl IE als auch FF horizontal.
Erreichen wollte ich, dass sich der Browser die gesamte Breite nimmt.
Aber diese width ist die Spaltenbreite, ich Idiot :)
OK, dann komme ich damit zurecht.
Danke, Korbinian!
 
Habe diese Sache hier mal versucht, einzubauen.
Mein Code ist unten, ist aber nicht fertig. Das Minus bekommt auch noch eine Funktion.

Im IE10: Alle Span's sind untereinander, keine Sortierung.
Im FF: Span's sind zwar nebeneinander aber auch ohne Sortierung.

Was mache ich falsch?

HTML:
<!DOCTYPE html>
<html>
<head>
<title>Test JS Gruppen als select</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style type="text/css">
.browsersortdiv {
	-moz-column-width:		280px;
	-moz-column-gap:		40px;
	-webkit-column-width:	280px;
	-webkit-column-gap:		40px;
	-ie-column-width:		280px;
	-ie-column-gap:			40px;
	column-width:			280px;
	column-gap:				40px;
}
.browsersortelement {
	display:				inline-block;
	width:					200px;
	border:					1px solid black;
	margin:					1px;
	padding:				2px;
	text-align:				center;
}
.browsersortelementminus {
	border-radius:			10px;
	border:					1px black solid;
	padding-left:			2px;
}
</style>
<script>
function gruppenselect_felder(dataobj) {
	var string = '';
	jQuery.each(dataobj['vergeben'],function(i,key) {
		string += (string != '' ? ',' : '')+key;
	});
	document.getElementById('gruppenfeld').value = string;
}
function gruppenselect_init(dataobj){
	document.getElementById('gruppentab').innerHTML = '';
	jQuery.each(dataobj['vergeben'],function(i,key) {
		var item = document.createElement('span');
		item.className = 'browsersortelement';
		item.innerHTML = dataobj.liste[key];

		var minus = document.createElement('span');
		minus.className = 'browsersortelementminus';
		minus.innerHTML = '-';
		item.appendChild(minus);

		document.getElementById('gruppentab').appendChild(item);
	});
	gruppenselect_plus_anbieten(dataobj);
}
function gruppenselect_plus_anbieten(dataobj) {
	document.getElementById('gruppentabplus').innerHTML = '';
	var offen = Object.keys(dataobj['liste']).length;
	var vergeben = dataobj['vergeben'].length;
	if (offen > vergeben) {
		document.getElementById('gruppentabplus').innerHTML = '<div id="add_gruppe" style="cursor:pointer;background-color:yellow;">+Hinzufügen+</div>';
		document.getElementById('add_gruppe').onclick = function() { gruppenselect_plus_select_bauen(dataobj); };
	}
	else {
		document.getElementById('gruppentabplus').innerHTML = 'Es steht keine Auswahl mehr zur Verfügung';
	}
}
function gruppenselect_plus_select_bauen(dataobj) {
	document.getElementById('gruppentabplus').innerHTML = '';
	var selfeld = document.createElement('select');
	selfeld.style.cursor = 'pointer';
	selfeld.id = 'selectfeld';
	selfeld.onchange = function() {
		dataobj['vergeben'].push(this.value);
		gruppenselect_felder(dataobj);
		gruppenselect_init(dataobj);
	};
	var optionNeu = new Option(' Bitte wählen ','0');
	optionNeu.innerHTML = ' Bitte wählen ';
	selfeld.appendChild(optionNeu);
	jQuery.each(dataobj['liste'],function(i,key) {
		var match = 0;
		jQuery.each(dataobj['vergeben'],function(i2,key2) {
			if (i == key2) { match = 1; }
		});
		if (!match) {
			optionNeu = new Option(' '+dataobj.liste[i]+' ',i);
			optionNeu.innerHTML = ' '+dataobj.liste[i]+' ';
			selfeld.appendChild(optionNeu);
		}
	});
	document.getElementById('gruppentabplus').appendChild(selfeld);
	document.getElementById('selectfeld').focus();
};
</script>
</head>

<body>

<form id="sendeform">
	<input type="hidden" name="gruppen" id="gruppenfeld">
</form>

<table>
	<tr><td id="gruppentab" class="browsersortdiv"></td></tr>
	<tr><td id="gruppentabplus"></td></tr>
</table>

<script>
	var dataobj = {
		liste		: {
			10			: 'Test',
			20			: 'Familie',
			30			: 'Bekannte',
			40			: 'Stadt',
			50			: 'Land',
			60			: 'Fluss',
			70			: 'Verein',
			90			: 'Organisation'
		},
		vergeben	: [20,40]
	};
	gruppenselect_init(dataobj);
</script>

</body>
</html>
 
Zuletzt bearbeitet:
Sehe gerade, dass ich oben was falsch geschrieben hab': das Browserpräfix vom IE ist "-ms" und nicht "-ie"

Daran liegt's aber nicht, sondern daran, dass du in einem <table> arbeitest... nimm' ein <div> und es geht auch im IE...

PS: Ev. kann man es auch im IE laufen lassen, wenn man dem <table> eine Breite und table-layout: fixed; gibt...
 
Beide Browser sortieren in der Anzeige auch mit "-ms" und mit div nicht.
Die Sortierung im Select hingegen habe ich hinbekommen (war die Frage aus http://forum.jswelt.de/javascript/58439-sortieren-listen.html). Das sieht zwar etwas umständlich und ungewohnt aus aber es funktioniert und sortiert nur einmal am Anfang, was ja bei größeren Mengen gut sein könnte.

Hier der aktuelle Code:
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Test JS Gruppen als select</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style type="text/css">
.browsersortdiv {
	-moz-column-width:		280px;
	-moz-column-gap:		40px;
	-webkit-column-width:	280px;
	-webkit-column-gap:		40px;
	-ms-column-width:		280px;
	-ms-column-gap:			40px;
	column-width:			280px;
	column-gap:				40px;
}
.browsersortelement {
	display:				inline-block;
	width:					200px;
	border:					1px solid black;
	margin:					1px;
	padding:				2px;
	text-align:				center;
}
.browsersortelementminus {
	border-radius:			10px;
	border:					1px black solid;
	padding-left:			2px;
	cursor:					pointer;
}
</style>
<script>
function gruppenselect_init(dataobj){
	document.getElementById('gruppentab').innerHTML = '';

	// Liste sortieren
	if (!dataobj['sortiert']) {
		gruppenselect_sort(dataobj);
	}

	// <form> Feld befüllen
	var string = '';
	jQuery.each(dataobj['vergeben'],function(i,key) {
		string += (string != '' ? ',' : '')+key;
	});
	document.getElementById('gruppenfeld').value = string;

	// ausgewählte anzeigen
	jQuery.each(dataobj['vergeben'],function(i,key) {
		var item = document.createElement('span');
		item.className = 'browsersortelement';
		item.innerHTML = dataobj.liste[key];

		var minus = document.createElement('span');
		minus.className = 'browsersortelementminus';
		minus.innerHTML = '-';
		minus.setAttribute('data',key)
		minus.onclick = function() {
			var val = this.getAttribute('data');
			for (var i = 0; i < dataobj['vergeben'].length; i++) {
				if (dataobj['vergeben'][i] == val) {
					dataobj['vergeben'].splice(i,1);
					break;
				}
			}
			gruppenselect_init(dataobj);
		};
		item.appendChild(minus);

		document.getElementById('gruppentab').appendChild(item);
	});
	gruppenselect_plus_select_bauen(dataobj);
}
function gruppenselect_sort(dataobj) {
	dataobj['listesortiert'] = new Array;
	jQuery.each(dataobj['liste'],function(i,key) {
		dataobj['listesortiert'].push(i);
	});
	dataobj['listesortiert'].sort(function(a,b) { return (dataobj['liste'][a] > dataobj['liste'][b] ? 1 : (dataobj['liste'][a] < dataobj['liste'][b] ? -1 : 0)); } );
	dataobj['sortiert'] = 1;
}
function gruppenselect_plus_select_bauen(dataobj) {
	document.getElementById('gruppentabplus').innerHTML = '';
	if (dataobj['darfaendern'] && dataobj['darfaendern'] == '1') {
		var offen = Object.keys(dataobj['liste']).length;
		var vergeben = dataobj['vergeben'].length;
		if (offen > vergeben) {
			var selfeld = document.createElement('select');
			selfeld.style.cursor = 'pointer';
			selfeld.id = 'selectfeld';
			selfeld.onchange = function() {
				dataobj['vergeben'].push(this.value);
				gruppenselect_init(dataobj);
			};
			var optionNeu = new Option(' Bitte wählen ','0');
			optionNeu.innerHTML = ' Bitte wählen ';
			selfeld.appendChild(optionNeu);
			jQuery.each(dataobj['listesortiert'],function(i,key) {
				var match = 0;
				jQuery.each(dataobj['vergeben'],function(i2,key2) {
					if (key == key2) { match = 1; }
				});
				if (!match) {
					optionNeu = new Option(dataobj.liste[key],key);
					optionNeu.innerHTML = dataobj.liste[key];
					selfeld.appendChild(optionNeu);
				}
			});
			document.getElementById('gruppentabplus').appendChild(selfeld);
			document.getElementById('selectfeld').focus();
		}
		else {
			document.getElementById('gruppentabplus').innerHTML = 'Es steht keine Auswahl mehr zur Verfügung';
		}
	}
};
</script>
</head>

<body>

<form id="sendeform">
	<input type="hidden" name="gruppen" id="gruppenfeld">
</form>

<div id="gruppentab" class="browsersortdiv"></div>
<div id="gruppentabplus"></div>

<script>
	var dataobj = {
		liste		: {
			10			: 'Test',
			20			: 'Familie',
			30			: 'Bekannte',
			40			: 'Stadt',
			50			: 'Land',
			60			: 'Fluss',
			70			: 'Verein',
			90			: 'Organisation'
		},
		vergeben	: [20,40],
		darfaendern	: 1
	};
	gruppenselect_init(dataobj);
</script>

</body>
</html>
Was läuft falsch? Wieso sortieren die Browser die Spalten nicht?
 
Gerade habe ich etwas sehr interessantes herausgefunden:
Wenn man die Elemente vorsortiert in das div appended und danach den Browser durch Fenstergrößenänderung zu einem Neulayout zwingt, ist die Liste meistens sortiert.
Funktioniert in beiden Browsern.
Workaround: Seite aufrufen, alle vorhandenen Gruppen zuordnen, Liste ist unsortiert.
Nun die Fenstergröße so ändern, dass zwei Spalten mit Zwischenraum zu sehen sind: ist sortiert
Wenn ich nun die Fenstergröße weiter verschmälere, sodass der Zwischenraum weg geht, ist sie wieder unsortiert.
Das kann man beliebig fortsetzen.

2_spalten_sortiert.jpg2_spalten_unsortiert.jpg4_spalten_sortiert.jpg4_spalten_unsortiert.jpg

Jetzt die Fragen:
1. wie schaffen wir es, den Browser zu einem Neulayouten der Seite zu zwingend, nachdem alle Elemente drin sind?
2. wie verhindern wir, dass er bei einer Breitenänderung in diesen Modus ohne Zwischenraum verfällt, wo die Sortierung weg ist?

Hier nochmal der aktuelle Code mit dem das nachstellbar ist.
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Test JS Gruppen als select</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<style type="text/css">
.browsersortdiv {
	-moz-column-width:		280px;
	-moz-column-gap:		40px;
	-webkit-column-width:	280px;
	-webkit-column-gap:		40px;
	-ms-column-width:		280px;
	-ms-column-gap:			40px;
	column-width:			280px;
	column-gap:				40px;
}
.browsersortelement {
	display:				inline-block;
	width:					200px;
	border:					1px solid black;
	margin:					1px;
	padding:				2px;
	text-align:				center;
}
.browsersortelementminus {
	border-radius:			10px;
	border:					1px black solid;
	padding-left:			2px;
	cursor:					pointer;
}
</style>
<script>
function tastenpruefung(taste,aufruf) {
	var key = (taste.which) ? taste.which : taste.keyCode;
	if (key == 13) {
		aufruf();
	}
}
function gruppenselect_init(dataobj){
	document.getElementById('gruppentab').innerHTML = '';

	// Liste sortieren
	if (!dataobj['sortiert']) {
		gruppenselect_sort(dataobj);
	}

	// <form> Feld befüllen
	var string = '';
	jQuery.each(dataobj['vergeben'],function(i,key) {
		string += (string != '' ? ',' : '')+key;
	});
	document.getElementById('gruppenfeld').value = string;

	// ausgewählte anzeigen
	dataobj['vergeben'].sort(
		function(a,b) {
			return (dataobj['liste'][a].toLowerCase() > dataobj['liste'][b].toLowerCase()
				? 1
				: (dataobj['liste'][a].toLowerCase() < dataobj['liste'][b].toLowerCase()
					? -1
					: 0
				)
			);
		}
	);
	jQuery.each(dataobj['vergeben'],function(i,key) {
		var item = document.createElement('span');
		item.className = 'browsersortelement';
		item.innerHTML = dataobj.liste[key];

		if (dataobj['darfaendern'] && dataobj['darfaendern'] == '1') {
			var minus = document.createElement('span');
			minus.className = 'browsersortelementminus';
			minus.innerHTML = '-';
			minus.setAttribute('data',key)
			minus.onclick = function() {
				var val = this.getAttribute('data');
				for (var i = 0; i < dataobj['vergeben'].length; i++) {
					if (dataobj['vergeben'][i] == val) {
						dataobj['vergeben'].splice(i,1);
						break;
					}
				}
				gruppenselect_init(dataobj);
			};
			item.appendChild(minus);
		}

		document.getElementById('gruppentab').appendChild(item);
	});
	gruppenselect_select_bauen(dataobj);
}
function gruppenselect_sort(dataobj) {
	dataobj['listesortiert'] = new Array;
	jQuery.each(dataobj['liste'],function(i,key) {
		dataobj['listesortiert'].push(i);
	});
	dataobj['listesortiert'].sort(
		function(a,b) {
			return (dataobj['liste'][a].toLowerCase() > dataobj['liste'][b].toLowerCase()
				? 1
				: (dataobj['liste'][a].toLowerCase() < dataobj['liste'][b].toLowerCase()
					? -1
					: 0
				)
			);
		}
	);
	dataobj['sortiert'] = 1;
}
function gruppenselect_select_bauen(dataobj) {
	document.getElementById('gruppentabplus').innerHTML = '';
	if (dataobj['darfaendern'] && dataobj['darfaendern'] == '1') {
		var offen = Object.keys(dataobj['liste']).length;
		var vergeben = dataobj['vergeben'].length;
		if (offen > vergeben || (dataobj['darfanlegen'] && dataobj['darfanlegen'] == 1)) {
			var selfeld = document.createElement('select');
			selfeld.style.cursor = 'pointer';
			selfeld.id = 'gruppenselectselectfeld';
			selfeld.onchange = function() {
				var val = this.value;
				if (val == 'x') {
					if (dataobj['darfanlegen'] && dataobj['darfanlegen'] == 1) {
						var aufrufspeichern = function() {
							var eingabe = document.getElementById('gruppenselectinputid').value;
							// formelle Prüfung
							if (eingabe != '') {
								var falsch = eingabe.search(/[^a-z0-9\.\_\-\(\)\!\§\$\%\/\{\}\[\] ]/i);
								if (falsch == -1) {
									// Doppelprüfung
									var doppelt = 0;
									jQuery.each(dataobj['liste'],function(i,key) {
										if (dataobj['liste'][i].toLowerCase() == eingabe.toLowerCase()) {
											doppelt = i;
										}
									});

									if (!doppelt) {
										// nächste freie Nummer suchen
										var naechste = 1;
										jQuery.each(dataobj['listesortiert'],function(i,key) {
											if (key >= naechste) { naechste = key + 1; }
										});

										// Listen ergänzen
										dataobj['liste'][naechste] = eingabe;
										dataobj['vergeben'].push(naechste);
										delete dataobj['sortiert'];

										// hidden Feld
										var inpfeld = document.createElement('input');
										inpfeld.type = 'hidden';
										inpfeld.name = dataobj['praefixneu']+naechste;
										inpfeld.value = eingabe;
										document.getElementById('sendeform').appendChild(inpfeld);

										gruppenselect_init(dataobj);
									}
									else {
										alert(dataobj['namegruppe']+' gibt es bereits: '+dataobj['liste'][doppelt]);
									}
								}
								else {
									alert('Das Feld enthält mindestens das folgende ungültige Zeichen: '+eingabe.substr(falsch,1));
								}
							}
							else {
								alert('Das Feld ist leer');
							}
						};
						document.getElementById('gruppentabplus').innerHTML = '';

						var beschriftung = document.createElement('span');
						beschriftung.innerHTML = dataobj['namegruppe']+' neu anlegen: ';
						document.getElementById('gruppentabplus').appendChild(beschriftung);

						var inpfeld = document.createElement('input');
						inpfeld.type = 'text';
						inpfeld.name = 'gruppenselecteingabe';
						inpfeld.id = 'gruppenselectinputid';
						inpfeld.onkeydown = function(e) { tastenpruefung(e || event,aufrufspeichern); };
						document.getElementById('gruppentabplus').appendChild(inpfeld);

						var zeile = document.createElement('br');
						document.getElementById('gruppentabplus').appendChild(zeile);

						var abbruchschalter = document.createElement('span');
						abbruchschalter.innerHTML = 'Abbruch';
						abbruchschalter.style.cursor = 'pointer';
						abbruchschalter.onclick = function() {
							gruppenselect_init(dataobj);
						};
						document.getElementById('gruppentabplus').appendChild(abbruchschalter);

						var abstand = document.createElement('span');
						abstand.innerHTML = ' ';
						abstand.style.paddingLeft = '10px';
						abstand.style.paddingRight = '10px';
						document.getElementById('gruppentabplus').appendChild(abstand);

						var speichernschalter = document.createElement('span');
						speichernschalter.innerHTML = 'Speichern';
						speichernschalter.style.cursor = 'pointer';
						speichernschalter.onclick = aufrufspeichern;
						document.getElementById('gruppentabplus').appendChild(speichernschalter);

						document.getElementById('gruppenselectinputid').focus();
					}
				}
				else {
					dataobj['vergeben'].push(val);
					gruppenselect_init(dataobj);
				}
			};
			var beschriftung = document.createElement('span');
			beschriftung.innerHTML = dataobj['namegruppe']+' zuordnen: ';
			document.getElementById('gruppentabplus').appendChild(beschriftung);

			var optionNeu = new Option(' Bitte wählen ','0');
			optionNeu.innerHTML = ' Bitte wählen ';
			selfeld.appendChild(optionNeu);
			jQuery.each(dataobj['listesortiert'],function(i,key) {
				var match = 0;
				jQuery.each(dataobj['vergeben'],function(i2,key2) {
					if (key == key2) { match = 1; }
				});
				if (!match) {
					optionNeu = new Option(dataobj.liste[key],key);
					optionNeu.innerHTML = dataobj.liste[key];
					selfeld.appendChild(optionNeu);
				}
			});
			if (dataobj['darfanlegen'] && dataobj['darfanlegen'] == 1) {
				optionNeu = new Option('* '+dataobj['namegruppe']+' neu anlegen','x');
				optionNeu.innerHTML = '* '+dataobj['namegruppe']+' neu anlegen';
				selfeld.appendChild(optionNeu);
			}
			document.getElementById('gruppentabplus').appendChild(selfeld);
			document.getElementById('gruppenselectselectfeld').focus();
		}
		else {
			document.getElementById('gruppentabplus').innerHTML = 'Es steht keine Auswahl (mehr) zur Verfügung';
		}
	}
};
</script>
</head>

<body>

<form id="sendeform">
	<input type="hidden" name="gruppen" id="gruppenfeld">
</form>

<div id="gruppentab" class="browsersortdiv"></div>
<div id="gruppentabplus"></div>

<script>
	var dataobj = {
		liste		: {
			10			: 'Test',
			20			: 'Familie',
			30			: 'Bekannte',
			40			: 'Stadt',
			50			: 'Land',
			60			: 'Fluss',
			70			: 'Verein',
			90			: 'Organisation'
		},
		vergeben	: [20,40],
		darfaendern	: 1,
		darfanlegen	: 1,
		namegruppe	: 'Gruppe',
		praefixneu	: 'neu'
	};
	gruppenselect_init(dataobj);
</script>

</body>
</html>
 
Hab mal nach kkapsners Rat ein display:block; gesetzt für die Elemente und dann ein Fiddle gemacht: Edit fiddle - JSFiddle

Wenn man den Kasten unten rechts ein wenig breiter macht und dann mit dem Elementen spielt sieht das so aus:
fiddle_ff.jpgfiddle_ie.jpg

In media queries habe ich hier begonnen, mich einzulesen aber ich weiß das auf mein Problem nicht anzuwenden: CSS/Media Queries
 
Zurück
Oben