js 设置div 页面居中

本文介绍如何通过JavaScript根据页面尺寸动态调整div元素的位置,实现水平居中布局。通过设置div的position属性为absolute,并在onresize事件中计算left和height属性值,使得div始终保持在页面中央。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >




<HTML>
<HEAD>
<TITLE>js根据页面大小变化设置div左右居中</TITLE>
</HEAD>
<body>
<div id="" style="border: solid; width: 100%; height: 100px">
说明:js根据页面大小变化设置div左右居中, 要应用js代码,要设置position:absolute
</div>
<div id="mydiv"
style="border: solid; background-color: red; width: 100px; position: absolute">
此为居中的div
</div>
<!-- <div style="border:solid;height:100px;width:100px">2</div> -->
</body>
<script type="text/javascript">
var mydiv = document.getElementById("mydiv");
var mydiv_resize = function() {
mydiv.style.left = (document.body.clientWidth - 100) / 2;//100为mydiv的宽度
mydiv.style.height = document.body.clientHeight / 2;
}
mydiv_resize();
window.onresize = mydiv_resize;
</script>
</HTML>


要让一个`div`元素在整个页面上水平和垂直居中,可以采用以下几种常见的方法: 1. **Flexbox布局**: 如果你的项目支持 Flexbox,你可以使用以下 CSS: ```css .container { display: flex; justify-content: center; /* 水平居中 */ align-items: center; /* 垂直居中 */ height: 100vh; /* 设置div高度等于视口高度,可根据需要调整 */ } .centered-div { width: auto; /* 自动宽度以适应内容 */ } ``` 2. **CSS Grid布局**: 同样地,如果使用 Grid,代码会像这样: ```css .container { display: grid; place-items: center; /* 同时水平和垂直居中 */ height: 100vh; } .centered-div { width: auto; } ``` 3. **绝对定位**: 如果你想基于某个已知的父元素进行居中,可以利用绝对定位: ```css .parent { position: relative; height: 100%; /* 或者自适应的高度 */ } .centered-div { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); /* 移动到中心位置 */ width: auto; } ``` 这里假设`.parent`的`position`属性不是`relative`,否则`.centered-div`无法作为其子元素存在。 4. **JavaScript 和 jQuery**: 如果你需要动态处理,JavaScript 可能需要配合使用,例如: ```javascript $(document).ready(function() { var centeredDiv = $('#centered-div'); centeredDiv.css({ 'top': Math.max(0, ($(window).height() - centeredDiv.height()) / 2) + 'px', 'left': Math.max(0, ($(window).width() - centeredDiv.width()) / 2) + 'px', 'transform': 'translate(-50%, -50%)' }); }); ``` 这段代码会在文档加载完成后自动计算并设置`div`的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值