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

label in table spaltenübergreifend

mikdoe

Moderator
Hi!
HTML:
<!DOCTYPE HTML>
<html>
	<head></head>
	<body>
		<table>
			<tr>
				<label style="cursor: pointer;">
					<td><input type="checkbox" name="test" value="j"></td>
					<td>  </td>
					<td>ein-/ausschalten</td>
				</label>
			</tr>
		</table>
	</body>
</html>

Im IE 9 kann ich auch auf das Wort "ein-/ausschalten" klicken und die checkbox ändert sich.
FF und Opera und vermutlich noch andere verweigern das, bei ihnen funktioniert nur der Klick direkt auf die checkbox.
Ein angenehmer Bug des IE oder machen die anderen Browser das falsch?
Gibt es einen einfachen Workaround?
 
Nach einem TR darf nur ein TH oder TD Element kommen, dein Konstrukt ist ungültig.
Also ein angenehmer Bug im IE, hab ich mir gedacht. Aber deshalb mag ich den IE so gern :)

Frage: Kann ich denn mehrere label-Elemente (in jeder td eines) verwenden, die sich auf die eine checkbox beziehen? Wie sähe die Syntax dafür aus?
 
Frage: Kann ich denn mehrere label-Elemente (in jeder td eines) verwenden, die sich auf die eine checkbox beziehen? Wie sähe die Syntax dafür aus?
z.B. so
HTML:
<table>
	<tr>
		<td>
			<input type="checkbox" id="testID" name="test" value="j">
		</td>
		<td>
			<label for="testID" style="cursor: pointer;">  </label>
		</td>
		<td>
			<label for="testID" style="cursor: pointer;">ein-/ausschalten</label>
		</td>
	</tr>
</table>
und Du kannst natürlich per css allen labels oder einer Klasse den pointer cursor zuweisen, dann brauchen die labels nicht alle ein inline-style bekommen
 
Zuletzt bearbeitet:
Mach' das <label> um die ganze Tabelle... oder gib' der Checkbox eine ID und mach dann in jeder Zelle ein <label for="GEGEBENE_ID">.

Einen Browser nur wegen seinem Verhalten bei invalidem HTML zu mögen... naja...
 
Einen Browser nur wegen seinem Verhalten bei invalidem HTML zu mögen... naja...
Na ja. Ich würde es einmal mehr das Folgen der "Intuition" nennen und das mag ich.
Gibt es - außer der Spezi - einen zwingenden Grund für einen Browser, einen label Tag zwischen <td> und <tr> zu verweigern?
Wüßte jetzt keinen und Regeln zu befolgen nur der Regeln wegen, nur damit man hinterher sagen kann, es ist valide, fand ich schon immer bescheuert.
Was zeichnet einen Browser sonst aus, als die ordentliche und zur Not auch intuitive Anzeige von Seiten? ;)

Ich werde es mit <label for=""> machen, danke dir und scrypter!
 
Wüßte jetzt keinen und Regeln zu befolgen nur der Regeln wegen, nur damit man hinterher sagen kann, es ist valide, fand ich schon immer bescheuert.
Was zeichnet einen Browser sonst aus, als die ordentliche und zur Not auch intuitive Anzeige von Seiten? ;)
Naja, Browserentwickler richten sich i.d.R nach Spezis, demzufolge programmieren sie ihre Progs, so wie sie sind.
Letztendlich sind das nur Programme, die sich selbst an Standards messen lassen können.
Es gibt keine intelligente, selbstlernende Software, die Defizite der User automatisch ausgleicht.
 
Naja, Browserentwickler richten sich i.d.R nach Spezis, demzufolge programmieren sie ihre Progs, so wie sie sind.
Letztendlich sind das nur Programme, die sich selbst an Standards messen lassen können.
Es gibt keine intelligente, selbstlernende Software, die Defizite der User automatisch ausgleicht.
Allgemein stimme ich dir und kkapsner selbstverständlich zu.
Aber dieser Fall im Speziellen zeigt doch, dass Spezis in Einzelfällen auch sagen wir mal die Sache verkomplizieren. Und wenn Browserentwickler dies sehen und dabei quasi intuitiv trotzdem das richtige Ergebnis rauskommt, finde ich das gut.
Ist natürlich fraglich, ob hier bewußt das Richtige rauskommt oder es ein Zufall ist, weil im Browser schlampig programmiert wurde :)
 
Na ja. Ich würde es einmal mehr das Folgen der "Intuition" nennen und das mag ich.
Gibt es - außer der Spezi - einen zwingenden Grund für einen Browser, einen label Tag zwischen <td> und <tr> zu verweigern?
Ja, dort gehören einfach keine andern HTML Elemente hin und von daher ist das ignorieren dieser Elemente der einzige sinnvolle Weg.

Es ist ja auch kein Bug vom IE, sondern seine berüchtige Fehlertoleranz. Egal was du machst, der IE versucht es irgendwie umzusetzen, das führt häufig zu Problemen, da man solche Fehler nur sehr schwer findet.
 
In accepted I accede with you and kkapsner course.
But this case in accurate shows that complicate assembly in some cases alike let's say the thing. And if browser developers see this and it still comes out about allegedly the appropriate result, I anticipate that's good.
course is ambiguous whether this acquaintance comes out appropriate or it's a coincidence, because the browser is programmed sloppy
 
Zurück
Oben