js、css分别实现元素水平垂直居中

简介: js、css分别实现元素水平垂直居中

css实现元素水平垂直居中【4行代码】


#div{
  top:50%;
  left: 50%;
  transform: translate(-50%,-50%);}

解释:

top、left 设为50%,是元素div基于父容器的长宽偏移50%

transform: translate(-50%,-50%)是元素div基于自身的长宽再反过来偏移50%

效果等同于如下js代码:

js实现元素水平垂直居中【弄巧成拙】


  let selfAdaption = (id) =>{
          let screenHeight=parseInt($(window).height()); //浏览器时下窗口可视区域高度
          let screenWidth=parseInt($(window).width()); //浏览器时下窗口可视区域高度
          $("#"+id).css({
                'marginLeft':(screenWidth-parseInt($("#"+id).width()))/2+'px',
                'marginTop':(screenHeight-parseInt($("#"+id).height()))/2+'px',
          })
      }
    selfAdaption('divID');

之前不知道用css这么方便,还整了个自适应函数。

但是这个函数完美解释了上述css代码的运行机制。


最后,其实这个js代码还是有问题的,只能保证页面在第一次加载的时候指定的元素居中,但是当页面改变的时候元素位置并不会发生改变。这个时候如果再用js思想解决的话,可以封装在window.onresize()函数里面,即当页面大小出现变化时,重新调用一下居中函数。

可是没必要,上述css代码在页面大小改变时,可以自适应居中。

相关文章
|
1天前
|
前端开发
|
3天前
|
JavaScript 前端开发
JavaScript 的数组方法 map()、filter() 和 reduce() 提供了函数式编程处理元素的方式
【5月更文挑战第11天】JavaScript 的数组方法 map()、filter() 和 reduce() 提供了函数式编程处理元素的方式。map() 用于创建新数组,其中元素是原数组元素经过指定函数转换后的结果;filter() 则筛选出通过特定条件的元素生成新数组;reduce() 将数组元素累计为单一值。这三个方法使代码更简洁易读,例如:map() 可用于数组元素乘以 2,filter() 用于选取偶数,reduce() 计算数组元素之和。
8 2
|
4天前
|
前端开发
【Web前端】CSS基本语法规范和引入方式&&常见选择器用法&&常见元素属性
【Web前端】CSS基本语法规范和引入方式&&常见选择器用法&&常见元素属性
|
5天前
|
存储 JavaScript 前端开发
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
深入了解JavaScript中的indexOf()方法:实现数组元素的搜索和索引获取
7 0
|
5天前
|
前端开发 JavaScript 索引
CSS常见用法 以及JS基础语法
CSS常见用法 以及JS基础语法
12 0
|
6天前
|
JavaScript 前端开发 索引
js添加、删除、替换、插入元素的方法
js添加、删除、替换、插入元素的方法
10 0
|
7天前
|
JavaScript 前端开发 容器
js操作dom元素
js操作dom元素
13 0
|
7天前
|
JavaScript 前端开发
js和css以及js制作弹窗
js和css以及js制作弹窗
11 1
|
8天前
|
JavaScript 前端开发
js选取页面元素的方法
js选取页面元素的方法
13 2
|
13天前
|
前端开发 开发者
【专栏:CSS基础篇】CSS选择器详解:精准定位网页元素
【4月更文挑战第30天】本文介绍了CSS选择器在Web开发中的重要性,详细阐述了基础选择器(元素、类、ID、属性和伪类/伪元素)及复杂选择器(后代、子元素、相邻兄弟和一般兄弟)的用法。通过理解并巧妙运用这些选择器,开发者能更高效地控制页面样式,提高代码的可维护性。CSS预处理器如Sass、LESS进一步增强了选择器的功能,助力创建优雅且强大的样式表,实现精准的网页设计。