我得到了一個div與width:50%
和一個文本
與jQuery我確定兩個寬度。jQuery水平對齊的div不居中
然後我試圖水平對齊與這個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)
。 但問題是,文本不居中。 這裏有一個小提琴:
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>
請告訴我爲什麼我做錯了什麼?
我需要填充,所以行和文本之間有一些空白。我剛剛添加了 - 30像這樣的jQuery:'wrapperWidth/2 - textWidth/2 - 30;'完美的。謝謝:) –
是的,這也有效。關鍵是不要忘記考慮'填充「:) – Arkej
是的。我確實先忘了它。我想早上太早了;) –