Bootstrap 3 Panel Header mit Tasten falsche Position


117

Ich verwende Bootstrap 3 und möchte einige Schaltflächen in der Bedienfeldüberschrift oben rechts hinzufügen. Wenn Sie versuchen, sie hinzuzufügen, werden sie unterhalb der Titelgrundlinie angezeigt.

Code: http://bootply.com/82631

Was ist das fehlende CSS, das ich entweder zum Titel, zur Bedienfeldüberschrift oder zu den Schaltflächen hinzufügen sollte?

Antworten:


175

Ich würde damit beginnen clearfix, der <div>with- panel-headingKlasse eine Klasse hinzuzufügen . Fügen Sie dann beide panel-titleund pull-leftzum H4Tag hinzu. Fügen Sie dann padding-topnach Bedarf hinzu.

Hier ist der vollständige Code:

<div class="panel panel-default">
    <div class="panel-heading clearfix">
      <h4 class="panel-title pull-left" style="padding-top: 7.5px;">Panel header</h4>
      <div class="btn-group pull-right">
        <a href="#" class="btn btn-default btn-sm">## Lock</a>
        <a href="#" class="btn btn-default btn-sm">## Delete</a>
        <a href="#" class="btn btn-default btn-sm">## Move</a>
      </div>
    </div>
    ...
</div>

http://bootply.com/98827


Dies funktioniert, das einzige Problem ist, dass der Panel-Header an die Spitze des Div gezogen wird und die BTN-Gruppe vertikal ausgerichtet wird
Nuno Furtado

9
Oder entfernen Sie einfach die .panel-titleaus <h4>und Sie brauchen die Polsterung nicht.
Caw

153

Ich bin hier etwas spät dran, aber die einfache Antwort ist, den H4 NACH dem Button Div zu bewegen. Dies ist ein häufiges Problem beim Floating. Lassen Sie Ihre Floats immer VOR dem Rest des Inhalts definieren, da sonst das Problem eines zusätzlichen Zeilenumbruchs auftritt.

<div class="panel-heading">
    <div class="btn-group pull-right">
        <a href="#" class="btn btn-default btn-sm">## Lock</a>
        <a href="#" class="btn btn-default btn-sm">## Delete</a>
        <a href="#" class="btn btn-default btn-sm">## Move</a>
    </div>
    <h4>Panel header</h4>
</div>

Das Problem hierbei ist, dass, wenn Ihre Floats nach anderen Elementen definiert sind, die Oberseite des Floats an der letzten Zeilenposition des Elements unmittelbar davor beginnt. Wenn also das vorherige Element in Zeile 3 eingeschlossen wird, beginnt Ihr Float auch in Zeile 3.

Wenn Sie den Float an den oberen Rand der Liste verschieben, wird das Problem behoben, da keine vorherigen Elemente vorhanden sind, um ihn nach unten zu drücken, und alles, was nach dem Float in der obersten Zeile gerendert wird (vorausgesetzt, in der Zeile ist Platz für alle Elemente).

Beispiel für die richtige und falsche Reihenfolge und die Auswirkungen: http://www.bootply.com/HkDlNIKv9g


Wenn Sie die Größe h4 nicht mögen, verwenden Sie <h4> <small> Panel-Header </ small> </ h4>
Luciano Marqueto

Ich kann nicht herausfinden, warum meine Schaltfläche nicht in die Bedienfeldüberschrift passt. Die Taste wird durch die Polsterung der Bedienfeldüberschrift nach unten gedrückt und erhöht die Höhe der Bedienfeldüberschrift nicht. Was mache ich falsch? (Bearbeiten: anscheinend war das, weil eine Klasse zu einem h4 hinzugefügt wurde ... aber jetzt ist die Überschrift noch zu groß.)
Nate

1
Ich musste der Panel-Überschrift Clearfix hinzufügen und die Polsterung wie in der obigen Antwort hinzufügen. Können Sie ein funktionierendes Beispiel / eine Demo erstellen?
Nate

2
Nate, hier ist ein Beispiel für die richtige oder falsche Reihenfolge. bootply.com/HkDlNIKv9g
getsaf

1
Ich denke, das sollte die Klasse btn-sm mit btn-xs geändert werden. Es passt besser
IlGala

40

Sie sollten einen "Clearfix" anwenden, um das übergeordnete Element zu löschen. Als nächstes erstreckt sich das h4 für den Header-Titel über den gesamten Header. Nachdem Sie Clearfix angewendet haben, wird das untergeordnete Element nach unten gedrückt, wodurch das Header-Div eine größere Höhe hat.

Hier ist ein Fix, ersetzen Sie ihn einfach durch Ihren Code.

  <div class="panel-heading clearfix">
     <b>Panel header</b>
       <div class="btn-group pull-right">
        <a href="#" class="btn btn-default btn-sm">## Lock</a>
        <a href="#" class="btn btn-default btn-sm">## Delete</a>
        <a href="#" class="btn btn-default btn-sm">## Move</a>
      </div>
   </div>

Bearbeitet am 22.12.2015 - .clearfix zur Überschrift div hinzugefügt


3
sollte funktionieren, wenn Sie die Clearfix-Klasse zur Panel-Überschrift hinzufügen, anstatt ein weiteres leeres div
hinzuzufügen

10

Ich habe die Schaltflächengruppe in den Titel eingefügt und dann unten einen Clearfix hinzugefügt.

<div class="panel-heading">
  <h4 class="panel-title">
    Panel header
    <div class="btn-group pull-right">
      <a href="#" class="btn btn-default btn-sm">## Lock</a>
      <a href="#" class="btn btn-default btn-sm">## Delete</a>
      <a href="#" class="btn btn-default btn-sm">## Move</a>
    </div>
  </h4>
  <div class="clearfix"></div>
</div>

1
eleganter: <div class = "panel-Heading Clearfix">;)
Marwen Trabelsi

8

Versuchen Sie, das btn-groupInnere H4so zu platzieren.

<div class="panel-heading">
    <h4>Panel header
    <span class="btn-group pull-right">
        <a href="#" class="btn btn-default btn-sm">## Lock</a>
        <a href="#" class="btn btn-default btn-sm">## Delete</a>
        <a href="#" class="btn btn-default btn-sm">## Move</a>
    </span>
    </h4>
</div>

http://bootply.com/lpXoMPup2d


Nein, es ist keine "gute Praxis", aber es hat die ursprüngliche Frage beantwortet. Ich aktualisiere die Antwort gemäß den Best Practices.
Zim

6

Du bist ein Teil richtig. mit <b>title</b>ihm sieht gut aus , aber ich würde gerne verwenden <h4>.

Ich habe gesetzt <h4 style="display: inline;">und es scheint zu funktionieren.

Jetzt muss ich nur noch eine vertikale Ausrichtung hinzufügen.


1
inline-blockist besser.
Dede

6

In diesem Fall sollten Sie .clearfixam Ende des Containers schwebende Elemente hinzufügen .

<div class="panel-heading">
    <h4>Panel header</h4>
    <div class="btn-group pull-right">
        <a href="#" class="btn btn-default btn-sm">## Lock</a>
        <a href="#" class="btn btn-default btn-sm">## Delete</a>
        <a href="#" class="btn btn-default btn-sm">## Move</a>
    </div>
    <span class="clearfix"></span>
</div>

http://www.bootply.com/NCXkOtIkD6


1

Ich habe festgestellt, dass die Verwendung einer zusätzlichen Klasse in der .panel-Überschrift hilfreich ist.

<div class="panel-heading contains-buttons">
   <h3 class="panel-title">Panel Title</h3>
   <a class="btn btn-sm btn-success pull-right" href="something.html"><i class="fa fa-plus"></i> Create</a>
</div>

Und dann diesen weniger Code verwenden:

.panel-heading.contains-buttons {
    .clearfix;
    .panel-title {
        .pull-left;
        padding-top:5px;
    }
    .btn {
        .pull-right;
    }
}

0

Das h4Element wird als Block angezeigt. Fügen Sie einen Rand hinzu und Sie werden sehen, was los ist. Wenn Sie etwas rechts davon schweben lassen möchten, haben Sie eine Reihe von Optionen:

  1. Legen Sie die schwimmenden Gegenstände vor dem Blockelement (h4).
  2. Schweben Sie auch das h4-Element.
  3. Zeigen Sie das h4-Element inline an.

In beiden Fällen sollten Sie die clearfixKlasse zum Containerelement hinzufügen , um eine korrekte Auffüllung Ihrer Schaltflächen zu erhalten.

Möglicherweise möchten Sie die panel-titleKlasse auch dem h4-Element hinzufügen oder die Auffüllung anpassen.


0

oder dieses? Durch Verwendung der Zeilenklasse

  <div class="row"> 
  <div class="  col-lg-2  col-md-2 col-sm-2 col-xs-2">
     <h4>Panel header</h4>
  </div>
 <div class="  col-lg-10  col-md-10 col-sm-10 col-xs-10 ">
    <div class="btn-group  pull-right">
       <a href="#" class="btn btn-default btn-sm">## Lock</a>
        <a href="#" class="btn btn-default btn-sm">## Delete</a>
        <a href="#" class="btn btn-default btn-sm">## Move</a>
    </div>
     </div>
  </div>
</div>
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.