Jak usunąć przestrzeń rynny tylko dla określonego div - bootstrap

Domyślny system siatki Bootstrap wykorzystuje 12 kolumn z każdym przęsłem o rynnie 30px, jak poniżej. rynny są białą przestrzenią między kolumnami. Szerokość rynny wydaje się wynosić między 20px - 30px. Załóżmy, że tutaj jest 30px.

Tutaj wpisz opis obrazka

Chcę usunąć przestrzeń rynny dla określonego div, tak aby nie było przestrzeni rynny w rzędzie. Każde przęsło będzie obok siebie bez rynny.

Problem polega na tym, że jak usunę margines 30px (rynna) to pozostawia 360px (12*30) na końcu wiersza.

Biorąc pod uwagę, że chcę usunąć przestrzeń rynny tylko dla określonego div. Załóżmy, że to dla div, które są w main_content div.

div#main_content div{
  /*
 no gutter for the divs in main_content
 */
}

Jak mogę usunąć rynnę dla konkretnego div-a, nie tracąc responsywności bootsrapa i nie zostawiając miejsca na końcu wiersza?

Author: Zim, 2013-05-10

9 answers

W przypadku Bootstrap 3.0 lub nowszego, zobacz tę odpowiedź

Patrzymy tylko na klasę .span1 tutaj (jedna kolumna na siatce o szerokości 12), ale możesz osiągnąć to, co chcesz, usuwając lewy margines z:

.row-fluid [class*="span"] { margin:0 } // line 571 of bootstrap responsive

Następnie zmieniamy szerokość .row-fluid .span1 na równą 100% podzieloną przez 12 kolumn (8.3333%).

.row-fluid .span1 { width: 8.33334% } // line 632 of bootstrap responsive

Możesz to zrobić dodając dodatkową klasę, która pozwoli Ci pozostawić system siatki bazowej nienaruszony:

.row-fluid [class*="NoGutter"] { margin-left:0 }
.row-fluid .span1NoGutter { width: 8.33334% }

<div class="row-fluid show-grid">
    <div class="span1NoGutter">1</div>
</div>

Możesz powtórzyć to wzór dla wszystkich innych kolumn, jak również:

.row-fluid .span2NoGutter { width:16.66667%; margin-left:0 } // 100% / 6 col
.row-fluid .span4NoGutter { width:25%; margin-left:0 } // 100% / 4 col
.row-fluid .span3NoGutter { width:33.33333%; margin-left:0 } // 100% / 3 col
or
.row-fluid .span4NoGutter { width:25% }
.row-fluid [class*="NoGutter"] { margin-left:0 }

* EDIT ()
Jeśli wymagany jest domyślny system siatki, domyślnie ma szerokość 940px (the .pojemnik i .klasy span12, czyli); tak więc, w najprostszych słowach, chcesz podzielić 940 przez 12. Co odpowiada 12 pojemnikom o szerokości 78.33333 px.

Więc linia 339 bootstrap.css można edytować tak:

.span1 { width:78.33333px; margin-left:0 }
  or
.span1 { width:8.33334%; margin-left:0 }
// this should render at 78.333396px (78.333396 x 12 = 940.000752)
 34
Author: Dawson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:51

Aktualizacja 2018

Dla Bootstrap 3 , jest o wiele łatwiej. Bootstrap 3 używa teraz wyściółki zamiast marginesów, aby utworzyć "rynnę".

.row.no-gutter {
  margin-left: 0;
  margin-right: 0;
}

.row.no-gutter [class*='col-']:not(:first-child),
.row.no-gutter [class*='col-']:not(:last-child) {
  padding-right: 0;
  padding-left: 0;
}

Następnie po prostu dodaj no-gutter do wierszy, w których odstępy mają być usunięte:

  <div class="row no-gutter">
    <div class="col-lg-1"><div>1</div></div>
    <div class="col-lg-1"><div>1</div></div>
    <div class="col-lg-1"><div>1</div></div>
  </div>

Demo: http://bootply.com/107708

Bootstrap 4 (nie wymaga dodatkowego CSS)

Bootstrap 4 zawiera klasę no-gutters, która może być zastosowana do całego row:

Http://www.codeply.com/go/pVsGQZVVtG

<div class="row no-gutters">
    <div class="col">..</div>
    <div class="col">..</div>
    <div class="col">..</div>
</div>

Istnieją również nowe utile odstępów , które umożliwiają kontrolę wypełnienia/marginesów. Tak więc może to być użyte do zmiany wyściółki (rynny) dla pojedynczej kolumny (ie: <div class="col-3 pl-0"></div>) ustawia padding-left:0; na kolumnie, lub użyć px-0, aby usunąć zarówno lewą, jak i prawą wyściółkę (oś x).

 140
Author: Zim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-25 10:24:09

Update: link do TWBS 3 getbootstrap.com/customize/#grid-system


Twitter Bootstrap oferuje dostosuj formularz, Aby pobrać wszystkie lub niektóre komponenty z niestandardową konfiguracją.

Możesz użyć tego formularza, aby pobrać siatkę bez rynien i będzie ona responsywna - potrzebujesz tylko komponentu grid i responsywnych dotyczących szerokości.

Demo (jsfiddle) niestandardowa siatka

Jeśli wiesz trochę o Mniej , to może zawierać wygenerowany CSS w wybranym selektorze.

/* LESS */
.some-thing {
    /* The custom grid
      ...
    */
}

Jeśli nie, powinieneś dodać ten selektor przed każdą regułą(i tak nie za dużo).


Jeśli wiesz mniej i używasz skryptów LESS do zarządzania stylami, możesz użyć bezpośrednio Grid mixins v2 (github)

Grid mixins v3 (github)

 5
Author: Sherbrow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-01 17:23:02

Całkowita szerokość jest obliczana z szerokością elementów plus szerokością przestrzeni marginesów. Jeśli chcesz usunąć przestrzeń marginesu, to w porządku, ale aby uniknąć wspomnianej luki, musisz również zwiększyć szerokość kolumn.

W tym przypadku należy zwiększyć szerokość pojedynczej kolumny o jej usuniętą przestrzeń marginesu, która wynosiłaby 30px.

Załóżmy więc, że szerokość kolumn wynosi 50px normalnie z odstępem marginesu 30PX. Usuń przestrzeń marginesu i zrób / width = 80PX /

 2
Author: Michael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-10 19:18:30

Przykład 4 kolumn span3. Dla innych szerokości przęseł użyj nowej szerokości = starej szerokości + rozmiaru rynny. Użyj zapytań o media, aby reagować.

Css:

    <style type="text/css">
    @media (min-width: 1200px) 
    {   
        .nogutter .span3
        {
            margin-left: 0px; width:300px;
        }   
    }
    @media (min-width: 980px) and (max-width: 1199px) 
    { 
        .nogutter .span3
        {
            margin-left: 0px; width:240px;
        }   
    }
    @media (min-width: 768px) and (max-width: 979px) 
    { 
        .nogutter .span3
        {   
            margin-left: 0px; width:186px;
        }   
    }
    </style>

Html:

<div class="container">
<div class="row">
  <div class="span3" style="background-color:red;">...</div>
  <div class="span3" style="background-color:red;">...</div>
  <div class="span3" style="background-color:red;">...</div>
  <div class="span3" style="background-color:red;">...</div>
</div>
<br>
<div class="row nogutter">
  <div class="span3" style="background-color:red;">...</div>
  <div class="span3" style="background-color:red;">...</div>
  <div class="span3" style="background-color:red;">...</div>
  <div class="span3" style="background-color:red;">...</div>
</div> 
</div>

Update : lub podzielić span12 div na 100 / numberofcolumns % width parts floating left:

<div class="row">
  <div class="span12">
    <div style="background-color:green;width:25%;float:left;">...</div>
  <div style="background-color:yellow;width:25%;float:left;">...</div>
  <div style="background-color:red;width:25%;float:left;">...</div>
  <div style="background-color:blue;width:25%;float:left;">...</div>
  </div>
</div>  

Dla obu rozwiązań patrz: http://bootply.com/61557

 1
Author: Bass Jobsen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-16 18:31:17

Ciekawe...

Usunięcie rynny w domyślnej siatce Twittera Bootstrap, czyli szerokości 940px. I że domyślna siatka ma kontener o szerokości 940px i reaguje na bootstrap.css w arkuszu stylów.

Jeśli dobrze zrozumiałem twoje pytanie, to tak to zrobiłem...
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Stackoverflow Question</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">

    <!-- Le styles -->
    <link rel="stylesheet" href="assets/css/bootstrap.css">
    <link rel="stylesheet" href="assets/css/bootstrap-responsive.css">

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="assets/js/html5shiv.js"></script>
    <![endif]-->




    <style type="text/css">
        #main_content [class*="span"] {
            margin-left: 0;
            width: 25%;
        }

        @media (min-width: 768px) and (max-width: 979px) {
            #main_content [class*="span"] {
            margin-left: 0;
            width: 25%;
            }
        }


        @media (max-width: 767px) {
            #main_content [class*="span"] {
            margin-left: 0;
            width: 100%;
            }
        }

        @media (max-width: 480px) {
            #main_content [class*="span"] {
            margin-left: 0;
            width: 100%;
            }
        }

        <!-- For Visual Aid Only -->
        .bg1 {
            background-color: #C2C2C2;
        }

        .bg2 {
            background-color: #D2D2D2;
        }
    </style>
  <body>
    <div id="wrap">
        <div class="container">
            <div class="row-fluid">
                <div class="span1 text-center bg1">01</div>
                <div class="span1 text-center bg2">02</div>
                <div class="span1 text-center bg1">03</div>
                <div class="span1 text-center bg2">04</div>
                <div class="span1 text-center bg1">05</div>
                <div class="span1 text-center bg2">06</div>
                <div class="span1 text-center bg1">07</div>
                <div class="span1 text-center bg2">08</div>
                <div class="span1 text-center bg1">09</div>
                <div class="span1 text-center bg2">10</div>
                <div class="span1 text-center bg1">11</div>
                <div class="span1 text-center bg2">12</div>
            </div>



            <div id="main_content">
                <div class="row-fluid">
                    <div class="span3 text-center bg1">1</div>
                    <div class="span3 text-center bg2">2</div>
                    <div class="span3 text-center bg1">3</div>
                    <div class="span3 text-center bg2">4</div>
                </div>
            </div>
        </div><!--/container-->
    </div>
  </body>
</html>

I wynik jest..

Tutaj wpisz opis obrazka

Rozpiętość 4 div bez rynny pozostanie rozpiętość dla małych tablet krajobraz (800x600). Cokolwiek rozmiar mniejszy niż to zawali 4 divs i będzie ułożony pionowo. Oczywiście będziesz musiał dostosować go do swoich potrzeb.

 0
Author: Gary Lising,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-15 16:15:37

Najprostszym sposobem na usunięcie wypełnienia i marginesu jest prosty css.

<div class="header" style="margin:0px;padding:0px;">
.....
.....
.....
</div>
 0
Author: Gammer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-17 17:56:36

W porządku, jeśli chcesz zmienić rynnę w jednym wierszu, ale chcesz, aby te (pierwsze i ostatnie) wewnętrzne div były wyrównane do siatki otaczającej wiersz .no-gutter, możesz skopiować-wkleić-scalić większość odpowiedzi do następującego fragmentu:

.row.no-gutter [class*='col-']:first-child:not(:only-child) {
    padding-right: 0;
}
.row.no-gutter [class*='col-']:last-child:not(:only-child) {
    padding-left: 0;
}
.row.no-gutter [class*='col-']:not(:first-child):not(:last-child):not(:only-child) {
    padding-right: 0;
    padding-left: 0;
}

Jeśli chcesz mieć mniejszą rynnę zamiast całkowicie żadnej, po prostu zmień 0 na to, co lubisz... (np.: 5px aby uzyskać 10px).

 0
Author: Brainfeeder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-26 08:28:45

Aby dodać do Bootstrap 3 no-gutter odpowiedź powyżej ( https://stackoverflow.com/a/21282059/662883 )

Aby zapobiec powstawaniu rynien w wierszu zawierającym tylko jedną kolumnę (przydatne przy owijaniu kolumn: http://getbootstrap.com/css/#grid-example-wrapping):

.row.no-gutter [class*='col-']:only-child,
.row.no-gutter [class*='col-']:only-child
{
    padding-right: 0;
    padding-left: 0;
}
 -1
Author: Stu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:19