zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > (X)HTML
Seite neu laden Checkboxen nebeneinander in einer Zeile

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 26.02.2016, 13:02
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.03.2015
Beiträge: 56
Parallax befindet sich auf einem aufstrebenden Ast
Standard Checkboxen nebeneinander in einer Zeile

Hallo,

ich möchte Checkboxen, bzw Options in einer Zeile nebeneinander haben.

In jeder Zeile steht noch links eine Beschriftung, welche natürlich unterschiedlich lang ist, deshalb ist die zweite Bedingung, das die Checkboxen in jeder Zeile genau untereinander stehen müssen. Das krieg ich irgendwie nicht hin....

Der Code schaut ca. so aus...

Code:
<div class="zeile">
Beschriftungstext 1
<input type="checkbox" class="checkbox1"/>ja
<input type="checkbox" class="checkbox2"/>nein
</div>

<div class="zeile">
anderer Beschriftungstext2
<input type="checkbox" class="checkbox1"/>ja
<input type="checkbox" class="checkbox2"/>nein
</div>
So steht zwar alles in einer Zeile nebeneinander, nur die Checkboxen der zweiten Zeile sind natürlich weiter rechts, da ja der Beschriftungstext länger ist.

Der CSS Code für die Checkbox enthält nur ein margin:

Code:
.checkbox1
{
margin: 0px 0px 0px 100px;
}

.checkbox2
{
margin: 0px 0px 0px 20px;
}
Wie könnte ich das hinbekommen, das alle Checkboxen gleichmäßig untereinander stehen, auch wenn der Beschriftungstext jeweils ne andere Länge hat..?

Grüße,
Parallax
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 26.02.2016, 13:57
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 10.01.2010
Beiträge: 1.123
MrMurphy ist ein sehr geschätzer MenschMrMurphy ist ein sehr geschätzer MenschMrMurphy ist ein sehr geschätzer Mensch
Standard

Hallo

Zitat:
Wie könnte ich das hinbekommen ...
Zunächst muss der HTML-Quelltext wie in der Spezifikation vorgesehen erstellt werden, damit die einzelnen Elemente überhaupt vom CSS erreicht werden können.

Dann ist aktuell das Flexbox-Modell das Mittel der Wahl.

Ja-/Nein-Antworten rufen direkt nach Radio-Buttons, die kannst du aber ohne Änderungen im CSS durch Checkboxen ersetzen.

Der Quelltext könnte folgendermaßen aussehen:

Code:
<!DOCTYPE html>
<html lang="de">
<head>
   <meta charset="utf-8">
   <title>Formular Radio-Button 01</title>
   <meta name="description" content="HTML5, CSS3">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <!--[if lt IE 9]>
      <script src="http://html5shiv-printshiv.googlecode.com/svn/trunk/html5shiv-printshiv.js"></script>
   <![endif]-->
   <style>

   @media all {
      header, nav, main, aside, footer, section, article, figure, figcaption, audio, video {
         display: block;
      }
      * {
         box-sizing: border-box;
      }
      html {
         font-family: Sans-Serif;
         font-size: 120%;
      }
      body {
         width: 94%;
         margin: 1rem auto;
      }
   }

   /* ==================================================== */
   /* ***Ab hier beginnen die Angaben zur Problemlösung*** */

   /*Spezielle Einstellungen*/
   @media all {
      form div {
         display: flex;
         flex-wrap: wrap;
      }
      form div :nth-child(2n+1) {
         flex-grow: 0;
         flex-shrink: 0;
         flex-basis: 15rem;
      }
      form div :nth-child(2n+2) {
         flex-grow: 1;
         flex-shrink: 1;
         flex-basis: calc(100% - 15rem);
      }
      form div :nth-child(2n+2) :nth-child(2n+3) {
         margin-left: 2rem;
      }
   }

   /* ***       Ende der Angaben zur Problemlösung***       */
   /* ===================================================== */

   </style>
</head>
<body>
   <form>
      <div>
         <label for="frage1">Beschriftungstext:</label>
         <section>
            <input type="radio" id="frage11" name="frage1" value="ja" />
            <label for="frage11">Ja</label>
            <input type="radio" id="frage12" name="frage1" value="nein" />
            <label for="frage12">Nein</label>
         </section>
         <label for="frage2">Anderer Beschriftungstext:</label>
         <section>
            <input type="radio" id="frage21" name="frage2" value="ja" />
            <label for="frage21">Ja</label>
            <input type="radio" id="frage22" name="frage2" value="nein" />
            <label for="frage22">Nein</label>
         </section>
      </div>
   </form>
</body>
</html>
Gruss

MrMurphy

Geändert von MrMurphy (27.02.2016 um 00:47 Uhr)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 26.02.2016, 20:13
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 18.03.2015
Beiträge: 56
Parallax befindet sich auf einem aufstrebenden Ast
Standard

ok, schön dass es eine lösung gibt, allerdings verstehe ich sie nicht so ganz... welche CSS eigenschaft bewirkt den, dass die anordnung untereinander identisch bleibt?
Mit Zitat antworten
  #4 (permalink)  
Alt 26.02.2016, 22:28
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 10.01.2010
Beiträge: 1.123
MrMurphy ist ein sehr geschätzer MenschMrMurphy ist ein sehr geschätzer MenschMrMurphy ist ein sehr geschätzer Mensch
Standard

Hallo

Zitat:
welche CSS eigenschaft bewirkt den, dass die anordnung untereinander identisch bleibt?
Eigentlich gar keine. Ich habe nur eine Lösung für dein aktuelles Problem erstellt.

Das div-Element im form-Element enthält abwechselnd jeweils ein label- und ein section-Element.

Mittels

Code:
      form div {
         display: flex;
         flex-wrap: wrap;
      }
werden die nebeneinander gestellt, können aber in die nächste Zeile umbrechen.

Das label-Element bekommt mittels

Code:
      form div :nth-child(2n+1) {
         flex-grow: 0;
         flex-shrink: 0;
         flex-basis: 15rem;
      }
eine feste Breite von 15rem.

Das section-Element bekommt mittels

Code:
      form div :nth-child(2n+2) {
         flex-grow: 1;
         flex-shrink: 1;
         flex-basis: calc(100% - 15rem);
      }
eine Breite von 100% - 15rem. So haben jeweils ein label- und ein section-Element eine Gesamtbreite von 100% und belegen eine Zeile.

Die label- und input-Elemente innerhalb der section-Elemente sind sogenannte inline-Elemente, die sich deshalb "von selbst" innerhalb einer Zeile anordnen. Dadurch, dass sie jeweils den gleichen Text enthalten stehen sie direkt untereinander.

Mit

Code:
      form div :nth-child(2n+2) :nth-child(2n+3) {
         margin-left: 2rem;
      }
bekommen die Nein-Antworten einen linken Abstand, damit sie sich optisch etwas von den Ja-Antworten entfernen.

Mit unterschiedlichen Texten müsste das CSS noch etwas angepasst werden, aber du benötigst nur ja- und nein-Antworten. Von daher kannst du dir die Arbeit sparen.

Gruss

Murphy

Geändert von MrMurphy (26.02.2016 um 22:42 Uhr)
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Neues Karriereportal (Bitte um Feedback) ThomasE Site- und Layoutcheck 23 02.01.2012 16:44
Pre-Tag mit overflow: auto - Bug? (IE) RomanM CSS 3 26.12.2007 18:21
Checkboxen nebeneinander radon CSS 5 20.11.2006 23:19
Tabelle: Problem mit restlicher Spaltenhöhe im IE MoRpH2k2 (X)HTML 3 18.08.2006 07:44
Warnungen beim Validieren Uschi CSS 2 23.09.2005 19:18


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:51 Uhr.