未知宽高元素的水平垂直居中

大致有4种方法实现:
        一、table布局(display:table)
        二、绝对布局(position:absolute)+translate
        三、转化为行内标签display:inline-block,借助另外一个标签高度来实现
        四、通过js的获取标签的宽高来控制位置,得在元素加载完成后调用js

推荐使用第二种和第四种

 

实例:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>未知宽度高度的水平垂直居中(4种)</title>
<script src="http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<style type="text/css">
/*未知宽度高度的水平垂直居中(一):
* 如果放在body中,则需要给html,body设置一个“height:100%”的属性。
* display:table;
* display:table-cell;
* vertical-align: middle;
* */
h1{font-weight: normal;}
body{
margin: 0;
padding: 0;
}
.section{
width: 1200px;
height: 500px;
margin: 0 auto;
position: relative;
text-align: center;
}
.section-1{
background: #666;
}
.table{
width: 100%;
height: 100%;
display: table;/*定义成表结构*/
position: relative;
background: #666;
}
.tablecell{
display: table-cell;
text-align: center;
vertical-align: middle;
}
.content{
font-size: 30px;
line-height: 1.5;
}
/*未知宽度高度的水平垂直居中(二):
* 采用的position: absolute,然后用translate移动位置。translate的比例针对的是元素本身的宽高
* */
.section-2{
background: #333;
color: #fff;
}
.section-2 .middle{
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
-moz-transform: translate(-50%,-50%);
-webkit-transform: translate(-50%,-50%);
}
/*未知宽度高度的水平垂直居中(三):
* 采用的display:inline-block,然后借助另一个元素的高度来实现居中
* */
.section-3 {
/*定义高度,让线盒型div#extra有一个参照物,可以是固定值,也可以是百分比*/
background: #999;
}
#vertically_center,#extra {
display: inline-block;/*把元素转为行内块显示*/
vertical-align: middle;/*垂直居中*/
text-align: center;
}
#extra {
height: 100%; /*设置线盒型为父元素的100%高度*/
}
/*未知宽度高度的水平垂直居中(四):
* 通过js获取计算宽高
* */
.section-4{
background: #000;
color: #fff;
}
</style>
</head>
<body>
<!-- method-1 -->
<div class="section section-1">
<div class="table">
<div class="tablecell">
<h1>未知宽度高度的水平垂直居中(一)</h1>
<p class="content">
目前太阳模式仅用于体验<br />
更多功能敬请关注APP更新
</p>
</div>
</div>
</div>
<!-- method-2 -->
<div class="section section-2">
<div class="middle">
<h1>未知宽度高度的水平垂直居中(二)</h1>
<p>
目前太阳模式仅用于体验<br />
更多功能敬请关注APP更新
</p>
</div>
<div id="extra"></div>
</div>
<!-- method-3 -->
<div class="section section-3">
<div class="wrap">
<p class="content">
未知宽度高度的水平垂直居中(四)<br />
目前太阳模式仅用于体验<br />
更多功能敬请关注APP更新
</p>
</div>
</div>
<!-- method-4 -->
<div class="section section-4">
<div class="wrap">
<p class="content">
未知宽度高度的水平垂直居中(四)<br />
目前太阳模式仅用于体验<br />
更多功能敬请关注APP更新
</p>
</div>
</div>
<script type="text/javascript">
(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);
</script>
<script type="text/javascript">
$(document).ready(function(){
$(".wrap").vhAlign();
});
</script>
</body>
</html>

 

转载于:https://www.cnblogs.com/baoshuyan66/p/4923705.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471456.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python web开发 网络编程 TCP/IP UDP协议

文章目录1. TCP/IP协议1.1 IP协议1.2 TCP协议2. UDP协议3. Socket4. TCP编程4.1 创建TCP服务器4.2 创建TCP客户端4.3 简易聊天工具5. UDP编程5.1 创建UDP服务器5.2 创建UDP客户端learning from 《python web开发从入门到精通》 1. TCP/IP协议 大家都用同样的协议 protocol&am…

oracle批量联机,Oracle 12.2 使用联机重定义对表进行多处改变

下面的例子将演示如何使用联机重定义操作来对表进行多处改变&#xff0c;原始表jy.original的创建语句如下:SQL> create table jy.original(2 col1 number primary key,3 col2 varchar2(10),4 col3 clob,5 col4 date)6 organization index;Table created.表jy.original将按以…

python web开发 网络编程 HTTP协议、Web服务器、WSGI接口

文章目录1. HTTP协议2. Web服务器3. 静态服务器创建 web_server.py4. WSGI 接口4.1 CGI 通用网关接口4.2 WSGI4.3 定义 WSGI 接口4.4 运行 WSGI 服务learning from 《python web开发从入门到精通》 1. HTTP协议 应用层最主要的协议&#xff1a;HTTP协议&#xff08;HyperText…

php实现文字向左跑马灯,js实现文字跑马灯效果

js实现文字超过显示宽度每间隔1s自动向左滚动显示*{ margin:0; padding:0;}body{font:12px/1 微软雅黑;}.wrapper{font-size: 0.85rem; color: #333; padding-top: 0.75rem; margin: 0 0.75rem; white-space: nowrap; overflow: hidden;width: 300px;}.inner{ width:1000px;ove…

android 75 新闻列表页面

new.xml <?xml version"1.0" encoding"UTF-8" ?> <newslist><news><title>黑马52期就业快报</title><detail>热烈祝贺黑马52期平均薪水突破13k</detail><comment>15687</comment><image>ht…

python web开发 MySQL数据库基础

文章目录1. 简介2. 下载安装3. 操作 MysQL 数据库3.1 创建数据库3.2 选择数据库3.3 查看数据库3.4 删除数据库4. 数据类型5. 操作 MysQL 数据表5.1 创建数据表5.2 查看表的结构5.3 修改表的结构5.4 删除数据表6. 操作 MySQL 数据表记录6.1 添加数据6.2 查询、修改、删除learnin…

oracle计算每月最小工作日,Oracle计算指定日期内的工作日(不包含周末)

1、获取当天是礼拜几&#xff1a;select to_char(sysdate,d) from dual; --礼拜天为1&#xff0c;礼拜一为2&#xff0c;类推2、获取 两个时间段间的 工作日&#xff1a;select (trunc(&end_dt - &start_dt) -((caseWHEN (8 - to_number(to_char(&start_dt,D))) &g…

简单几何(极角排序) POJ 2007 Scrambled Polygon

题目传送门 题意&#xff1a;裸的对原点的极角排序&#xff0c;凸包貌似不行。 /************************************************ * Author :Running_Time * Created Time :2015/11/3 星期二 14:46:47 * File Name :POJ_2007.cpp******************************…

python 操作MySQL数据库

文章目录1. 安装 PyMySQL2. 连接对象3. 游标对象4. 增删改操作cursor.execute(sql)cursor.executemany(sql, seq_of_params)5. 查询操作6. ORM编程常用 python ORM 库learning from 《python web开发从入门到精通》 1. 安装 PyMySQL conda 虚拟环境下安装 pip install pymysq…

go oracle编程,go基础编程(一):第一个go程序-hello word

环境搭建环境搭建是在deepin操作系统上进行1. 下载go安装程序wget https://golang.org/dl/go1.16.linux-amd64.tar.gz以上是下载go1.16的版本&#xff0c;如需其他版本&#xff0c;请移步官网下载。2. 解压程序包到指定目录tar-C/usr/local-xzf go1.16.linux-amd64.tar.gz3. 添…

反射,System.Type类

http://m.blog.csdn.net/blog/woddle/40623333 两个现实中的例子&#xff1a;1、B超&#xff1a;大家体检的时候大概都做过B超吧&#xff0c;B超可以透过肚皮探测到你内脏的生理情况。这是如何做到的呢&#xff1f;B超是B型超声波&#xff0c;它可以透过肚皮通过向你体内发射B型…

python web框架基础

文章目录1. Web框架简介1.1 MVC1.2 模板引擎2. 常用 Python Web 框架3. 虚拟环境4. 部署方式learning from 《python web开发从入门到精通》 1. Web框架简介 简化 web 开发的软件框架 一般都支持&#xff1a;管理路由&#xff0c;支持数据库&#xff0c;MVC&#xff0c;ORM&…

导Excel数据到Oracle的脚本,Oracle使用TOAD实现导入导出Excel数据

在Oracle应用程序的开发过程中&#xff0c;访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作&#xff0c;对数据库进行日常管理也是需要很多SQL脚本才能完成的。Quest Software为此提供了高效的Oracle应用开发工具-Toad。在Toad的新版本中&#xff0c;还加入了DBA模块&a…

Chapter 14 Exercises Problems

转载于:https://www.cnblogs.com/momoko/p/4937730.html

FastAPI 结合 SQLAlchemy 操作 MySQL 数据库

文章目录1. 安装 SQLAlchemy2. 创建数据库3. SQLAlchemy 连接 MySQL4. 创建数据模型5. 创建 Pydantic 模型6. crud 工具7. main函数learning from 《python web开发从入门到精通》 1. 安装 SQLAlchemy pip install sqlalchemy 2. 创建数据库 mysql -u root -p 命令行登录 M…

oracle 打开 ctl,Oracle 19c 随系统systemctl启动数据库

Oracle 19c 随系统systemctl启动数据库一、 修改oratab文件[rootadg19c ~]# grep woo /etc/oratabwoo:/DBSoft/oracle/product/19.3/dbhome_1:N[rootadg19c ~]# sed -i s/:N/:Y/ /etc/oratab[rootadg19c ~]# grep woo /etc/oratabwoo:/DBSoft/oracle/product/19.3/dbhome_1:Y二…

调用exe文件(一般处理登陆安全窗口)+睡眠等待(--------------------)

在测试basic认证的时候&#xff0c;处理windows弹窗的问题时&#xff0c;是用autoit进行处理的&#xff0c;最终转成一个.exe文件&#xff0c;然后再用java调用该exe文件。 1、调用自己打包的exe文件&#xff08;如下下例子&#xff09; package com.gmsd.gommon; import java.…

LeetCode 2094. 找出 3 位偶数

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 digits &#xff0c;其中每个元素是一个数字&#xff08;0 - 9&#xff09;。数组中可能存在重复元素。 你需要找出 所有 满足下述条件且 互不相同 的整数&#xff1a; 该整数由 digits 中的三个元素按 任意 顺序 依次连接 …

oracle追踪触发器语句,Oracle中怎样通过触发器来追踪用户的活动?

从Oracle8i开始&#xff0c;Oracle引入了特殊的触发器&#xff0c;这些触发器并不是和特殊的DML事件相关联的(DML事件&#xff0c;如&#xff0c;INSERT,UPDATE和DELETE)。这些系统级别的触发器包括数据库启动触发器&#xff0c;DDL触发器和最终用户登陆/注销触发器。当Oracle提…

TotoiseSVN 使用参考文章

SVN使用教程总结 http://www.cnblogs.com/armyfai/p/3985660.html TotoiseSVN的基本使用方法 http://www.cnblogs.com/xilentz/archive/2010/05/06/1728945.html windows svn server and client and plugin的下载地址 https://www.visualsvn.com/downloads/ VisualSVN Server |…