HTML学习笔记:让div在屏幕居中,图片在div里居中

举报
howard2005 发表于 2021/12/30 00:37:22 2021/12/30
【摘要】 目录 一、效果演示 二、实现方法 方法一:利用CSS实现 方法二:利用JavaScript实现 方法三:利用JavaScript实现 方法四:利用jQuery实现   一、效果演示 二、实现方法 方法一:利用CSS实现 <!DOCTYPE html><html lang="e...

目录

一、效果演示

二、实现方法

方法一:利用CSS实现

方法二:利用JavaScript实现

方法三:利用JavaScript实现

方法四:利用jQuery实现


 

一、效果演示

二、实现方法

方法一:利用CSS实现


  
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>demo01</title>
  6. <style type="text/css">
  7. #div {
  8. width: 400px;
  9. height: 350px;
  10. background-color: #c8e5bc;
  11. position: absolute;
  12. top:50%;
  13. left: 50%;
  14. margin: -200px 0 0 -175px;
  15. }
  16. #img {
  17. width: 220px;
  18. height: 220px;
  19. position: absolute;
  20. top:50%;
  21. left: 50%;
  22. margin: -110px 0 0 -110px;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div id="div">
  28. <img id="img" src="images/product4.jpg">
  29. </div>
  30. </body>
  31. </html>

方法二:利用JavaScript实现


  
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>demo02</title>
  6. <style type="text/css">
  7. #div {
  8. width: 400px;
  9. height: 350px;
  10. background-color: #c8e5bc;
  11. }
  12. #img {
  13. width: 220px;
  14. height: 220px;
  15. }
  16. </style>
  17. <script type="text/javascript">
  18. function centerDiv() {
  19. var div = document.getElementById('div');
  20. var width = div.offsetWidth;
  21. var height = div.offsetHeight;
  22. div.style.position = "absolute";
  23. div.style.left = "50%";
  24. div.style.top = "50%";
  25. div.style.marginLeft = "-" + (width / 2) + "px";
  26. div.style.marginTop = "-" + (height / 2) + "px";
  27. }
  28. function centerImg() {
  29. var img = document.getElementById('img');
  30. var width = img.offsetWidth;
  31. var height = img.offsetHeight;
  32. img.style.position = "absolute";
  33. img.style.left = "50%";
  34. img.style.top = "50%";
  35. img.style.marginLeft = "-" + (width / 2) + "px";
  36. img.style.marginTop = "-" + (height / 2) + "px";
  37. }
  38. window.onload = function(){
  39. centerDiv();
  40. centerImg();
  41. }
  42. window.onresize = function () {
  43. centerDiv();
  44. centerImg();
  45. }
  46. </script>
  47. </head>
  48. <body>
  49. <div id="div">
  50. <img id="img" src="images/product4.jpg">
  51. </div>
  52. </body>
  53. </html>

方法三:利用JavaScript实现


  
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>demo03</title>
  6. <style type="text/css">
  7. #div {
  8. width: 400px;
  9. height: 350px;
  10. background-color: #c8e5bc;
  11. }
  12. #img {
  13. width: 220px;
  14. height: 220px;
  15. }
  16. </style>
  17. <script type="text/javascript">
  18. function centerDiv() {
  19. var totalWidth = document.body.scrollWidth;
  20. var totalHeight = document.body.scrollHeight;
  21. var div = document.getElementById('div');
  22. var width = div.offsetWidth;
  23. var height = div.offsetHeight;
  24. div.style.position = "absolute";
  25. div.style.left = (totalWidth - width) / 2 + "px";
  26. div.style.top = (totalHeight - height) / 2 + "px";
  27. }
  28. function centerImg() {
  29. var div = document.getElementById('div');
  30. var totalWidth = div.offsetWidth;
  31. var totalHeight = div.offsetHeight;
  32. var img = document.getElementById('img');
  33. var width = img.offsetWidth;
  34. var height = img.offsetHeight;
  35. img.style.position = "absolute";
  36. img.style.left = (totalWidth - width) / 2 + "px";
  37. img.style.top = (totalHeight - height) / 2 + "px";
  38. }
  39. window.onload = function(){
  40. centerDiv();
  41. centerImg();
  42. }
  43. window.onresize = function () {
  44. centerDiv();
  45. centerImg();
  46. }
  47. </script>
  48. </head>
  49. <body>
  50. <div id="div">
  51. <img id="img" src="images/product4.jpg">
  52. </div>
  53. </body>
  54. </html>

方法四:利用jQuery实现


  
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>demo04</title>
  6. <script src="scripts/jquery-3.1.1.min.js"></script>
  7. <style type="text/css">
  8. #div {
  9. width: 400px;
  10. height: 350px;
  11. background-color: #c8e5bc;
  12. }
  13. #img {
  14. width: 220px;
  15. height: 220px;
  16. }
  17. </style>
  18. <script type="text/javascript">
  19. $(window).resize(function () {
  20. $('#div').css({
  21. position: "absolute",
  22. left: ($(window).width() - $('#div').width()) / 2,
  23. top: ($(window).height() - $('#div').height()) / 2
  24. }
  25. );
  26. $('#img').css({
  27. position: "absolute",
  28. left: ($('#div').width() - $('#img').width()) / 2,
  29. top: ($('#div').height() - $('#img').height()) / 2
  30. }
  31. );
  32. });
  33. $(function () {
  34. $(window).resize();
  35. })
  36. </script>
  37. </head>
  38. <body>
  39. <div id="div">
  40. <img id="img" src="images/product4.jpg">
  41. </div>
  42. </body>
  43. </html>
说明:获取元素的宽度和高度,如果是行内样式,那么 元素.style.width元素.style.height可以拿到元素的宽度和高度,但是对于内部样式或外部样式,此方法就不凑效,必须使用 元素.offsetWidth元素.offsetHeight才能拿到元素的宽度和高度。其实用 元素.offsetWidth元素.offsetHeight无论在哪种情况下都能拿到元素的宽度和高度,建议使用这种方式。

文章来源: howard2005.blog.csdn.net,作者:howard2005,版权归原作者所有,如需转载,请联系作者。

原文链接:howard2005.blog.csdn.net/article/details/79357676

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。