>  기사  >  웹 프론트엔드  >  너비와 높이가 고정되지 않은 경우 CSS에서 센터링을 달성하는 방법

너비와 높이가 고정되지 않은 경우 CSS에서 센터링을 달성하는 방법

藏色散人
藏色散人원래의
2020-12-17 10:09:012937검색

css宽高不固定实现居中的方法:1、利用flex进行布局实现居中;2、使用css3中transform进行元素偏移;3、利用table-cell实现居中即可。

너비와 높이가 고정되지 않은 경우 CSS에서 센터링을 달성하는 방법

本教程操作环境:windows7系统、css3版,该方法适用于所有品牌电脑。

推荐:《css视频教程

css宽高不固定如何实现居中?

方法1:利用flex进行布局

大家的第一反应,可能就是 flex 了。因为它的写法够简单直观,兼容性也没什么问题。是手机端居中方式的首选。

<div class="wrapper flex-center">
    <p>horizontal and vertical</p>
</div>
.wrapper {
    width: 300px;
    height: 300px;
    border: 1px solid #ccc;
}
.flex-center {
    display: flex;
    justify-content: center;
    align-items: center;
}

利用到了 2 个关键属性:justify-content 和 align-items,都设置为 center,即可实现居中。

需要注意的是,一定要把这里的 flex-center 挂在父级元素,才能使得其中 唯一的 子元素居中。

方法2:使用position+transform

主要使用了css3中transform进行元素偏移,效果非常好

这方法功能很强大,也比较灵活,不仅仅局限在实现居中显示。 兼容方面也一样拿IE来做比较,第二种方法IE8以上都能使用。 IE8及IE8以下都会出现问题。

<body>
    <div id="box">
        <div id="content">div被其中的内容撑起宽高</div>
    </div>        
</body>
body,html { margin:0; width:100%; height:100%; }
#box { width:100%; height:100%; background:rgba(0,0,0,0.7); position:relative; }
#content{ position:absolute; background:pink; left:50%; top:50%;  
transform:translateX(-50%) translateY(-50%); 
-webkit-transform:translateX(-50%) translateY(-50%); }

方法3:利用table-cell

利用 table 的单元格居中效果展示。与 flex 一样,需要写在父级元素上。

<div class="wrapper">
    <p>horizontal and vertical</p>
</div>
.wrapper {
    width: 300px;
    height: 300px;
    border: 1px solid #ccc;
    display: table-cell;
    text-align: center;
    vertical-align: middle;
}

위 내용은 너비와 높이가 고정되지 않은 경우 CSS에서 센터링을 달성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.