• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

[HTML / CSS] Wie dieses Formular erstellen?

Cyperfriend

Der ohne Avatar

Registriert
14 Juli 2013
Beiträge
1.123
Edit: Da noch keine Antwort kam editiere ich den Beitrag und den dazugehörigen Quellcode. Das Problem der Ausrichtung habe ich behoben.
Ich habe folgendes Formular mit klassischen Tabellen-Elementen erstellt. Sieht soweit ganz gut aus:
Anhang anzeigen 25511

Nun will ich diese Tabelle aber erstellen OHNE das ich dabei das klassische HTML-Tabellenelement verwende. Wie kann ich das erreichen?
Bislang sieht das Ergebnis so aus:
Anhang anzeigen 25512
Man sieht jetzt, was fehlt:
1) Tabelle hat zwischen den Zeilen einen doppelt so dicken Strich wie Außen.
2) Kein Strich zwischen den Zellen
3) Anordnung nebeneinander funktioniert nicht. (Hier kann keine allgemeine Regel vorgegeben werden, da ich später auch Zeilen habe, wo wirklich nur ein <label> und ein <inpput>-Feld rein kommen, da das <input>-, bzw. <select>Feld zu viel Platz benötigen wird.)
4) Ich will einen automatischen Farbwechsel zwischen den Zeilen (zwei Farben). Es folgen noch weitere <fieldset>-Elemente und ich will, dass immer mit der gleichen Farbe begonnen wird.

HTML:
[src=html4strict]
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Formulare</title>
<link rel="stylesheet" type="text/css" href="formulare.css">
</head>

<body>

<!-- Anfang Formular -->
<div>
<form action="" name="">
<!-- Anfang Hardware -->
<fieldset>
<legend>Hardware</legend>
<p>
<label for="ComputerHersteller">Hersteller</label>
<input type="text" name="ComputerHersteller" id="ComputerHersteller" style="float:left;">

<label for="ComputerModell">Modell</label>
<input type="text" name="ComputerModell" id="ComputerModell">
</p>

<p>
<label for="Grafikkarte">Grafikkarte</label>
<input type="text" name="Grafikkarte" id="Grafikkarte" style="float:left;">

<label for="Soundkarte">Soundkarte</label>
<input type="text" name="Soundkarte" id="Soundkarte">
</p>
</fieldset>
<!-- Ende Hardware -->

<!-- Anfang Speichern -->
<fieldset>
<p>
<input type="submit" name="speichern" value="Speichern">
</p>
</fieldset>
<!-- Ende Speichern -->
</form>
</div>
<!-- Ende Formular -->

</body>
</html>
[/src]

CSS:
[src=css]
@charset "utf-8";
/* CSS Document */

/* Grundeinstellungen */
* {
margin:0;
padding:0;
background-color:e9e9e9;
font-family:Arial;
font-size:12px;
color:#000;
}

/* Formulareinstellungen */
form {
background-color:#e9e9e9;
width:550px;
margin-left:auto;
margin-right:auto;
}

/* Fieldset-Überschrift */
legend {
font-weight:bold;
}

/* Absatz */
p {
border:1px solid #000;
border-collapse:collapse;
}

/* */
label {
margin-left:15px;
width:110px;
display:block;
float:left;
}
[/src]

Wäre super, wenn ihr mir weiterhelfen könntet.
 
Zuletzt bearbeitet:

sars

Agent Provocateur

Registriert
15 Juli 2013
Beiträge
54
Wie weit soll deine Browserünterstützung denn reichen? Der Internet Explorer ab Version 8 unterstützt z.B. die display-Eigenschaft table – Damit wäre die meisten deiner Probleme sicher lösbar. Ein anderer Ansatz könnte auch eine Kombination aus floats und negativen margin-Werten sein.
 
Zuletzt bearbeitet:

accC

gesperrt

Registriert
14 Juli 2013
Beiträge
5.250
<p> sind nicht für solche Zwecke gedacht. p kennzeichnet einen Paragraphen/ Textabschnitt, verwende stattdessen <div>

Zu deinem Problem: Du musst die Weite (width) auf etwas weniger als die halbe zur Verfügung stehende Länge (width) setzen und float left bzw right hinzufügen. (So kannst du Spalten erstellen.)

Den automatischen Farbwechsel bekommst du über das Pseudoattribut nth-child(2n+1) hin. Such dazu einfach mal bei google nach einer ausführlichen Erklärung.
 

Cyperfriend

Der ohne Avatar

Registriert
14 Juli 2013
Beiträge
1.123
  • Thread Starter Thread Starter
  • #4
<p> sind nicht für solche Zwecke gedacht. p kennzeichnet einen Paragraphen/ Textabschnitt, verwende stattdessen <div>
Geändert

Zu deinem Problem: Du musst die Weite (width) auf etwas weniger als die halbe zur Verfügung stehende Länge (width) setzen und float left bzw right hinzufügen. (So kannst du Spalten erstellen.)
Habe ich nicht kapiert, aber ich habe ja eine Lösung gefunden, Siehe mein editierter Beitrag oben.

Den automatischen Farbwechsel bekommst du über das Pseudoattribut nth-child(2n+1) hin. Such dazu einfach mal bei google nach einer ausführlichen Erklärung.
Danke, hat bestens funktioniert.

Übrig bleibt jetzt nur noch der doppelte Tabellenrahmen, den ich einfach nicht weg bekomme. Das mit den Linien zwischen den Zellen muss nicht mehr sein. Das Formular sieht auch so gut aus. Bestenfalls zwischen dem Eingabefeld von Hersteller und dem Label Modell, bzw. entsprechend dem Eingabefeld von Grafikkarte und dem Label Soundkarte könnte eine optische Trennung gut passen, wobei ich mir da auch nicht so sicher bin.

Ich poste den bislang angepassten Code nicht, da es im Prinzip nur eine CSS-Ergänzung ist, die mit der übrig gebliebenen Problematik nichts zu tun hat. Ich poste aber am Ende das gesamte Formular als Tutorial, da sich genau solche Formulare als Beispiel nur schwer / nicht im Internet finden.
 

accC

gesperrt

Registriert
14 Juli 2013
Beiträge
5.250
Das mit dem doppelt so dicken Rahmen kommt dadurch zustande, dass du 2 div hast, die beide je oben und unten einen Rahmen haben.
Das heißt, der untere Rahmen des ersten div und der obere Rahmen des zweiten div liegen unmittelbar übereinander und es erscheint, als wäre es ein dicker Rahmen.
Das Problem kannst du lösen indem du mit den Pseudoattributen not und last arbeitest:

[src=css]div.bordered {
border: 1px solid #000;
}

div.bordered:not(last-child){
border-bottom: none!important;
}[/src]


[src=html5]<div class="bordered">Zeile 1</div>
<div class="bordered">Zeile 2</div>
<div class="bordered">Zeile 3</div>
<div class="bordered">Zeile 4</div>[/src]


Zeile 1 hat überall außer bottom einen Rahmen (oben, links, rechts)
Zeile 2 hat überall außer bottom einen Rahmen (oben, links, rechts)
Zeile 3 hat überall außer bottom einen Rahmen (oben, links, rechts)
Zeile 4 hat einen Rahmen (oben, unten, links, rechts)

Dadurch liegt überall nur ein Rahmen.
 

Cyperfriend

Der ohne Avatar

Registriert
14 Juli 2013
Beiträge
1.123
  • Thread Starter Thread Starter
  • #6
Geht das auch ohne Klassen / IDs zu verwenden? Würde das HTML-Grundgerüst gerne so sauber wie möglich halten.
 

gelöschter Benutzer

Guest

G
Das mit dem doppelt so breiten Strich lässt sich entweder über ein negatives margin mit derselben Größe wie der Außenlinie oder durch das Weglassen der Außenlinie unten und einem last-child { border-bottom }.

EDIT:
Geht das auch ohne Klassen / IDs zu verwenden? Würde das HTML-Grundgerüst gerne so sauber wie möglich halten.
Ja, einfach weglassen. Dann musst du aber irgendwo außenrum einen eindeutigen Selektor finden. Also z.B. header > fieldset > div
 

accC

gesperrt

Registriert
14 Juli 2013
Beiträge
5.250
Ja, es geht auch ohne. Ich wollte es hier nur eindeutig machen. ;)
 
Oben