css/css3得以实现未知宽高成分的垂直居四之日品位

作者:分分快三计划

之前有写过css/css3实现元素的水平和垂直居中的几种方法点我,但是css3属性不是所有浏览器都能兼容的,今天写下js实现未知宽高的元素的水平和垂直居中。

css/css3实现未知宽高元素的垂直居中和水平居中,csscss3

其实在平常的一些布局中也经常有要实现元素的垂直居中和水平居中的的需要,下面来写几种css/css3实现的未知宽高元素的水平和垂直居中的写法

ps:不考虑兼容问题(下次会写js实现元素的水平and垂直居中 )

第一种 css3的transform

.ele{
/*设置元素绝对定位*/
    position:absolute;
/*top 50%*/
    top: 50%;
/*left 50%*/
    left: 50%;
/*css3   transform 实现*/
    transform: translate(-50%, -50%);
}

第二种 flex盒子布局

.ele{
/*弹性盒模型*/    
    display:flex;
/*主轴居中对齐*/
    justify-content: center;
/*侧轴居中对齐*/    
    align-items: center;  
 }

第三种 display的table-cell  

.box{
/*让元素渲染为表格单元格*/
    display:table-cell;
/*设置文本水平居中*/
    text-align:center; 
/*设置文本垂直居中*/
    vertical-align:middle;     
} 

第三种是给父级添加样式。先写这几种, 够大家用了,还有通过伪类实现居中的效果,有兴趣的可以自己敲下试试

其实在平常的一些布局中也经常有要实现元素的垂直居中和水平居中的的需要,下面...

这里我们介绍几种实现容器宽高和元素宽高都不固定的情况实现水平垂直居中

如果需要在有滚动条的情况的下要实现居中的效果,则需要加上scrollTop和scrollLeft。

容器设置 display: grid;

<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title></title>
  <style>
   div{
    padding:50px;
    display: inline-block;
    background-color:pink;
    position: absolute;
   }
  </style>
  <script>
   window.onload = function(){
//    获取元素
    var div = document.querySelector('div');
//    设置left 
    div.style.left=(window.innerWidth - div.offsetWidth)/2   'px';
//    设置top
    div.style.top= (window.innerHeight- div.offsetHeight)/2   'px';
   }
  </script>
 </head>
 <body>
  <div>
   陌上人如玉
   <br />
   公子士无双
  </div>
 </body>
</html>

容器内的元素设置 jusify-content: center;实现水平居中

        align-items: center; 实现垂直居中 

容器元素设置 margin: auto; 实现水平垂直居中

目前浏览器的支持率,但是可以用在内部的管理系统,在指定的浏览器上运行

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>实现未知高度的垂直居中</title>
 5 
 6     <style>
 7         html, body {
 8             height: 100%;
 9         }
10 
11         .containers {
12             width: 100%;
13             height: 100%;
14             display: flex;
15             justify-content: center;
16             align-items: center;
17         }
18     </style>
19 
20 </head>
21 <body>
22     <div class="containers">
23         flex实现垂直居中
24     </div>
25 </body>
26 </html>

一、flex实现水平垂直居中

 

页面设计中,经常需要实现元素的水平垂直居中,css实现的方法有很多(列如: margin: auto、position定位、css表达式calc()、使用css预处理、table等都可以实现水平居中),但大多都是针对容器高度不固定,元素高度固定的情况。

容器设置display: flex;

二、grid实现水平垂直居中(这可能是实现水平垂直居中最简单的css样式)

github代码片段地址: 

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>实现未知高度的垂直居中</title>
 5 
 6     <style>
 7         html, body {
 8             height: 100%;
 9         }
10 
11         .containers {
12             height: 100%;
13             display: grid;
14         }
15 
16         span {
17             margin: auto;
18         }
19     </style>
20 
21 </head>
22 <body>
23     <div class="containers">
24         grid实现垂直居中(许这是最简洁的水平垂直居中的 CSS 样式)
25     </div>
26 </body>
27 </html>

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划 CSS