为什么我不能垂直对齐我的p标签?

时间:2015-10-29 11:43:04

标签: javascript html css

set "source=C:\Users\Processed"

for /f "delims=" %%A in ('findstr /s /m /l /c:"949010" "%source%\*"') do (
    set "fname=%%~nxA"
    setlocal enabledelayedexpansion
    set "fname=!fname:{=!"
    ren "%%A" "!fname!"
    copy /y "%source%\!fname!" "C:\Users\949010"
    endlocal
)
var window_height = window.screen.height;
var p_height = document.getElementsByTagName("p")[0].clientHeight;
document.getElementsByTagName("p")[0].style.marginTop = (window_height/2) - p_height/2 +  "px";
body {
  background-color: #F0F0F0;
  font-size: 83%;
}

#main {
  width:100%;
  text-align: center;
}

#main p {
  display: block;
  border: 1px red solid;
  margin:0 auto;
}

我想要的是动态地垂直对齐我的p标签。

因此,我使用JavaScript获取<div id="main"> <p>This is my text.</p> </div>window代码高度的高度,然后将我的代码<p>设置为margin-top

然而,似乎不是工作财产。 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

window.screen.height将为您提供用户屏幕的高度,同时您需要浏览器视口的高度。

var verticalAlignPTag = function() {
    var window_height = window.innerHeight;
    var p_height = document.getElementsByTagName("p")[0].clientHeight;
    document.getElementsByTagName("p")[0].style.marginTop = (window_height/2) - p_height/2 +  "px";
};
verticalAlignPTag();

//Optionally, add the same code to run when the window resizes.
window.onresize = verticalAlignPTag;
body {
  background-color: #F0F0F0;
  font-size: 83%;
}

#main {
  width:100%;
  text-align: center;
}

#main p {
  display: block;
  border: 1px red solid;
  margin:0 auto;
}
<div id="main">
    <p>This is my text.</p>
 </div>

您可以选择在window.onresize事件上运行相同的代码,这样,如果用户更改浏览器身高,您的<p>也会相应调整。

我将用于<p>标记的代码放到一个函数中,以便可以轻松地将其绑定到window.onresize事件。