jquery实现元素自适应水平垂直居中

(function($){

$.fn.vhAlign =  function(){

return this.each(function(i){

//获取元素的内容高度

var h = Math.ceil($(this).height());

//outerHeight=padding+border+height

var oh = Math.ceil($(this).outerHeight());

//取得margin-top值

var mt = Math.ceil(oh / 2);

//取得元素宽度

var w = Math.ceil($(this).width());

//outerWidth=padding+border+width

var ow = Math.ceil($(this).outerWidth());

//取得margin-left

var ml = Math.ceil(ow / 2);

//实现元素居中效果

$(this).css({

"margin-top": "-" + mt + "px",

"top": "50%",

"margin-left": "-" + ml + "px",

"left": "50%",

"width":w,

"height":h,

"position": "absolute"

});

});

};

})(jQuery);

时间: 2024-11-06 16:51:32

jquery实现元素自适应水平垂直居中的相关文章

小tip: margin:auto实现绝对定位元素的水平垂直居中

转载自:http://www.zhangxinxu.com/wordpress/?p=3794 一.绝对定位元素的居中实现 如果要问如何CSS实现绝对定位元素的居中效果,很多人心里已经有答案了. 兼容性不错的主流用法是: .element { width: 600px; height: 400px; position: absolute; left: 50%; top: 50%; margin-top: -200px; /* 高度的一半 */ margin-left: -300px; /* 宽度

绝对定位元素实现水平垂直居中

第一种: .element { width: 600px; height: 400px; position: absolute; left: 50%; top: 50%; margin-top: -200px; /* 高度的一半 */ margin-left: -300px; /* 宽度的一半 */ } 但,这种方法有一个很明显的不足,就是需要提前知道元素的尺寸.否则margin负值的调整无法精确.此时,往往要借助JS获得. 第二种: CSS3的兴起,使得有了更好的解决方法,就是使用transf

CSS子元素在父元素中水平垂直居中的几种方法

1. 水平居中(margin: auto;)子父元素宽度固定,子元素上设置 margin: auto; 子元素不能设置浮动,否则居中失效. #div1{ width: 300px; height: 300px; border: 1px solid red; } #div1 p { width: 100px; height: 100px; background-color: green; /*float: left; !*如果设置了浮动,则自动居中就会失效.*!*/ margin: 0 auto;

div自适应水平垂直居中的方法

1.Flexbox布局: display:flex; justify-content:center; align-items:center; width:100%; 2.Bootstrap栅格布局 一共12格,分成3块,每块占4列.居中的内容写在中间的那一块. 3.圣杯/双飞翼(水平自适应居中的基础上) 第一步:居中的div写在最前面,width:100%撑满一整行.三个div都向左浮动float:left; <div class="main">Main</div&g

css自适应水平垂直居中

要让DIV水平和垂直居中,必需知道该DIV得宽度和高度,然后设置位置为绝对位置,距离页面窗口左边框和上边框的距离设置为50%,这个50%就是指页面窗口的宽度和高度的50%,最后将该DIV分别左移和上移,左移和上移的大小就是该DIV宽度和高度的一半..mydiv{    width:300px;     height:200px;     position:absolute;     left:50%;     top:50%;     margin:-100px 0 0 -150px } 该方法

图片在父元素里面水平垂直居中

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

如何实现固定宽高的DOM元素的水平垂直居中

效果: 实现代码1: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> body{margin: 0; padding: 0;} #div1{ margin-top: 100px; margin

margin:auto实现绝对定位元素的水平垂直居中

代码拍上,赶时间的童鞋拿着用就好:div {width: 1000px; height: 500px;position: absolute; left: 0; top: 0; right: 0; bottom: 0;margin: auto; /* 重点在于 auto */} 博主之前用的方式也是不错,只是在不知道“container”的长.宽时需要额外使用JQ来获取长宽,这么看来,第一种方法更加万金流:)#container{position:absolute;left:50%;top:50%

《转》CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳)

转自大地Dudy的CSS元素水平垂直居中方法总结(主要对大漠以及张鑫旭博客所述方法进行了归纳) 本文主要是对主流居中方法进行了归纳,有些地方甚至就是把别人的代码直接复制过来的,没有什么自己的东西,除了大漠以及张鑫旭的方法外,还有来自司徒正美.怿飞博客的几个方法 以下方法,由于测试环境的原因,IE系列只测试了IE9和IE6,以下所说的IE的支持性只是相对于IE9和IE6来说的: 一.元素的水平垂直居中: 第一种方法: <!doctype html> <html lang="en&