Satırları birleştiren önyükleme (satır aralığı)


128

Twitter Bootstrap'ı test ediyorum ve satırlarla temel yapı iskelesine takılı kaldım . Dokümantasyon sayısını defalarca gözden geçirdim ve temelde sütunları bir sütun içine yerleştirebileceğiniz iç içe geçmiş sütunları görebiliyorum, ancak satırları bir araya getirme ve birleştirilmemiş satırların yanındaki sütunla hizalandırma yeteneğini bulamıyorum.

Aşağıdaki resim, neyi başarmak istediğimi göstermelidir.

satır aralığı düzeni örneği

Karşılaştığım tek geçici çözüm tabloları kullanmak, ancak bu fikirden hoşlanmıyorum çünkü benim görüşüm, yanıt verebilirliğin tabloların kullanımıyla çalışmayacağıdır.

Buna zarif bir çözümü olan var mı? Yaptığım web düzeninin çoğu iyi düzeyde esnekliğe ihtiyaç duyacak, bu yüzden burada yararlı bir şey bulabilirsem harika olacak.

Yanıtlar:


99

Div'ler varsayılan olarak dikey olarak yığınlanır, bu nedenle bir sütun içindeki "satırların" özel olarak işlenmesine gerek yoktur.

div {
  height:50px;
}
.short-div {
  height:25px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />

<div class="container">
  <h1>Responsive Bootstrap</h1>
  <div class="row">
    <div class="col-lg-5 col-md-5 col-sm-5 col-xs-5" style="background-color:red;">Span 5</div>
    <div class="col-lg-3 col-md-3 col-sm-3 col-xs-3" style="background-color:blue">Span 3</div>
    <div class="col-lg-2 col-md-2 col-sm-3 col-xs-2" style="padding:0px">
      <div class="short-div" style="background-color:green">Span 2</div>
      <div class="short-div" style="background-color:purple">Span 2</div>
    </div>
    <div class="col-lg-2 col-md-2 col-sm-3 col-xs-2" style="background-color:yellow">Span 2</div>
  </div>
</div>
<div class="container-fluid">
  <div class="row-fluid">
    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
      <div class="short-div" style="background-color:#999">Span 6</div>
      <div class="short-div">Span 6</div>
    </div>
    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6" style="background-color:#ccc">Span 6</div>
  </div>
</div>

İşte keman .


2
Çok teşekkürler. Ben de bunu arıyordum! Bootstrap belgelerinin, yaklaşım temelde aynı olduğu için iç içe yerleştirme sütunlarının altında ek olarak bahsetmesini diliyorum.
Seong Lee

1
örneğinizde 1row=25px, tanımlarsınız 2row=50px. yayılmış div'in tüm satır kadar yüksek olmasını sağlayabilir misiniz? eklemeyi denedim .row{height:100%;}ama gitmedi.
Tomer W

Evet, @carter orijinal örnek bootstrap 3 ile uyumlu değildi; Düzelttim.
Paul Keister

1
Örnek, ikinci satırda tuhaf görünen oluklara sahiptir.
Connie DeCinko

84

Önyükleme sütun iç içe geçirmeyi kullanmalısınız.

Bkz Bootstrap 3 veya Bootstrap 4 :

<div class="row">
    <div class="col-md-5">Span 5</div>
    <div class="col-md-3">Span 3<br />second line</div>
    <div class="col-md-2">
        <div class="row">
            <div class="col-md-12">Span 2</div>
        </div>
        <div class="row">
            <div class="col-md-12">Span 2</div>
        </div>
    </div>
    <div class="col-md-2">Span 2</div>
</div>
<div class="row">
    <div class="col-md-6">
        <div class="row">
            <div class="col-md-12">Span 6</div>
            <div class="col-md-12">Span 6</div>
        </div>
    </div>
    <div class="col-md-6">Span 6</div>
</div>

http://jsfiddle.net/DRanJ/125/

(Fiddle ekranında, sonucu görmek için test ekranınızı büyütün çünkü colmd - * kullanıyorum, ardından duyarlı yığın sütunları)

Not : Ben emin BS2 izin verdiğini duyuyorum kolonlar iç içe , ama Paul Keister ait yanıtında, iç içe sütunlar kullanılmaz. Onu kullanmalı ve bootstrap iyi işlerken css'yi yeniden icat etmekten kaçınmalısınız.

Sütun yüksekliği otomatiktir, ikinci bir satır eklerseniz (benim örneğimde yaptığım gibi), sütun yüksekliği kendini uyarlar.


10
Bu kabul edilen cevap olmalı çünkü kutudan çıktığı gibi Bootstrap ile çalışıyor ve herhangi bir CSS ayarlaması gerektirmiyor
cheenbabes

Kabul edilen cevap daha okunabilir; bir kod parçacığı ve JSfiddle'a bir bağlantı içerir ve IMHO Paul Keister'in örnekleri, Alcalyn'in örneklerinden daha açıktır. Bu yüzden Paul Keister'in en azından Alcalyn'in cevabı iyileştirilene kadar kabul edilen cevap olarak kalması gerektiğini düşünüyorum.
naXa

1
@Alcalyn tarayıcımda (Chrome) cevabınızdaki bağlantılı keman beklenen sonucu vermiyor (sorudaki resme bakın). Gerçek sonuç, bir sütunda hizalanmış tüm div'lerdir.
naXa

1
Tüm hizalanmış aralıklara sahip tek bir sütun görürseniz bunun nedeni -md-duyarlı kuraldır. Beklenen sonucu görmek için ekranınızı büyütmelisiniz. Daha küçük ekranlarda sütun olarak görüntüsü açıklıklı gerekiyorsa, yerine -md-göre -sm-ya -xs-. Bu bir kesme noktası sorusudur (Bkz. Bootstrapdocs.com/v3.0.3/docs/css/#grid ).
Alcalyn

12

Not: Bu Bootstrap 2 içindi (soru sorulduğunda geçerlidir).

Bunu, row-fluidmevcut bir satırın içinde değişken (yüzde) tabanlı bir satır oluşturmak için kullanarak gerçekleştirebilirsiniz block.

<div class="row">
   <div class="span5">span5</div>
   <div class="span3">span3</div>
   <div class="span2">
      <div class="row-fluid">
         <div class="span12">span2</div>
         <div class="span12">span2</div>
      </div>
   </div>
   <div class="span2">span2</div>
</div>
<div class="row">
   <div class="span6">
      <div class="row-fluid">
         <div class="span12">span6</div>
         <div class="span12">span6</div>
      </div>
   </div>
   <div class="span6">span6</div>
</div>

İşte bir JSFiddle örneği .

İlkinden row-fluidsonraki aralıkların içinde görünen (veya görünmeyen) garip bir sol kenar boşluğu olduğunu fark ettim . Bu, küçük bir CSS ayarlamasıyla düzeltilebilir (ilk alt öğeye uygulanan CSS'nin aynısı, ilk alt öğeden geçenlere genişletilir):

.row-fluid [class*="span"] {
    margin-left: 0;
}

Çabanız için teşekkürler, ancak bir satırın bunu başarmak için seçtiğim cevabımın önerdiği gibi satır sıvısı kullanması gerekmiyor gibi görünüyor. Yine de gerçekten minnettarım!
Seong Lee

1
Çok doğru, ancak row-fluidiç sıraları alt bölümlere ayırmanın zamanı geldiğinde unutmayın .
pickypg

7

Bunu kontrol et. umarım tam size yardımcı olur.

http://jsfiddle.net/j6amM/

.row-fix { margin-bottom:20px;}

.row-fix > [class*="span"]{ height:100px; background:#f1f1f1;}

.row-fix .two-col{ background:none;}

.two-col > [class*="col"]{ height:40px; background:#ccc;}

.two-col > .col1{margin-bottom:20px;}

1

Paul'ün cevabı, önyükleme amacını bozuyor gibi görünüyor; görüntü alanına / ekran boyutuna duyarlı olma.

Satırları ve sütunları iç içe yerleştirerek aynı sonucu elde edebilir ve yanıt verebilirliği koruyabilirsiniz.

İşte bu soruna güncel bir yanıt;

<div class="container-fluid">
  <h1>  Responsive Nested Bootstrap </h1> 
  <div class="row">
    <div class="col-md-5" style="background-color:red;">Span 5</div>
    <div class="col-md-3" style="background-color:blue;">Span 3</div>
    <div class="col-md-2">
      <div class="row">
        <div class="container" style="background-color:green;">Span 2</div>
      </div>
      <div class="row">
        <div class="container" style="background-color:purple;">Span 2</div>
      </div>
    </div>
    <div class="col-md-2" style="background-color:yellow;">Span 2</div>
  </div>
  
  <div class="row">
    <div class="col-md-6">
      <div class="row">
        <div class="container" style="background-color:yellow;">Span 6</div>
      </div>
      <div class="row">
        <div class="container" style="background-color:green;">Span 6</div>
      </div>
    </div>
    <div class="col-md-6" style="background-color:red;">Span 6</div>
  </div>
</div>

Şunları yapabilirsiniz buraya codepen görüntüleyin.


0

div {
  height:50px;
}
.short-div {
  height:25px;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />

<div class="container">
  <h1>Responsive Bootstrap</h1>
  <div class="row">
    <div class="col-lg-5 col-md-5 col-sm-5 col-xs-5" style="background-color:red;">Span 5</div>
    <div class="col-lg-3 col-md-3 col-sm-3 col-xs-3" style="background-color:blue">Span 3</div>
    <div class="col-lg-2 col-md-2 col-sm-3 col-xs-2" style="padding:0px">
      <div class="short-div" style="background-color:green">Span 2</div>
      <div class="short-div" style="background-color:purple">Span 2</div>
    </div>
    <div class="col-lg-2 col-md-2 col-sm-3 col-xs-2" style="background-color:yellow">Span 2</div>
  </div>
</div>
<div class="container-fluid">
  <div class="row-fluid">
    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
      <div class="short-div" style="background-color:#999">Span 6</div>
      <div class="short-div">Span 6</div>
    </div>
    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6" style="background-color:#ccc">Span 6</div>
  </div>
</div>


Bu benim için <div class = "col-sm-2"> <div class = "col-lg-4 col-md-4 col-sm-4 col-xs-4" style = "background- ile çalışmıyor color: yellow; "> <input type =" file "id =" imgInp "name =" img "accept =". png, .jpg, .jpeg "> <! - <input type =" text "src =" "class =" form-control "id =" imgName "size =" 40 "> </input> -> <img id =" img-upload "src =" "alt =" Transporter "width =" 300% " yükseklik = "50%" class = "rounded-circle" /> </div> </div> </div>
SUDIP SINGH

2
Lütfen kodunuzun etrafına açıklama ekleyin. Böylece OP ve gelecekteki okuyucu cevabınızı kolayca anlayabilir.
Sangam Belose
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.