javascript - jQuery 水平对齐的 div 不居中

标签 javascript jquery html css

我得到了一个带有 width:50% 的 div 和一个文本
使用 jQuery 我确定了两个宽度。

然后我尝试使用这个 jQuery 水平对齐 div 中的文本:

var wrapperWidth = $("#wrapper").width();
var textWidth = $("#text").width();
var horAlign = wrapperWidth / 2 - textWidth;
$("#text").css("margin-left", horAlign);

如您所见,我在 CSS 中使用 margin-left: calc(mydiv - mytext) 来完成它。 但问题是,文本没有居中。 这是一个 fiddle :

var r = (function () {
  var wrapperWidth = $("#wrapper").width();
  var textWidth = $("#text").width();
  var horAlign = wrapperWidth / 2 - textWidth;
  $("#text").css("margin-left", horAlign);
  
  var textHeight = $("#text").height();
  var vertAlign = textHeight / 2
  $("#text").css("margin-top", - vertAlign);
});

$(document).ready(r);
$(window).resize(r);
#wrapper{
  width:50%;
  height:400px;
  border:solid 5px black;
  margin:auto;
  margin-top:50px;
}

#text{
  font-family: Helvetica, Arial, Sans-Serif;
  font-weight:bold;
  text-transform:uppercase;
  font-size:3.5em;
  padding-left:30px;
  padding-right:30px;
  background:white;
  display:inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="wrapper">
   <p id="text">Test</p>
</div>

我做错了什么?

最佳答案

为什么不是纯 CSS 解决方案!?

#wrapper{
  width:50%;
  height:400px;
  border:solid 5px black;
  margin:auto;
  margin-top:50px;
}

#text{
  font-family: Helvetica, Arial, Sans-Serif;
  font-weight:bold;
  text-transform:uppercase;
  font-size:3.5em;
  display: block;
  text-align: center;
}

#text span {
  position: relative;
  top: -35px;
  display: inline-block;
  padding-left:30px;
  padding-right:30px;
  background: white;
}
<div id="wrapper">
   <div id="text"><span>Test</span></div>
</div>

关于javascript - jQuery 水平对齐的 div 不居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43385065/

相关文章:

javascript - 如何通过 CSS 和 JS 让我的背景图像每 15 秒左右更改一次

javascript - 更新合约状态变量后交易失败

javascript - 什么时候会无法确定 let 或 const 是否已初始化?

javascript - 如何将 Kalendae 的日期设置为 17 年前?

javascript - 等效于 javascript Selenium Web Driver 中的 jQuery.active

javascript - 元素 A 位于元素 B 之上。无论如何,当悬停在元素 A 上时,让页面看起来元素 B 仍在悬停?

javascript - 在 &lt;input&gt; 或 &lt;textarea&gt; 中选择文本后的 HTML 工具提示

javascript - 遍历 javascript 对象和 valueOf toString 方法

javascript - 抓取带有特定主题标签的推文?

javascript - 我正在使用 ScrollMagic 和 Greensock,但它在滚动时卡住了