5种方式实现CSS元素水平居中,实用又简单!
2017-12-30 01:05
585 查看
1.常规方法 - 定宽元素
此方法缺点:内层元素必须设定(固定)宽度
2.不定宽元素 - 设置行内块
然而很多时候,我们并不知道需要居中元素的宽度,或者其宽度是随后台数据变化的。
下文开始,我们以“分页效果”为例,诠释“不固定宽度”的元素如何设置水平居中:
此方法缺点:需要解决inline-block带来的默认间距(浏览器自动设置)
3.不定宽元素 - 设置浮动
用浮动的办法,即可避开浏览器带来的inline-block默认间距
思路:
1.外层相对定位,内层相对定位
2.外层左浮动,内层左浮动
3.外层右移50%,内层左移50%
注:外层元素一旦设置float属性,内层将自动刚好撑开外层宽度,等同于为外层设置display: inline-block;
4.不定宽元素 - 绝对定位
思路:
1.外层绝对定位,内层相对定位,外层的外层相对定位
2.外层左浮动,内层左浮动
3.外层右移50%,内层左移50%
5.CSS新特性 - fit-content
CSS3新特性width: fit-content,只需配合margin:
auto,即可巧妙将元素水平居中
(fit-content目前仅支持谷歌和火狐浏览器,但非常适合移动端开发!)
.pages4{
width: fit-content;
width:-moz-fit-content;
margin:auto;
}
.pages4 li{
float: left;
}
.pages4 li:not(:first-child){
margin-left:5px;
}
html部分: <div class="container"> <div class="center"></div> </container> CSS部分: /*公用*/ body,div{ margin: 0; } .container{ background: beige; height: 1000px; } /*居中*/ .center{ width:300px; height:300px; margin:auto; background: aqua; }
此方法缺点:内层元素必须设定(固定)宽度
2.不定宽元素 - 设置行内块
然而很多时候,我们并不知道需要居中元素的宽度,或者其宽度是随后台数据变化的。
下文开始,我们以“分页效果”为例,诠释“不固定宽度”的元素如何设置水平居中:
html部分(外层div.container略): <div class="pages"> <li><</li> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>></li> </div> CSS部分(前文公用部分略): /*分页公用*/ li{ list-style-type: none; width: 25px; height: 25px; text-align: center; line-height: 25px; background: black; color: #fff; border-radius: 3px; cursor: pointer; } li:hover{ background: darkorange; } /*设置行内块*/ .pages{ margin-top: 20px; text-align: center; } .pages li{ display: inline-block; }
此方法缺点:需要解决inline-block带来的默认间距(浏览器自动设置)
3.不定宽元素 - 设置浮动
用浮动的办法,即可避开浏览器带来的inline-block默认间距
思路:
1.外层相对定位,内层相对定位
2.外层左浮动,内层左浮动
3.外层右移50%,内层左移50%
html部分不变,为避免重复class改为pages2,后文同理 CSS部分: .pages2{ position: relative; float: left; //外层左浮 -> 内层宽度刚好撑开外层容器 left: 50%; //外层右移50% } .pages2 li{ float: left; position: relative; right: 50%; //内层左移50% } .pages2 li:not(:first-child){ margin-left:5px; }
注:外层元素一旦设置float属性,内层将自动刚好撑开外层宽度,等同于为外层设置display: inline-block;
4.不定宽元素 - 绝对定位
思路:
1.外层绝对定位,内层相对定位,外层的外层相对定位
2.外层左浮动,内层左浮动
3.外层右移50%,内层左移50%
CSS部分: .container{ position: relative; //外层的外层相对定位 } .pages3{ position: absolute; //外层绝对定位 float: left; left: 50%; } .pages3 li{ float: left; position: relative; //内层相对定位 right: 50%; } .pages3 li:not(:first-child){ margin-left:5px; }
5.CSS新特性 - fit-content
CSS3新特性width: fit-content,只需配合margin:
auto,即可巧妙将元素水平居中
(fit-content目前仅支持谷歌和火狐浏览器,但非常适合移动端开发!)
.pages4{
width: fit-content;
width:-moz-fit-content;
margin:auto;
}
.pages4 li{
float: left;
}
.pages4 li:not(:first-child){
margin-left:5px;
}
相关文章推荐
- css点滴2—六种方式实现元素水平居中
- [分享] 纯CSS完美实现垂直水平居中的6种方式
- 【Web】CSS实现绝对定位元素水平垂直居中
- css实现水平居中和垂直居中的常见方式
- CSS实现水平垂直居中的1010种方式
- CSS实现水平垂直居中方式
- css实现高度不固定的div元素模块在页面中水平垂直居中
- CSS实现水平垂直居中方式
- 纯CSS完美实现垂直水平居中的6种方式
- css实现元素水平垂直居中
- CSS实现元素水平垂直居中—喜欢对称美,这病没得治
- 三种方式实现动态元素水平居中
- CSS实现垂直居中的常用方法 在前端开发过程中,盒子居中是常常用到的。其中 ,居中又可以分为水平居中和垂直居中。水平居中是比较容易的,直接设置元素的margin: 0 auto就可以实现。但是垂直
- css系列(布局):实现一个元素在浏览器中水平、垂直居中的几个方案
- css实现元素水平垂直居中
- CSS实现文字或图片等元素垂直、水平、绝对定位居中技术
- 三种方式实现元素水平居中显示与固定布局和流式布局概念理解
- css 实现元素水平垂直居中总结5中方法
- CSS实现水平居中的5种思路
- CSS实现元素水平/垂直居中的方法