부트 스트랩 반응 형 페이지에서 div를 가운데에 배치하는 방법


132

반응 형 페이지 중앙에 div 배치

아래 언급 된 레이아웃과 같이 페이지 중앙에 div를 배치하여 부트 스트랩을 사용하여 반응 형 페이지를 만들어야합니다.



나는 텍스트와 사업부 COL-LG-12 등 내가 바이올린에 나와있는 예제 코드를 얻을 수있는 경우 layout.it 도움이 될 것으로 같은 사업부를 중심으로 다른 전체 폭 내부에 존재해야한다 (응답 디자인을 사용하여 부트 스트랩)을 중심으로해야합니다
Rama Priya

답변:


173

부트 스트랩 4 업데이트

플렉스 박스로 더 간단한 수직 그리드 정렬

@import url('https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css');
html,
body {
  height: 100%
}
<div class="h-100 row align-items-center">
  <div class="col" style="background:red">
    TEXT
  </div>
</div>

부트 스트랩 3 솔루션

@import url('http://getbootstrap.com/dist/css/bootstrap.css');
 html, body, .container-table {
    height: 100%;
}
.container-table {
    display: table;
}
.vertical-center-row {
    display: table-cell;
    vertical-align: middle;
}
<script src="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.1.0/bootstrap.min.js"></script>

<div class="container container-table">
    <div class="row vertical-center-row">
        <div class="text-center col-md-4 col-md-offset-4" style="background:red">TEXT</div>
    </div>
</div>

모든 화면 크기에서 가로 및 세로 div를 중심으로 한 간단한 예입니다.


41
어쩌면 class="col-xs-4 col-xs-offset-4"영혼이 충분할 것입니다.
L105

나는 모든 화면 크기에서 사업부의 COL-LG-12 수직으로 중심 위치해야
라마 프리 야

1
나는 당신을위한 해결책을 찾았습니다.이 바이올린 jsfiddle.net/Palapas/52VtD/687 컨테이너의 높이가 100 % 여야합니다. 그렇지 않으면 절대 위치를 사용해야합니다
ppollono

45

CSS :

html,
body {
    height: 100%;
}

.container {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

HTML :

<div class="container">
  <div>
    example
  </div>
</div>

바이올린 예


1
모바일에서 내 사이트를 열면이 솔루션이 작동하지 않습니다.
codeinprogress

2
안녕하세요, 어떤 브라우저를 사용 하셨나요? 부트 스트랩의 스타일 시트와 자바 스크립트를로드 했습니까? Firefox 및 Chrome에서 작동합니다. 모든 화면 크기에서 테스트되었습니다.
vocasle

브라우저 크기를 조정하고 반응 형 웹 사이트 검사기를 사용하여이를 테스트했습니다. 나를 위해 작동합니다.
Rocky Kev

1
이 수정은 부트 스트랩 기본 스타일을 깨고 있습니다
ppollono

21

에서 부트 스트랩 4

하는 수평 차일을 중심으로 , 사용 부트 스트랩-4 클래스

justify-content-center

자녀를 세로가운데에 맞추 려면 bootstrap-4 클래스를 사용하십시오.

 align-items-center

하지만 d-flex 클래스를 사용하는 것을 잊지 마십시오. 부트 스트랩 -4 유틸리티 클래스입니다.

<div class="d-flex justify-content-center align-items-center" style="height:100px;">
    <div class="bg-primary">MIDDLE</div>    
</div>

참고 : 이 코드가 작동하지 않으면 부트 스트랩 -4 유틸리티를 추가하십시오



5

CSS에서 아무것도 변경하지 않아도 클래스에서 직접 작성할 수 있으며 결과를 얻을 수 있습니다.

<div class="col-lg-4 col-md-4 col-sm-4 container justify-content-center">
  <div class="col" style="background:red">
    TEXT
  </div>
</div>

여기에 이미지 설명을 입력하십시오


4

디스플레이 테이블과 부트 스트랩없이, 오히려 그렇게 할 것입니다.

<div class="container container-table">
    <div class="row vertical-center-row">
        <div class="text-center col-md-4 col-md-offset-4" style="background:red">TEXT</div>
    </div>
</div>


 html, body, .container-table {
    height: 100%;
}
.container-table {
    width:100vw;
  height:150px;
  border:1px solid black;
}
.vertical-center-row {
   margin:auto;
  width:30%;
  padding:63px;
  text-align:center;

}

http://codepen.io/matoeil/pen/PbbWgQ


2

좋은 답변 ppollono. 방금 놀고 있었고 약간 더 나은 해결책을 얻었습니다. CSS는 동일하게 유지됩니다.

html, body, .container {
    height: 100%;
}
.container {
    display: table;
    vertical-align: middle;
}
.vertical-center-row {
    display: table-cell;
    vertical-align: middle;
}

그러나 HTML의 경우 :

<div class="container">
    <div class="vertical-center-row">
        <div align="center">TEXT</div>
    </div>
</div>

이것으로 충분합니다.


2

가장 좋은 방법은 아니지만 여전히 작동합니다.

<div class="container-fluid h-100">
<div class="row h-100">
<div class="col-lg-12"></div>
<div class="col-lg-12">
<div class="row h-100">
  <div class="col-lg-4"></div>
  <div class="col-lg-4 border">
    This div is in middle
  </div>
  <div class="col-lg-4"></div>
</div>

</div>
<div class="col-lg-12"></div>
</div>

</div>

1

부트 스트랩으로 레이아웃을 수행하는 가장 간단한 방법은 다음과 같습니다.

<section>
<div class="container">
    <div class="row">
        <div align="center">
            <div style="max-width: 200px; background-color: blueviolet;">
                <div>
                    <h1 style="color: white;">Content goes here</h1>
                </div>
            </div>
        </div>
    </div>
</div>

내가 한 것은 div를 가운데에 배치 할 수있는 div 레이어를 추가하는 것이지만 백분율을 사용하지 않으므로 div의 최대 너비를 가운데로 지정해야합니다.

동일한 방법을 사용하여 둘 이상의 열을 중앙에 배치 할 수 있으며 div 레이어를 더 추가하기 만하면됩니다.

<div class="container">
    <div class="row">
        <div align="center">
            <div style="max-width: 400px; background-color: blueviolet;">
                <div class="col-md-12 col-sm-12 col-xs-12" style="background-color: blueviolet;">
                    <div class="col-md-8 col-sm-8 col-xs-12" style="background-color: darkcyan;">
                        <h1 style="color: white;">Some content</h1>
                    </div>
                    <div class="col-md-4 col-sm-4 col-xs-12" style="background-color: blue;">
                        <p style="color: white;">More content</p>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

참고 : md, sm 및 xs에 열 12가있는 div를 추가했습니다.이 작업을 수행하지 않으면 배경색이있는 첫 번째 div (이 경우 "blueviolet")가 축소되고 하위 div를 볼 수 있습니다 이지만 배경색은 아닙니다.


1

실제 버전의 Bootstrap 4.3.1을 사용하려면

스타일

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<style type="text/css">
html, body {
    height: 100%;
}
</style>

암호

<div class="h-100 d-flex justify-content-center">
<div class="jumbotron my-auto">
<!-- example content -->
<div class="alert alert-success" role="alert">
<h4 class="alert-heading">Title</h4>
<p>Desc</p>
</div>
<!-- ./example content -->
</div>
</div

1

예를 들어 고정 높이를 사용했습니다. 나는 그것이 반응 형 시나리오에 영향을 미치지 않는다고 생각합니다.

<html lang="en">
<head>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
</head>
<body>
    <div class="d-flex justify-content-center align-items-center bg-secondary w-100" style="height: 300px;">
        <div class="bg-primary" style="width: 200px; height: 50px;"></div>
    </div>
</body>
</html>


1

Bootstrap 4에서 다음을 사용하십시오.

<div class="d-flex justify-content-center">...</div>

원하는 것에 따라 위치를 변경할 수도 있습니다.

<div class="d-flex justify-content-start">...</div>
<div class="d-flex justify-content-end">...</div>
<div class="d-flex justify-content-between">...</div>
<div class="d-flex justify-content-around">...</div>

여기 참조



-1

가장 간단한 해결책은 아래와 같이 양쪽에 하나의 빈 열을 추가하는 것입니다.

  <div class="row form-group">

    <div class="col-3"></div>

    <ul class="list-group col-6">
      <li class="list-group-item active">Yuvraj Patil</li>
    </ul>

    <div class="col-3"></div>
  </div>

-2

jsFiddle

HTML :

<div class="container" id="parent">
  <div class="row">
    <div class="col-lg-12">text
      <div class="row ">
        <div class="col-md-4 col-md-offset-4" id="child">TEXT</div>
      </div>
    </div>
  </div>
</div>

CSS :

#parent {    
    text-align: center;
}
#child {
    margin: 0 auto;
    display: inline-block;
    background: red;
    color: white;
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.