Forum: Offtopic Frage zu HTML


von Martin M. (ats3788)


Lesenswert?

Hallo

Ich habe da zweit Inputs und einen Button nicht besonderes, formatiere 
es mit CSS und möchte das die beiden Inputs auf der linken Seite und der 
Button rechts davon ist. Wie mache ich das am besten, hier nur der HTML 
Code
1
<div>
2
<div>
3
<input id="station_url" placeholder="Station URL in here ...." size="100" type="text" /><br>
4
<input id="station_name" placeholder="and Station Name here .... " size="100" type="text" />
5
</div>
6
<button id="BuSave" class="button" onClick="InputHandler(this.id)">Store Station</button>
7
</div>

: Bearbeitet durch User
von Andreas H. (andario)


Lesenswert?

Tabelle?

also zB so:
<table style="width:100%">
  <tr>
    <th>Firstname</th>
    <th>Lastname</th>
    <th>Age</th>
  </tr>
  <tr>
    <td>Jill</td>
    <td>Smith</td>
    <td>50</td>
  </tr>
  <tr>
    <td>Eve</td>
    <td>Jackson</td>
    <td>94</td>
  </tr>
</table>

von Dirk K. (merciless)


Lesenswert?

Bitte nicht mit Tabellen formatieren!
Beide Gruppen in jeweils ein Div und
diese dann positionieren. Da gibt es viele
verschiedene Möglichkeiten.

https://wiki.selfhtml.org/wiki/CSS/Eigenschaften/Anzeige/display

merciless

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Martin M. schrieb:
> und möchte das die beiden Inputs auf der linken Seite und der Button
> rechts davon ist.
1
<div>
2
<div style="display:inline;">
3
<input id="station_url" placeholder="Station URL in here ...." size="100" type="text" /><br>
4
<input id="station_name" placeholder="and Station Name here .... " size="100" type="text" />
5
</div>
6
<button id="BuSave" class="button" onClick="InputHandler(this.id)">Store Station</button>
7
</div>

Eigentlich musst du nur das zweite <div> ändern.

: Bearbeitet durch Moderator
von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

<br> sollte ein <br/> werden

Aber wie man das letztendlich formatiert ist Geschmackssache. Da gibts 
viel zu viele Möglichkeiten, alle haben Vor- und Nachteile. Ob nun 
reines CSS oder Tabellen mit CSS... nur absolute Positionierung würde 
ich nicht machen, damit gibts oft Probleme.

von Εrnst B. (ernst)


Lesenswert?

Ben B. schrieb:
> <br> sollte ein <br/> werden

Nö, das war nur in der Totgeburt XHTML so.
Alle anderen HTML-Varianten, incl. das aktuelle HTML5 haben <br>

https://html.spec.whatwg.org/multipage/text-level-semantics.html#the-br-element
https://wiki.selfhtml.org/wiki/Referenz:HTML/br

<br/> funktioniert zwar auch, aber nur weil der Parser fehlertolerant 
ist und das falsche "/" ignoriert.

Und selbst wenn man XHTML verwenden will, wäre es als "<br />" besser, 
weil der HTML-Parser im Internet Explorer eben nicht ganz fehlertolerant 
genug war um das falsche "/" ohne extra-Space zu ignorieren. Echtes 
XHTML konnte der IE sowieso nie, einer der Gründe warum es nie Erfolg 
hatte.

von Martin M. (ats3788)


Lesenswert?

Super lieben Dank
Frank M.

Danke das haut hin.
Liebe Grüße aus Font De Sa Cala, wo das basteln auch im Sommer Spaß 
macht dank Ali Express und Co, hier auf Mallorca geht ohne Paket Dienste 
gar nichts.

von Martin M. (ats3788)


Angehängte Dateien:

Lesenswert?

Hallo
Leider haut das nicht ganz hin wenn der Button größer ist
siehe Anhang. Der Button soll mittig von den beiden Input Feldern sein.

: Bearbeitet durch User
von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Mit Tabelle:
1
<table style="width:800px;">
2
 <tr>
3
  <td style="width:70%;text-align:center;"><input type="text" id="field1" size="100" /></td>
4
  <td rowspan="2" style="width:30%;text-align:center;vertical-align:middle;"><input type="submit" id="button" value="Button" /></td>
5
 </tr>
6
 <tr>
7
  <td style="text-align:center;"><input type="text" id="field2" size="100" /></td>
8
 </tr>
9
</table>

von Dirk K. (merciless)


Lesenswert?

Und so richtig:
1
<div style="width:800px; display:flex; flex-direction:row;">
2
  <div style="width:80%; display:flex; flex-direction:column;">
3
    <input type="text" id="field1" size="100" />
4
    <input type="text" id="field2" size="100" />
5
  </div>
6
  <div style="width:20%; display:flex; justify-content:center; align-items:center;">
7
    <input type="submit" id="button" value="Button" />
8
  </div>
9
</div>

merciless

von Johnny B. (johnnyb)


Lesenswert?

Dirk K. schrieb:
> Und so richtig:

Was soll den daran besser sein? Bildest einfach mit DIV's eine Tabelle 
nach. Da kann man auch gleich direkt eine normale Tabelle nehmen.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Johnny B. schrieb:
> Dirk K. schrieb:
> Und so richtig:
>
> Was soll den daran besser sein? Bildest einfach mit DIV's eine Tabelle
> nach. Da kann man auch gleich direkt eine normale Tabelle nehmen.

Da streiten sich die Geister. Manche behaupten, dass Tabellen nicht so 
performant wären, andere sagen, dass DIVs fürs Responsive-Layout per CSS 
einfach besser geeignet seien.

Einfach mal nach "html Tabelle vs DIV" googlen... gibt jede Menge 
Treffer.... und genauso viele Argumente.

P.S.
Ich perönlich bevorzuge auch Tabellen, da diese für mich wesentlich 
intuitiver als die DIVs sind. Eine Tabelle schreibt man einfach hin, 
eine DIV-Struktur muss ich immer erst ausprobieren, bis sie so 
funktioniert, wie ich das möchte. Das war auch bei diesem 
Thread-Beispiel so.

Da man CSS auch auf Tabellen anwenden kann und diese damit durchaus 
"responsive" werden und ich außerdem bisher keinen 
Geschwindigkeitsunterschied beim Rendern von DIVs und TABLEs feststellen 
konnte, verwende ich lieber Tabellen. Das ist aber wohl eher 
Geschmackssache.

: Bearbeitet durch Moderator
von Johnny B. (johnnyb)


Lesenswert?

Frank M. schrieb:
> Responsive-Layout

Ja wenn's responsive sein müsste und der Button bei Bedarf auf die 
nächste Zeile umgebrochen werden müsse, dann sieht die Sache natürlich 
anders aus und dann würde ich auch eher keine Tabelle verwenden. Aber 
dies war ja keine Anforderung bzw. wurde sogar verlangt, dass der Button 
rechts neben den Eingabefeldern sein muss.

von Dirk K. (merciless)


Lesenswert?

Johnny B. schrieb:
> Dirk K. schrieb:
>> Und so richtig:
>
> Was soll den daran besser sein? Bildest einfach mit DIV's eine Tabelle
> nach. Da kann man auch gleich direkt eine normale Tabelle nehmen.
https://wiki.selfhtml.org/wiki/HTML/Tutorials/responsive_Webdesign/Layoutkonzepte#Tabellen

Ein Elektriker verlegt die Kabel in einem Haus auch nicht mehr
so wie vor 50 Jahren, die Anforderungen an Sicherheit und
Wartbarkeit haben sich geändert. So ähnlich ist es mit dem
HTML-Design: Wenn ich das Layout responsive machen will,
brauch ich nur das CSS flexibel anlegen, und die Darstellung
kann komplett verändert werden. Die HTML-Tabelle zeigt die
Daten immer in Spalten und Zeilen an.

merciless

von Martin M. (ats3788)


Lesenswert?

Ich poste mal wie ich es gelöst habe mit <div>
ist zwar ein anderes Projekt wie am Anfang aber
aber im Grunde passt es zu der Frage.
Danke für eure Antworten.
1
<!DOCTYPE html>
2
<html lang="en">
3
4
    <style>
5
6
    #ColorRgbA { 
7
       background-color: #F2F3F4;
8
       top: 10px;
9
       position: relative;
10
11
12
    }
13
    #ColorRgb {
14
      background-color: #F2F3F4;
15
      top: 10px;
16
        position: relative;
17
18
    }
19
    
20
    #LabelHUE {
21
        width: 150px; 
22
    display: inline-block;
23
    top: 10px;
24
        position: relative;
25
26
27
}
28
    
29
    #LabelRGB {
30
    width: 150px; 
31
    display: inline-block;
32
    top: 10px;
33
        position: relative;
34
35
      
36
  }
37
  
38
  #container {
39
  width: 400px;
40
  background-color:#a1ff21;
41
}
42
    .leftdiv 
43
         {
44
    padding: 20px;
45
    margin: 15px 0px 15px 15px;
46
    border-radius: 10px;
47
    float: left;
48
    height: 130px;
49
    border: solid gray;
50
    vertical-align: middle;
51
  }
52
  .rightdiv 
53
         {
54
    padding: 20px;
55
    margin: 15px 15px 15px 0px;
56
    border-radius: 10px;
57
    float: left;
58
    background-color: #a1ff21;
59
    height: 130px;
60
    width: 300px;
61
    border: solid gray;
62
63
64
    
65
    
66
  }
67
         
68
    #SetColor
69
         {
70
    border-radius: 10px;
71
    border: solid black;
72
    background-color: #8AB8E6;
73
    height: 115px;
74
    width: 250px;
75
    top: 10px;
76
        position: relative;
77
  }
78
         
79
80
81
    </style>
82
83
  <head>
84
    <meta charset="utf-8">
85
    <title></title>
86
     <script src="iro.js" charset="utf-8"></script>
87
    
88
  </head>
89
  <body>
90
    <div id="demoWheel"></div>
91
  <div id="container"  class="leftdiv">
92
<p>  <label id="LabelHUE">Color Value RGBa:</label>
93
<input id="ColorRgbA" placeholder="#Color Value (RGBa)"  type="text" /></p>
94
<p>  <label id="LabelRGB">Color Value RGB hex:</label>
95
<input id="ColorRgb" placeholder="#Color Value (RGB hex)"  type="text" /></p>
96
  </div>
97
        <div class="rightdiv"> 
98
     <button id="SetColor" type="button" onclick="SendColor()">Click Me!</button>
99
      </div>
100
  
101
  <script src="demo.js" charset="utf-8"></script>
102
  </body>
103
  </html>

von Unbekannt U. (Gast)


Lesenswert?

Andreas H. schrieb:
> Tabelle?

Ben B. schrieb:
> Mit Tabelle:

Frank M. schrieb:
> Ich perönlich bevorzuge auch Tabellen

Johnny B. schrieb:
> normale Tabelle nehmen


HTML-Tabellen für's Layout? Im Jahr 2020? Wirklich?

Eine richtige Lösung wurde oben schon gepostet, Flexbox. Das ist 
Standard seit fast 10 Jahren. Alternativ wäre noch Grid, das ist neuer.

Wer heute für ein Layout noch mit HTML-Tabellen anfängt, sollte sich mal 
eine aktuelle Lektüre zum Web-Layout gönnen. Gibt's auch gedruckt auf 
Papier, für die Tippgeber hier die so um die 50 Jahre alt sein müssen, 
bei diesen Vorschlägen.

von Unbekannt U. (Gast)


Lesenswert?

Achso, mein Vorschlag:
1
    <div style="display: flex;">
2
      <div style="display: flex; flex-direction: column; flex-grow: 1;">
3
        <input id="station_url" placeholder="Station URL in here ...." type="text" />
4
        <input id="station_name" placeholder="and Station Name here .... " type="text" />
5
      </div>
6
      <button id="BuSave" class="button" onClick="InputHandler(this.id)">
7
        Store Station
8
      </button>
9
    </div>

(Aus beiden Text-Inputs das unsägliche size-Attribut entfernt.)

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Möchte vielleicht noch jemand einen JavaScript-Vorschlag einreichen?

von Bernd H. (geeky)


Lesenswert?

Unbekannt U. schrieb:
> Eine richtige Lösung wurde oben schon gepostet, Flexbox. Das ist
> Standard seit fast 10 Jahren. Alternativ wäre noch Grid, das ist neuer.

Man kann nur hoffen, dass der olle IE langsam mal wirklich beerdigt 
wird.
(Gefühlt wird in der Industrie noch eher langsam auf Edge oder Firefox 
ESR migriert)
Der IE hat bei flexbox/grid natürlich ohne Ende Bugs, die einen in den 
Wahnsinn treiben können ;D

von Εrnst B. (ernst)


Angehängte Dateien:

Lesenswert?

Martin M. schrieb:
> <input id="ColorRgb" placeholder="#Color Value (RGB hex)"

Auf allen Browsern außer dem Internet Explorer geht's auch schöner:

https://wiki.selfhtml.org/wiki/HTML/Formulare/input/Farbw%C3%A4hler

und der IE macht aus dem type="color" stillschweigend ein type="text", 
funktioniert also auch, wenn auch dann unschön.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.