CSS 제작 수평/수직 가운데 정렬 정보

7513 단어
프런트엔드 개발자로서 웹 페이지를 제작할 때 CSS 제작 수평 수직 퀴즈에 부딪히는 문제가 있습니다. 저는 여러분들이 연구를 하거나 쓴 적이 있다고 생각합니다. 특히 그 중의 수직 퀴즈는 더욱 고민스럽습니다.그동안 저는 몇 가지 다른 방식으로 수평/수직 가운데를 만드는 방법을 수집했습니다. 이 몇 가지 방법을 여러분에게 소개하여 참고하도록 하겠습니다.아마도 우리 같은 초보자에게는 어느 정도 도움이 될 것이다.
1. 수평 가운데:
1.margin:0 auto
이런 방법은 주로margin:0 auto와 원소의width를 결합하여 수평 가운데의 효과를 실현한다.이 방법을 사용하여 원소의 수평 중심을 실현하려면 반드시 원소가 두 가지 조건을 만족시켜야 한다. 첫째, 원소는 고정된 너비 값이 있어야 한다.두 번째 원소의margin-left와margin-right는 모두 auto로 설정해야 한다. 이 두 가지 조건은 어느 것도 원소를 수평으로 가운데에 놓을 수 없는 효과가 없다.
 div{
    width:400px;
    margin:0 auto;
}

이 방법은 수평 가운데를 사용하고 모든 브라우저의 실행을 지원하며 모두가 비교적 많이 사용할 뿐만 아니라 가장 자주 사용하고 가장 효과적인 방법이기도 하다.
2.text-align:center
이런 방법은 주로 단행 텍스트가 가운데에 있거나table 형식이 가운데에 있고 주로text-align:center를 이용하여 원소를 수평으로 가운데에 놓는다.
body{text-align: center;

이 방법text-align에는 세 가지 속성 값이 있습니다:left|center|right, 각각 왼쪽으로 정렬, 가운데로 정렬, 오른쪽으로 정렬, 비교적 자주 사용되고 추천합니다.
3.
(권장하지 않음)
html4에서 이미 탈락한center 라벨은 수평으로 가운데로 정렬할 수 있으나 사용을 권장하지 않습니다.
 4.position 포지셔닝
포지셔닝도 자주 사용하는데 여기서도 포지셔닝의 방법으로 수평 중심을 실현할 수 있다.
body{
    position:absolute;
    left:50%;
}

포지셔닝 퀴즈를 사용하는 것은 자주 사용하지만 사용 과정에서 편이값을 계산해야만 수평 퀴즈를 정확하게 실현할 수 있다.
 5.margin/padding
이 방법은div 블록의 수평 가운데에 대한 조정입니다:margin과padding. 적당한 위치를 사용하면 수평 가운데에 대한 효과를 실현할 수 있습니다.
 
6.display:inline-block
디스플레이: inline-block을 사용하여 수평 중심을 잡는 것도 효과가 있지만, 이것을 사용하려면 부모 요소에text-align을 설정해야 합니다.
 body{
    text-align:center;
}
.content{
    display:inline-block;
}

 
7.css3에서 제공하는 탄성 박스 모형
신축성 박스 모형은 css3에 새로 도입된 박스 모형으로 브라우저 창에 적응하는 유동 레이아웃이나 글씨체 크기에 적응하는 신축성 레이아웃을 쉽게 만들 수 있다. 그 실현 원리에 대해 다음 코드를 통해 알 수 있다. 신축성 박스 모형을 터치하려면 디스플레이:box,'box-orient'가 분포하는 좌표축을 정의한다:vertical(수직분포)와horizional(수평분포). 기본적으로 상자는 탄력이 없다. 만약box-flex의 속성 값이 최소한 1일 경우 탄력이 풍부해진다.만약 상자가 탄력이 없다면, 가능한 한 넓이로 내용을 볼 수 있고, 넘침이 없으며, 크기는'width'와'height'에 의해 결정된다. (또는min-height,min-width,max-width,max-height)
<style type="text/css">    
        body{    
           display: box;    
          box-orient: horizontal;    
        }    
       #box1 {    
           box-flex: 2;    
        }    
        #box2 {    
            box-flex: 1;    
        }    
        #box3 {    
            box-flex: 1;    
        }    
    </style>    
    <body>    
        <div id="box1">1</div>    
        <div id="box2">2</div>    
        <div id="box3">3</div>    
    </body>

 
 8.마이너스 외부 여백 (margin-left:-(width/2)px)
음외변거리 역시 수평 중심에 있는 문제를 해결할 수 있으나 절대적인 포지셔닝(position:absolute;)을 사용해야 한다.
.divr{backgrond-color: #000;position: absolute;left: 50%;width: 1000px;margin-left: -500px;}

 
 9.css3의fit-content
fit-content는 CS3에서width 속성에 새로 추가된 속성 값으로margin과 결합하면 수평 가운데의 효과를 쉽게 실현할 수 있습니다.
<style type="text/css">    
       .page ul { 
            width: -moz-fit-content;width:-webkit-fit-content;
            width: fit-content;margin-left: auto;    
 
      .page li {      
             line-height: 25px;margin: 0 5px;float: left;    
      }    
        .page a {      
             display: block;color: #f2f2f2;
            text-shadow: 1px 0 0 #101011;padding: 0 10px;border-radius: 2px;    
             box-shadow: 0 1px 0 #5a5b5c inset,0 1px 0 #080808;    
             background: linear-gradient(top,#434345,#2f3032);    
       }    
        .page a:hover {      
              text-decoration: none; box-shadow: 0 1px 0 #f9bd71 inset,0 1px 0 #0a0a0a;    
              background: linear-gradient(top,#f48b03,#c87100);    
        }    
    </style>    
    <div class="page">    
      <ul>    
        <li><a href="#">Prev</a></li>    
        <li><a href="#">1</a></li>    
        <li><a href="#">2</a></li>    
        <li><a href="#">3</a></li>    
        <li><a href="#">4</a></li>    
        <li><a href="#">5</a></li>    
        <li><a href="#">Next</a></li>    
      </ul>    
    </div>

    10.css3의 flex
CSS3의 flex는 강력한 기능으로 우리의 레이아웃을 더욱 유연하고 편리하게 할 수 있으며 실현이 상당히 편리하고 확장성이 강하다. 유일한 단점은 현재 브라우저의 호환성이 약하다는 것이다.
<style type="text/css">    
         .page {      
            display: -webkit-box;    
            -webkit-box-orient: horizontal;-webkit-box-pack: center;display: -moz-box;    
            -moz-box-orient: horizontal;-moz-box-pack: center; 
            display: -o-box;-o-box-orient: horizontal;    
     -o-box-pack: center;display: -ms-box;-ms-box-orient: horizontal;-ms-box-pack: center;    
           display: box;box-orient: horizontal;box-pack: center;    
       }    
        .page li {      
              line-height: 25px;margin: 0 5px;float: left;    
       }    
       .page a {      
              display: block;color: #f2f2f2;
             text-shadow: 1px 0 0 #101011;
            padding: 0 10px;border-radius: 2px;    
             box-shadow: 0 1px 0 #5a5b5c inset,0 1px 0 #080808;
            background: linear-gradient(top,#434345,#2f3032);    
       }    
        .page a:hover {      
             text-decoration: none;box-shadow: 0 1px 0 #f9bd71 inset,0 1px 0 #0a0a0a;    
             background: linear-gradient(top,#f48b03,#c87100);    
       }      
   </style>    
 <div class="page">    
      <ul>    
       <li><a href="#">Prev</a></li>    
        <li><a href="#">1</a></li>    
        <li><a href="#">2</a></li>    
       <li><a href="#">3</a></li>    
        <li><a href="#">4</a></li>    
       <li><a href="#">5</a></li>    
       <li><a href="#">Next</a></li>    
      </ul>    
    </div>

2. 수직 가운데:
1.line-height 행 높이
이 메서드는 수직 가운데 맞춤이 가능하지만 단일 텍스트 가운데 맞춤만 가능합니다(모든 브라우저에 적용).
.content{
   height:100px;
   line-height:100px; 
}

 2.position 포지셔닝
이 방법은 수평 가운데와 마찬가지로 수직 가운데도 위치를 정하는 방법을 사용할 수 있지만 충분한 공간이 없을 때 원소가 사라지는 단점이 있다.
.content{
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    right:0;
    margin:auto;
}

또는
.content{
    position:absolute;
    top:50%;
}

3. 플로트 부동
물론 우리는 flaot 부동을 설정하여 수직 극의 중간에 있는 효과를 얻을 수 있다. 부동에 대해서는 나중에 제거하고 중간에 표시해야 한다.
.content{
    float:left;
     height:50%;
     margin-bottom:-120px;
}
.footer{
    clear:both;
    height:240px;
    position:relative;
}

4.vertical-align: middle
vertical-align 속성은 인라인 요소의 베이스라인을 해당 요소가 인라인에 수직으로 정렬하도록 정의합니다.이 메서드는 임의로 요소 높이를 변경할 수 있지만 IE8에서는 유효하지 않습니다. 
.content{
    display:table-cell;
    vertical-align:middle;
}

위에서 주로 여러 가지 방법을 수집하여 원소가 수직으로 가운데를 차지하도록 했다. 사람들은 이 몇 가지 방법에서 조금만 바꾸면 수평으로 가운데를 차지하게 할 수 있다. 그러면 원소의 수평으로 가운데를 차지하는 효과를 얻을 수 있다.실현 방법이 매우 많으니 여러분은 필요에 따라 다른 방법을 선택할 수 있습니다.이상은 제가 수집하고 정리한 부분입니다. 참고만 하겠습니다. 필요한 친구에게 도움이 되었으면 좋겠습니다.

좋은 웹페이지 즐겨찾기