Подтвердить что ты не робот

Как использовать границу с Bootstrap

Как я могу решить эту проблему? Когда вы добавляете границы в div, div не центрируется и класс span12 не центрирован.

Я хотел бы центрировать div с границами

<div class="row" >
    <div class="span12" style="border: 2px solid black">
        <div class="row">
            <div class="span4">
           1
        </div>
        <div class="span4">
           2
        </div>
        <div class="span4">
           3
        </div>
        </div>

    </div>


</div>
4b9b3361

Ответ 1

К сожалению, что касается границ, они считаются частью пространства, которое занимает элемент. Позвольте мне ввести границу менее известного двоюродного брата: outline. Он практически идентичен границе. Единственное отличие состоит в том, что он ведет себя больше как box-shadow, поскольку он не занимает места в вашем макете и должен быть на всех четырех сторонах элемента.

http://codepen.io/cimmanon/pen/wyktr

.foo {
    outline: 1px solid orange;
}

Ответ 2

Как и в Bootstrap 3, вы можете использовать классы Panel:

<div class="panel panel-default">Surrounded by border</div>

Ответ 3

Здесь свойство CSS называется box-sizing. Оно определяет общую ширину элемента на вашей странице. Значение по умолчанию - content-box, которое не включает пробел, поле или границу элемента.

Следовательно, если вы установите для параметра div значение width: 500px и 20px все вокруг, оно займет 540px на вашем сайте (500 + 20 + 20).

Это то, что вызывает вашу проблему. Bootstrap вычисляет ширину набора для вещей, как и в предыдущем примере, и эти вещи не имеют границ. Поскольку Bootstrap подходит друг к другу, как головоломка, добавление границы к одной из сторон даст общую ширину 501px (продолжение вышеприведенного примера) и сломать макет.

Самый простой способ исправить это - настроить box-sizing. Значение, которое вы хотите использовать, - box-sizing: border-box. Это включает в себя прописку и границу в ваших элементах ящика. Здесь вы можете узнать больше о размерах полей.

Проблема с этим решением заключается в том, что он работает только на IE8+. Следовательно, если вам нужна более глубокая поддержка IE, вам необходимо переопределить ширину бутстрапа, чтобы учесть вашу границу.

Чтобы привести пример вычисления новой ширины, начните с проверки ширины, которую устанавливает Bootstrap на ваш элемент. Скажем, это a span6 и имеет ширину 320px (это чисто гипотетично, фактическая ширина вашего span6 будет зависеть от вашей конкретной конфигурации Bootstrap). Если вы хотите добавить одну границу с правой стороны с заполнением 20px там, вы должны написать этот CSS в своей таблице стилей

.span6 {
  padding-right: 20px;
  border-right: 1px solid #ddd;
  width: 299px;
 }

где новая ширина вычисляется по формуле:

old width - padding - border

Ответ 4

То, что другие упомянули о границе с рамкой, определенно верно. Вы все еще можете заставить это работать без необходимости создавать какие-либо пользовательские классы: http://jsfiddle.net/panchroma/yfzdD/

HTML

<div class="container">
<div class="row" >
    <div class="span12">
       <div class="row">
        <div class="span4"> 1 </div>
        <div class="span4"> 2 </div>
        <div class="span4"> 3 </div>
        </div><!-- end nested row -->
    </div><!-- end span 12 -->

</div> <!-- end row -->
</div><!-- end container -->

CSS

.span12{
border:solid 2px black;
background-color:grey;  
}  

Удачи!

Ответ 5

В то время как это, вероятно, не правильный способ сделать это, то, что я обнаружил, что это простой способ обхода - просто использовать поле-тень, а не границу... Это не нарушает работу сетки. Например, в вашем случае:

HTML

<div class="container">
    <div class="row" >
        <div class="span12">
            <div class="row">
                <div class="span4">
                    1
                </div>
                <div class="span4">
                    2
                </div>
                <div class="span4">
                    3
                </div>
            </div>
        </div>
    </div>
</div>

CSS

.span12{
    -moz-box-shadow: 0 0 2px black;
    -webkit-box-shadow: 0 0 2px black;
    box-shadow: 0 0 2px black;
}

Fiddle

Ответ 6

В зависимости от того, какой размер вы хотите использовать div, вы можете использовать класс встроенного компонента thumbnail Bootstrap вместе с (или без) сеткой для создания границ вокруг каждого из ваших элементов div.

Эти примеры на сайте Bootstrap демонстрируют простоту использования и отсутствие необходимости в каких-либо специальных дополнительных CSS:

<div class="row">
    <div class="col-xs-6 col-md-3">
        <a href="#" class="thumbnail">
            <img src="..." alt="...">
        </a>
    </div>
    ...
</div>

, который создает следующие элементы сетки div:

Простые объекты сетки

или добавить дополнительный контент:

<div class="row">
  <div class="col-sm-6 col-md-4">
    <div class="thumbnail">
      <img src="..." alt="...">
      <div class="caption">
        <h3>Thumbnail label</h3>
        <p>...</p>
        <p>
            <a href="#" class="btn btn-primary" role="button">Button</a>
            <a href="#" class="btn btn-default" role="button">Button</a>
       </p>
      </div>
    </div>
  </div>
</div>

, который создает следующие элементы сетки div:

Пользовательские объекты сетки

Ответ 7

Вы не можете просто добавить границу к диапазону, потому что он сломает макет из-за того, как вычисляется ширина width: width = border + padding + width. Поскольку контейнер равен 940px, а диапазон составляет 940px, добавление границы 2px (так что 4px в целом) заставит его оторваться от центра. Работа вокруг заключается в изменении ширины, чтобы включить границу 4px (оригинал - 4px) или иметь другой div внутри, который создает границу 2px.